brunch

매거진 딥러닝 101

You can make anything
by writing

C.S.Lewis

by TUGU Dec 25. 2018

역전파는 미분과 체인룰만 알면 끝

딥러닝 101_Chapter 9

Foward propagationd은 Cost 계산을 위해서, 

Back propagation은 미분과 Gradient Descent 계산을 위해서,



바로 이전 글에서는 딥러닝에서 일어나는 수학적 메커니즘 중 순서대로 Forward propagation(정방향 전파)에 대해서 알아보았다. 리마인드를 하고 싶다면 이전 글을 참조하자.(1-8. 딥러닝 computation graph(1) https://brunch.co.kr/@minsukshin/27)


이번 글에서는 이어서 그 다음으로 일어나는 수학적 메커니즘인  Backward propagation(역방향 전파) 에 대해서 알아보도록 하겠다.


지난 글에서와 동일하게  J라는 함수가 있고, 이에 대한 변수가 a, b, c 이렇게 3가지가 있다고 하자. 그러면 J(a, b, c)라고 표현이 되며, 이 함수는 3(a+bc)을 계산하는 함수라고 하자.여기서 순차적으로 수식의 안쪽에서부터 u=bc, v=a+u, 그리고 J=3v라고 치환을 한다. 그리고 이를 a, b, c가 들어가서 u, v, J를 순차적으로 계산하는 일련의 과정을 아래 그림과 같이 나타내도록 한다.

역방향 전파의 핵심,  미분과 체인룰


Forward propagation(정방향 전파)의 경우 ,a=5, b=3, c=2가 들어갔을 때  순차적으로 u,v,J를 계산하며 최종적으로 J=33이라는 아웃풋을 산출할 것 이다. 직관적이고 단순한다. 위 그림에서는 왼쪽에서 오른쪽으로 이어지는 검은 색 화살표의 방향으로의 계산 과정이다. 


그러면 Backward propagation(역방향 전파)은 어떻게 수학적으로 이해를 하면 되는 걸까? Forward propagation의 반대로, 즉 오른쪽에서 왼쪽으로 진행하면 된다. 그리고 그 반대로 가는 과정에서의 수학적 메커니즘은 바로 '미분'(Derivative)과 '체인룰'(Chain rule, 연쇄법칙)이다. 


우리는 y=3x일때 dy/dx가 3이라는 것 쯤은 중고등학교때 이미 배웠다. 하지만 일단은 여기서 미분이라는 개념을 전혀 모르는 상태에서,  v의 변화량이 J에 대해서 미치는 영향을 단순한 산수를 통해서 구해보도록 하자.

앞서 Forward propagation을 통해 a=5, b=3, c=2이 들어오고 v=11, J=33이라는 아웃풋이 나오게 되었다. v가 만약 11에서 0.001만큼 증가해서 11.001이 되면, J는 얼마에서 얼마로 변할까? 당연히 33에서 33.003으로 변한다. v가ㅣ 0.001 변할 때 J는 0.003 만큼 3배로 변한 것이다. (미분 표기법으로는 dJ/dv = 3 이다.)

이번에는 a가 0.001 증가할 때 v와 J가 각각 얼마나 증가하는지 보자. a=5에서 5.001로, v=11에서 11.001로, J는 33에서 33.003으로 증가한다. 즉 a가 0.001 변할 때 J는 0.003만큼 3배로 변하였다.(미분 표기법으로는 dJ/da = 3 이고, dv/da=1이다.)


그런데 우리는 지금 왜 이러한 산수놀이를 하고 있을까? 바로 체인룰의 개념을 파악하고자 함이다. 최종 아웃풋인 J에 대해서 a가 미치는 영향을 알려면 먼저 v에 대해서 a가 미치는 영향을 구한 후에, J에 대해서 v가 미치는 영향을 구해서 곱해야 한다. 이를 수학적으로 표기하면 이러한 의미이다.  

dJ/da = (dJ/dv)* (dv/da) = 3*1= 3

굉장히 단순한 개념이지만, 딥러닝에서의 핵심 알고리즘인 Backward propagation을 이해하기 위해서는 필수적인 개념이다. 

매거진의 이전글 정방향 전파의 목표는 Cost 계산이다
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari