2020/09/13 깃헙 블로그 기록
예시는 간단하지만, 실제 neural network는 복잡함
식을 하나씩 나눠서 미분과 chain rule을 이용해 각각의 편미분 값 구함
derivative: the rate of change of a function wrt that variable surrounding an infinitesimally small region near a particular point
오른쪽에서 넘어온 gradient를 local gradient과 곱해 또 다음 layer에게 gradient로 넘겨줌
sigmoid처럼 식을 나누지 않고 미분해도 복잡하지 않은 경우 묶어서 생각할 수 있다
backpropagation을 하면, 최종결과 값을 증가시키거나, 감소시키기 위해 최초 인풋 값을 어떻게 조정해야할지 알 수 있음.
add gate
- gradient distributor
- 값을 그대로 뒤로 전달
max gate
- gradient router
- max로 선택된 값에 gradient 몰빵
- 선택받지 못한 곳은 그냥 0
- 아주 작은 h 만큼 인풋을 움직여도 max값이 변하지 않기 떄문(미분 공식 생각해보기)
mul gate
- gradient switcher
- 넘어온 gradient에 곱해지는 값 곱함
branches
- 두 가닥에서 넘어오는 gradient를 받는 경우, 그냥 더해줌
미분과 편미분의 차이에 대해 찾아봐야겠다