슬기로운 연구생활

MSE와 CEE에 대한 고찰 본문

슬기로운 연구생활

MSE와 CEE에 대한 고찰

vhrehfdl 2022. 2. 24. 12:24

목표

여러 loss function이 있지만, classification task 경우에는 대부분 CEE를 사용하는 코드가 많다.

MSE(Mean Squared Error)와 CEE(Cross Entropy Error)가 어떤 점이 다르길래 CEE를 자주 사용하는 것일까?

그것에 대해 알아보자.

 

 

MSE

MSE는 Mean Squared Error의 약자이며 수식은 간단하다.

https://emilia-orellana44.medium.com/not-nice-square-error-2d18c248391c

예를 들어, 예측값 [0.7, 0.2, 0.1]과 정답값 [1 0 1] 이라는 값이 있다고 가정하자.

이 값에 MSE 계산식은 ((0.7-1)**2 + (0.2-0)**2 + (0.1-1)**2)/3 이가 되고 값은 0.313이 된다.

 

MSE의 특징은 다음과 같다.

- 잔차를 제곱하기 때문에 이상치에 민감하고 1미만의 에러는 더 작아진다. 
- 제곱으로 인해 음수도 양수가 되기 때문에 underestimates or overestimates 인지 파악하기 힘들다. 오차값에 대해서만 집중한다.

 

 

CEE 

CEE는 Cross Entropy Error의 약자이다. 

먼저 Entropy가 무엇인지 살펴보자.

 

엔트로피는 섀넌의 정보 이론에서 등장한 개념이다.

기본적인 전제는 일어날 확률이 작은 사건일 수록 가지고 있는 정보량, information gain이 많다는 것이다. 예를 들어 아침에 해가 뜨는 것은 정보가 특별할 것이 없지만, 일식이 일어나는 것은 정보의 가치가 높은 것을 들 수 있다.

entropy는 예측하기 쉬운 일에서보다, 예측하기 힘든일에서 더 높다. 

엔트로피 정보량 발생가능 확률
높다 높다 낮다
낮다 낮다 높다

정보량은 사건이 일어 날 확률에 음의 자연로그를 씌워서 얻게 된다. 

즉, 사건이 일어날 확률과 정보량의 곱을 모두 구하여 합산한 값이다.

 

예를 들어, A영화와 B영화가 성공할 확률이 각각 75%와 33%라고 가정해보자.

entropy(A영화) = -(0.75*ln(0.75)) + -(0.25*ln(0.25)) = 0.81

entropy(B영화) = -(0.33*ln(0.33)) + -(0.67*ln(0.67)) = 0.92

발생가능 확률이 높으면 엔트로피가 낮다는 것을 볼 수 있다.

엔트로피가 낮다는 건 영화가 성공한다는게 당연하다는 뜻으로 볼 수 있다.

https://androidkt.com/choose-cross-entropy-loss-function-in-keras/

 

MSE vs CEE

서로 다른 상황에 따른 MSE와 CEE 계산 값을 살펴보자.

 

[모델 A]

출력값 정답값 (A/B/C) 정확도 MSE CEE
0.3  0.3  0.4 0  0  1 (A) 일치 0.54 0.916 (log0.4)
0.3  0.4  0.3 0  1  0 (B) 일치 0.54 0.916 (log0.4)
0.1  0.2  0.7 1  0  0 (C)   불일치 1.34 2.302 (log0.1)
    0.67 0.81 1.38

 

[모델 B]

출력값 정답값 (A/B/C) 정확도 MSE CEE
0.1  0.2  0.7 0  0  1 (A) 일치 0.14 0.356 (log0.7)
0.1  0.7  0.2 0  1  0 (B)  일치 0.14 0.356 (log0.7)
0.3  0.4  0.3 1  0  0 (C)  불일치 0.74 1.203 (log0.3)
    0.67 0.34 0.64

 

모델 A와 모델 B의 정확도는 0.67로 동일하지만 MSE와 CEE 값이 다른 것을 확인할 수 있다.

정답값과 유사하게 출력한 것은 모델 B이기 때문에 loss 값이 모델 A보다 작아야한다.

실제 계산값을 보면 MSE와 CEE 모두 loss값이 감소한 것을 확인할 수 있다.

이러한 결과를 보면 둘다 분류 문제의 loss함수로 사용해도 된다.

MSE와 CEE에 대한 비교글을 보면 MSE가 오답에 대해서 더 집중한다고 하는데 CEE도 오답 값에 대해서 큰 loss를 반환하는 것은 동일하다. 그럼 어떤 관점에서 CEE가 더 적합한 것일까?

 

사실 이 부분은 무조건 CEE가 정답이다!라고 볼 수 는 없는 문제인 것 같다.

이론적인 근거를 따져가며 CEE가 더 적합하지 않을까?라는 논리적인 접근이 필요한 것 같다.

 

확률분포 관점에서 모델 출력을 보면, 정해진 확률분포(ex.가우시안, 베르누이 등)에서 출력이 나올 확률이라고 해석할 수 있다. 네트워크 아웃풋 p(y∣f(θ(x))에서 fθ(x)가 하는 역할은 확률분포의 모수를 추정하는 것이다.

 

분류 문제의 확률분포는 무엇일까? 먼저 여기서 말하는 확률분포는 오차에 대한 확률분포이다.

분류 문제의 오차는 정답과 일치하냐? 일치하지 않느냐?이며 오차 분포는 베르누이 분포를 따른다.

 

이제 분포에 모수를 추정한다 가정하고  베르누이 분포에 손실함수를 단순화하기 위해 수럼하는 log를 적용하면 CEE 수식과 유사한 수식이 나온다

 

회귀 문제의 오차가 정규분포를 따른다고 가정하자. (error = output-label 이며 회귀 문제에서는 베르누이 분포가 나오기 어렵다.)

마찬가지로, 정규분포에 log를 적용하면 MSE와 비숫한 수식이 된다. 

 

 

 

'슬기로운 연구생활' 카테고리의 다른 글

수렴에 대한 고찰  (0) 2022.03.10
Comments