Back Propagation이란?
Forward Pass를 역으로 계산(미분) 하는 것을 말한다.
예를 들어 함수를 정의 해보자
f(x,y,z)=(x+y)z
Forward Pass는
q=x+y이며,z(x+y)=z(q)
순으로 계산된다.
이를 역으로 q에 대해서 미분하면
dqdf(x,y,z)=dqz(q)=z
q노드는 역전파로 z가 된다.
뭔가 이해가 안될 수 있지만, 기본적으로 역전파 시 해당 값이 나온 node가 서로 반대로 나온 다는 것으로 알면된다.
이어서 z에 대해 미분하면
dzdf(x,y,z)=dzz(q)=q
z node에서는 역전파로 q 값이 나오게된다.
마지막으로 x,y에 대해 각각 미분해야하는데
dxdf(x,y,z)=dxdz∗d(x+y)=dqd(zq)∗dxd(x+y)=z∗1
dydf(x,y,z)=dydz∗d(x+y)=dqd(zq)∗dyd(x+y)=z∗1
따라서 각각 x,y는 z가 된다.
역전파는 단순히 역으로 계산(미분) 하는 것 뿐만아니라, Node가 지나온 길을 반대로 지나기때문에 해당 부분을
감안하여 계산하여야 한다.
결론 : 역전파시, 편미분을 해야하며 Node에서 값이 나오는 순서 혹은 방향이 바뀐다.