딥러닝 (Deep Learning)/딥러닝 기초

딥러닝의 개념과 동작 원리

DS지니 2021. 4. 22. 00:27
728x90
반응형
[케라스 창시자에게 배우는 딥러닝] 참고

사람들은 어떤 것을 이해하기 위해서 전체적인 그림의 숲을 먼저보고 세세한 내용의 나무를 보는 방법을 많이 선호한다.

딥러닝에 대한 이해를 전체적인 개념(숲)부터 내부 동작원리(나무)로 나눠서 다시 정리해보는 시간을 가져보자 :)

 

⛺ 숲으로 보는 딥러닝 (큰 개념)

머신러닝 : 많은 입력과 타깃의 샘플을 관찰하면서 입력(ex.image)을 타깃(ex.cat)에 매핑(mapping)하는 것.

심층 신경망 : 입력-타깃 매핑을 간단한 데이터 변환기(layer)를 많이 연결해 수행하는 것.

(데이터 변환은 샘플에 노출됨으로써 학습이 이루어짐.)

 

🌳 나무로 보는 딥러닝 (동작원리)

층에서 입력 데이터가 처리되는 상세 내용은 일련의 숫자로 이루어진 층의 가중치(weight)에 저장되어 있다.

기술적으로 어떤 층에서 일어나는 변환은 그 층의 가중치를 파라미터(parameter)로 가지는 함수로 표현된다. (가중치를 그 층의 파라미터라고 부른다.) 

즉, 학습은 주어진 입력을 정확한 타깃에 매핑하기 위해 신경망의 모든 층에 있는 가중치 값을 찾는 것을 의미한다.

가중치 값은 어떻게 찾을까?

 

https://hackernoon.com/everything-you-need-to-know-about-neural-networks-8988c3ee4491

신경망의 출력을 제어하기 위해서는 출력이 기대하는 것보다 얼만큼 벗어났는지를 측정하면 된다. 이를 신경망의 손실 함수(loss function) 또는 목적 함수(objective function)라고 한다.

신경망이 한 샘플에 대해 얼마나 잘 예측했는지 측정하기 위해 손실함수가 신경망의 예측과 진짜 타깃의 차이를 점수로 계산한다.

기본적인 딥러닝 방식은 이 점수를 피드백 신호로 사용해 현재 샘플의 손실 점수가 감소되는 방향으로 가중치 값을 조금씩 수정하는 것이다. 이런 수정 과정은 딥러닝의 핵심 알고리즘인 역전파(Backpropagation) 알고리즘을 구현한 옵티마이저(Optimizer)가 담당한다.

https://tensorflow.blog/%EC%BC%80%EB%9D%BC%EC%8A%A4-%EB%94%A5%EB%9F%AC%EB%8B%9D/3-%EC%8B%A0%EA%B2%BD%EB%A7%9D-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0/

처음 입력 데이터를 넣고 층을 거쳐 출력값(예측)을 얻을 때는 가중치가 랜덤한 값으로 할당되어 랜덤한 변환을 연속적으로 수행한다. 자연스럽게 출력은 진짜 타깃과 멀어지고 손실 점수는 매우 높을 것이다.

하지만 네트워크가 모든 샘플을 처리하면서 가중치가 조금씩 올바른 방향으로 조정되고 손실 점수가 감소한다.

이를 훈련반복(training loop)라고 하며, 충분한 횟수만큼 반복(수천 개의 샘플을 수십 번 반복)하면 손실 함수를 최소화하는 가중치 값을 산출한다. 

 

💥 최소한의 손실 = 진짜 타깃에 가장 가까운 출력(output)을 만드는 모델

 

지금까지의 동작원리가 가장 간단한 딥러닝의 메커니즘이고, 이것이 확장되면 딥러닝은 다양하고 많은 "사람과 비슷한 수준의" 역할들을 수행해냅니다.

 

  • 이미지 분류
  • 음성 인식
  • 필기 인식
  • 향상된 기계 번역
  • 향상된 TTS(Text-To-Speech) 변환
  • 구글 나우(Now)와 아마존 알렉사(Alexa) 같은 디지털 비서
  • 자율 주행
  • 구글, 바이두, 빙 에서 사용하는 향상된 광고 타깃팅(targeting)
  • 향상된 웹 검색 엔진의 결과
  • 자연어 질문에 대답하는 능력
  • 사람을 능가하는 바둑 실력
  • 그 외 적용 중인 다양한 문제들 (형식 추론 formal reasoning 등)
728x90
반응형