Propagation

Forward propagation


  순차적으로 Divide and conquor형식을 따라 값을 구해나감. 역산이 쉬워짐.


Chain rule


  수학 시간에 배운 내용, 미분 결과를 짬뽕해서 최종적으로 필요한 값을 구하는 방법

Backpropagation을 구하기 위해 필요함  


Backpropagation


  역으로 전파하는것, 값을 역으로 구함. (https://youtu.be/573EZkzfnZ0?t=341)



1. Forward로 계산되어 있는 값을 이용하되, 주어진 식을 미리 최종적으로 구할 x, w에 해당하는 미분방정식으로 구해놓음



2. Chain rule을 이용해 각 미분값을 구함



3. 미분값으로부터 Chain rule을 사용하면 w와 x값을 구할 수 있음


Example) Sigmoid


  이러한 Sigmoid형태는 애써서 미분할 필요가 없다.


Graph로 그려보기


가장 오른쪽 perceptron에 해당하는 1/x의 미분값만 알면 됨.

나머지는 계속 Chain rule에 의해서 계속 곱하고 곱하고 곱하고해서 사라져버림. 결국 최종적으로 dz/dg값을 구할 수 있음

(https://youtu.be/573EZkzfnZ0?t=926)




그래서 Tensorflow에서는 모든 것이 그래프로써 그려진다.



Pattern of Backward flow

ADD(+) gate

  Gradient distributor (Gradient를 분배함)


MUL(*) gate

  Gradient switcher (선택된 곳만 Update)


MAX(최대값) gate

  Gradient router (한 쪽만 반영)