cs231n보다 최신의 딥러닝기초?강의인 미시간대학교의 강의를 공부하며 정리
딥러닝의 노드를 단순화시켜서 생각해보자.
∂x∂f 를 구하기 위해선 합성함수미분의 원리인 chainrule을 이용하면 된다.
f(x,y,z)=(x+y)z를 f=qz,q=x+y로 바꿔서 위 도식의 역순으로 미분을 진행하면
최초의 gradient=∂f∂f=1
∂q∂f=z , ∂x∂q=1 , ∂y∂q=1 , ∂z∂f=q 가 나온다.
체인룰로 계산후 input에서 주어진 값을 넣어주면,
∂x∂f=∂x∂q∂q∂f=1z=−4 , ∂y∂f=∂y∂q∂q∂f=1z=−4 로 gradient가 완성된다. 이렇게 preforward과정의 역순으로 backpropagation을 순서에 맞춰서 쓰기만 하면 되는 방식을 'flat'하다고 하며, 이에 먼저 익숙해지는 것을 추천한다.