Thing's by Actruce

모두를 위한 Deep Leaning 강좌(Sung Kim) 리뷰 07 본문

IT/Deep Learning

모두를 위한 Deep Leaning 강좌(Sung Kim) 리뷰 07

Actruce 2017. 12. 17. 18:56

이 포스트는 유명한 홍콩 과기대 김성훈 교수의 "모두를 위한 딥러닝 강좌 시즌 1" 의 내용 중 Convolution Neural Network 이전

특히, 29강 까지의 내용을 중점적으로 리뷰해 보고자 한다. (리뷰01, 02, 03, 04, 05, ...)


CNN 은 별도의 포스트를 구성할 예정이다.


본 포스트의 내용은 김성훈 교수의 Lecture Note 의 내용 및 Lab File 을 활용했음을 알려둔다.


Sung Kim “모두를 위한 딥러닝 강좌 시즌 1”

  > 강의 동영상 :  https://goo.gl/2cqKLz

  > 강의 웹사이트 : http://hunkim.github.io/ml/

  > Lecture 슬라이드 : https://goo.gl/4373zL

  > Lab 슬라이드 : https://goo.gl/WwCu4U

  > 강의 소스코드 : https://goo.gl/T2fuYi




리뷰07 Back Propagation (Lecture 9-2)




1. Back Propagation


- Deep Learning 의 최종적인 목표가 Weight Variable 값을 정확히 학습시키는 것이라고 하면, 이를 업데이트하는 과정에 대해서 이해가 필요하다.

- Weight Variable 들을 업데이트 하기 위해서는 각 weight vector 의 영향력을 구해야 하는데 이때 사용되는 방식이 Back Propagation 방식이다.

- 최종 예측치 대비 얼마나 영향을 미치고 있는지 확인해야 하는데 그걸 Back Propagation 으로 구해낼 수 있다.



위의 그림에서 f 에 대한 x의 영향도와 w의 영향도가 편미분 형태로 표시되었다. 이건 다시 f와 g, g와 x 의 곱으로 분해될 수 있다.



즉, 이런식으로 Deep Network 상에서 반복적으로 곱셈 형태로 전개되는 것은 Chain Rule 이 적용되었다고 생각할 수 있고,

통째고 미분하는게 아니라 거꾸로 f 부터 가까운 Node 들을 하나씩 계산해 내서 최종적인 변수들의 영향력을 확인 할 수 있다는 것이다.


친숙한 Sigmoid 함수도 그냥 미분하려면 어렵다. 하지만 Chain Rule 을 써서 Back Propagation 방식을 사용하면 아래와 같이 분해되어 쉽게 미분할 수 있는 것이다. Google TensorFlow 는 이런 방식으로 쉽게? 영향도를 계산해 낼 수 있는 것이다.



Comments