모델의 평가방법으로 정확도가 아닌 손실함수를 사용 하는 이유에 대해 내가 이해한 대로 써보려 한다.
정확도가 아닌 손실함수를 평가요소로 사용하는 이유는 두가지가 있다.
① 정확도는 매개변수의 변화에 민감하게 반응하지 않고, 값이 불연속적이다.
② 정확도는 매개변수의 미분값이 대부분 0이여서 매개변수 갱신이 되지 않는다.
정확히는 ①이 ②의 원인이다. 먼저 정확도 그래프를 보자.
값이 불연속적으로 변하는 것을 볼 수 있다. 왜냐하면 정답 갯수는 값이 1개, 2개..등으로 셀 수 있는 정수, 즉 불연속적인 값이기 때문이다.
이 정확도 함수는 미분을 하여도 구간별로 상수이기때문에 미분값이 0이 될것이고, 따라서 역전파를 통한 최적화시에 매개변수 값을 바꿀 수 없다. 왜냐하면 0은 더하거나 곱해도 0이기 때문이다.
다음으로 손실함수에 대해서 살펴보자. 먼저 손실함수에는 2가지가 있다. 오차제곱합, 교차엔트로피 오차이다.
두가지 함수의 식은 각각 다음과 같다.
$$ E = \frac{\sum ({y_{k}}^{} - t_{k}^{} ) }{2} $$
$$ E = -\sum t_{k}*ln(y_{k}) $$
두 함수를 y에 대하여 편미분한 값은 각각 다음과 같다.
$$ E' = \sum (y_{k}-t_{k}) $$
$$ E' = \sum \frac{t_{k}}{y_{k}} $$
두 함수는 각각 일차함수/ 지수함수이므로 미분값은 연속적이다. 따라서 최적화시에 매개변수가 민감하게 바뀔 것을 알 수 있다.
'AI' 카테고리의 다른 글
Identifying and attacking the saddle point problem in high-dimensional non-convex optimization 리뷰 (0) | 2022.09.20 |
---|---|
손실함수의 그래프(Training Curve, Loss Landscape)와 최적화 방법 (0) | 2022.09.20 |
Visualizing the Loss Landscape of Neural Nets 리뷰 (0) | 2022.09.19 |
밑바닥 부터 시작하는 딥러닝② 요약 (0) | 2022.09.18 |
밑바닥 부터 시작하는 딥러닝① 요약 (0) | 2022.09.16 |