AI/밑바닥부터 시작하는 딥러닝

[ Chapter.04 ] 손실 함수

jennyf 2022. 7. 31. 19:37

신경망 학습에서 현재의 상태를 하나의 지표로 표현합니다.

이때 하나의 지표를 손실 함수라고 합니다. (손실 함수는 신경망 성능의 '나쁨'을 나타냅니다.)

이 지표를 가장 좋게 만들어주는 가중치 매개변수의 값을 탐색하는것이 목표입니다.

 

일반적으로 오차제곱합 or 교차 엔트로피 오차를 사용합니다.

 

 

01. 오차제곱합

 

신경망 출력 y는 softmax 함수의 출력입니다. 따라서 y는 확률로 해석할 수 있습니다.

t는 one-hot encoding된 정답 label 입니다. 

 

02. 교차 엔트로피 오차

 

t가 one-hot encoding된 값이기 때문에, 실질적으로 정답일때의 자연로그를 계산하는 것입니다.

즉, 교차 엔트로피 오차는 정답일 떄의 출력이 전체 값을 결정합니다. 

 

 

 

03. 미니배치 학습

 

batch_size마다 파라미터 갱신이 되는것이기 때문에, 값이 커질수록 update되는 횟수가 줄어듧니다.

 

 

04. 배치용 교차엔트로피 오차 구현하기

 

 

05. 왜 손실 함수를 설정하는가?

 

정확도를 지표로 매개변수를 갱신하며 찾을 수는 없는건가요?

정확도를 지표로 하게된다면, 이 값은 이산적인 값으로 나타나며 정확도의 변화가 없으면 제대로 갱신을 수행했는지 알 수 없기때문에 안됩니다. 

 

MSE or Cross Entropy와 같은 손실함수는 연속적인 값을 출력합니다. 

즉, 조금이라도 매개변수를 갱신하면 해당 값들이 변하는 구조를 갖습니다.

 

일반적으로 매개변수로 손실함수를 미분하여 음수가 나오면 매개변수를 키우고, 미분값이 양수가 나오면 매개변수를 줄여줍니다.