선행 지식
계산 그래프, 연쇄법칙, 역전파와 관련된 내용이 궁금하다면, 아래 포스팅을 참조하자.
Softmax-with-Loss 계층
softmax-with-loss 계층의 계산그래프는 아래와 같다.
이전 계층으로부터 입력은 (a1,a2,a3)이며, Softmax 계층은 (y1,y2,y3)를 출력한다. 정답 레이블은 (t1,t2,t3)이며 cross entropy error 계층은 손실 L을 출력한다.
![](https://velog.velcdn.com/images%2Fgjtang%2Fpost%2Fd1f43c16-f2e0-4301-aeed-dbb99f6e4d8d%2Fimage.png)
Softmax 계층 계산 그래프 (순전파)
Softmax 수식은 다음과 같다.
yk=∑i=1nexp(ai)exp(ak)
위 식을 바탕으로 Softmax 계산 그래프는 다음과 같다.
![](https://velog.velcdn.com/images%2Fgjtang%2Fpost%2F4c56006b-adbf-4bd0-a0d4-245f6aa6a6ca%2Fimage.png)
Cross Entropy Error 계층 계산 그래프 (순전파, 역전파)
Cross Entropy Error 수식은 다음과 같다.
L=−k∑tklog(yk)
위 식을 바탕으로 Cross Entropy Error 순전파 계산 그래프는 다음과 같다.
![](https://velog.velcdn.com/images%2Fgjtang%2Fpost%2F42807c95-e4a1-4005-b5b4-ad567be3d293%2Fimage.png)
반대로 역전파 그래프는 다음과 같다.
![](https://velog.velcdn.com/images%2Fgjtang%2Fpost%2F661fe8bd-b7bb-4772-8b2a-5b0d987d11f4%2Fimage.png)
'log'노드의 역전파는 다음 식을 따른다.
δxδy=x1
Softmax 계층 계산 그래프 (역전파)
위에서 구한 cross entropy error 역전파 값이 흘러 들어온다.
![](https://velog.velcdn.com/images%2Fgjtang%2Fpost%2F3355165b-5273-4a30-bfc6-f1af6b77b96e%2Fimage.png)
'X' 노드에서는 순전파의 입력들을 '서로 바꿔서' 곱한다.
아래 그림에서 위 '/' 노드로 가는 값은 다음과 같은 계산이 이루어진다.
−y1t1exp(a1)=−t1exp(a1)Sexp(a1)=−t1S
![](https://velog.velcdn.com/images%2Fgjtang%2Fpost%2F637d4669-c473-435e-8cba-3bfcd7f542e0%2Fimage.png)
상류로 들어온 값은 (−t1S)+(−t2S)+(−t3S)=−S(t1+t2+t3)이다.
순전파의 출력은 S1이므로 역전파의 출력은 S1의 미분 값인 −S21를 곱해야한다.
따라서 −S(t1+t2+t3)∗−S21=S1(t1+t2+t3)가 된다.
또한 (t1,t2,t3)은 정답레이블로 원-핫 벡터로 표현되어 있다.
따라서 t1+t2+t3=1이 된다.
즉 역전파의 출력은 S1가 된다.
![](https://velog.velcdn.com/images%2Fgjtang%2Fpost%2F3eb4875f-6cc5-41fe-9979-c3406879a8a5%2Fimage.png)
'+' 노드는 입력을 여과 없이 내보낸다.
![](https://velog.velcdn.com/images%2Fgjtang%2Fpost%2F45aca755-61ac-4445-81b2-672e60828412%2Fimage.png)
'x' 노드는 입력을 서로 바꾼 곱셈이다.
![](https://velog.velcdn.com/images%2Fgjtang%2Fpost%2Fc5aa5aa2-01cd-4193-900a-39eb0a346046%2Fimage.png)
exp 노드에서는 exp함수가 미분해도 exp(x) 이기 때문에 각 갈래의 입력의 합에 exp(a1)을 곱한 결과가 역전파이다.
즉 (S1−exp(a1)t1)exp(a1)=y1−t1이 된다.
![](https://velog.velcdn.com/images%2Fgjtang%2Fpost%2Fa17b5f98-8cbc-4d4e-938d-c1d8ff4fa382%2Fimage.png)
정리
위의 모든 과정을 하나의 그림으로 요약하면 다음과 같다.
![](https://velog.velcdn.com/images%2Fgjtang%2Fpost%2F6b9e28a4-ca1c-4329-8ece-516bc97d90b0%2Fimage.png)
참고