손실 함수에 대하여
지난 글에서 손실 함수에 대해서 정리하면서 평균 제곱 오차와 교차 엔트로피 오차의 개념까지 정리했습니다. 이번 글에서는 정확도(Accuracy)가 아닌 왜 손실 함수(Loss Function)를 사용하는지에 대해서 간단하게 정리하겠습니다.
정확도와 손실 함수
일반적인 생각으로는 왜 정확도라는 지표를 놔두고 신경망에서는 손실 함수를 사용하는가?에 대한 의문이 생길 수 있습니다. 우리에게 익숙한 정확도를 사용한다면 더 직관적이고 이해하기 훨씬 쉬울 텐데 말이죠..
이 의문은 신경망 학습에서의 '미분'의 역할 때문입니다.
신경망 학습에서는 최적의 매개변수를 탐색할 때 손실 함수의 값을 가능한 한 작게 하는 매개변수 값을 찾습니다. 이때 매개변수의 미분(기울기)을 계산하고, 그 미분 값으로 매개변수를 점차 갱신하는 과정을 반복하게 됩니다.
신경망 학습을 진행하면서 미분 값이 음수면 가중치 매개변수를 양의 방향으로 변화시키거나, 혹은 미분 값이 양수이면 반대로 변화시켜 손실 함수의 값을 줄이게 됩니다.
하지만 정확도를 지표로 삼는다면 미분 값이 대부분 0이 되어 가중치를 갱신할 수 없게 됩니다.
손실 함수를 사용한다면 매개변수의 값이 조금만 변하더라도 손실 함숫값 또한 연속적으로 변화하게 됩니다. 하지만, 정확도를 사용한다면 매개변수를 약간만 조정해서는 정확도가 개선되지 않습니다. (10%에서 11%, 12%와 같은 불연속적인 띄엄띄엄한 값)
이는 예전 글에서 설명했었던 '계단 함수'를 활성화 함수로 사용하지 않는다는 맥락과 같습니다.
계단 함수 또한 대부분의 장소에서 미분 값이 0이기 때문에 신경망 학습이 잘 이루어지지 않을 것입니다.
따라서 계단 함수를 이용하면 손실 함수를 지표로 삼는 것 또한 아무 의미가 없게 됩니다.
다음 글에서는 미분에 대해 더 자세히 정리하는 글을 작성하도록 하겠습니다.
'머신러닝 & 딥러닝 > 기초 이론' 카테고리의 다른 글
[머신러닝/딥러닝 기초] 13. 편미분과 편미분의 기울기 (0) | 2022.02.18 |
---|---|
[머신러닝/딥러닝 기초] 12. 미분과 수치미분 (0) | 2022.02.17 |
[머신러닝/딥러닝 기초] 10. 손실 함수: 평균 제곱 오차와 교차 엔트로피 오차 (0) | 2022.02.16 |
[머신러닝/딥러닝 기초] 9. 항등 함수와 소프트맥스 함수 (0) | 2022.02.15 |
[머신러닝/딥러닝 기초] 8. 신경망과 신경망의 구조 (0) | 2022.02.11 |
댓글