본문 바로가기

Machine Learning/Deep Neural Network

손실 함수(Cost / Loss Function) 정리 - MSE, CEE, RMSE, MAE

딥 러닝의 구현에 있어 모델은 오차율에 대한 지표를 통해 딥 러닝 모델이 스스로의 정확도를 판단하고 그 오차율을 줄이는(곧 정답률을 늘리는) 방향으로 내부 파라미터를 수정하는 방식으로 학습이 이루어진다.

 

즉, 모델에게는 '학습' 자체를 가능하도록 하는 지표로서의 오차 값을 계산할 함수가 필요하다.

이러한 지표의 역할을 하는 함수들을 통칭 비용 함수 또는 손실 함수(Cost function / Loss function)이라 한다.

 

손실 함수에는 대표적으로 MSE(Mean Squared Error), CEE(Cross Entropy Error)가 있으며, 딥 러닝 방법론을 제시하는 논문들에서 RMSE(Rooted Mean Squared Error), MAE(Mean Absolute Error) 등을 모델 성능 비교 지표로 활용하기도 한다.

 

이후 경사 하강법과 역전파법을 다루는 글에서 자세히 설명하겠지만, 자동 학습을 위해서는 손실 함수의 미분 가능성이 중요한 특성이 된다.

 

왜냐하면, 딥 러닝 모델은 파라미터(ex - W)의 변화율에 따른 손실 함수(L(y))의 값 변화율, 즉 dL(y)/dW를 지표로 파라미터를 수정하기 때문이다.

손실 함수에 미분 불가능한 지점, 또는 기울기가 0이 되는 지점이 존재한다면(그리고 그 지점이 학습 과정에서 마주치게 될 가능성이 크다면), 학습을 통한 모델의 개선은 그 원리에 따라 크게 저해받게 되는 것이다. 이는 딥 러닝에서의 활성화 함수에 있어서도 중요한 특성이 된다.

 

이제 수식과 함께 손실 함수들의 특성에 대해 알아보자.

 

MSE 수식

MSE의 수식은 위와 같다.
 
딥 러닝에 맞추어 설명하자면, 정답(t, target)의 값과 모델이 예측한 값(y, output)의 차를 제곱한 값에 대한 평균을 구하는 방식이다.
 
MSE의 특징으로는, 오차 값이 1보다 큰 값에 대해 더 큰 오차 계수를 반환하고, 그 오차 값이 클수록 제곱에 비례하여 더욱 큰 값을 반환하기 때문에 오차치에 민감하다는 특성이 있다. 또한 제곱 형태이기 때문에 기울기를 구하기 적합하다.
 
모델의 예측이 연속적인 형태로 주어지는 회귀 문제 등에 적합한 손실 함수이다.
 
 
 
 
 

CEE 수식

이어서 CEE의 수식은 위와 같다.

 

엔트로피는 열역학과 정보 이론에서 어떤 사건의 불확실성을 나타내는 지표로 이야기한다.
 
likely한 사건일 수록 빈번하게 발생하며 그 정보량이 작고(애주가에게는 밥 먹을 때 술을 곁들이는 일이 흥미롭지 않을 것이다), 그렇지 않은 사건일 수록 희소하며 그 정보량은 크다(노벨상을 타는 일은 모두가 그 노하우를 알고 싶어할 것이다)라는 이론에서 비롯한 것으로, 엔트로피는 사건의 반복 실행에 따른 정보량의 기댓값을 말한다.
 
즉, 사건 A(모델의 예측이 정확한 사건)에 대한 엔트로피가 낮을수록 실제로 그러할 확률이 높다는 얘기가 된다.
 
정보량의 성질 4가지를 만족하는 것이 로그이기 때문에 이를 차용한다고 하며, 이 부분에 대한 자세한 설명은 참고문헌[2]에서 확인하도록 하자.
 
모델의 예측이 연속적인 값으로 주어지지 않는 분류 문제에서 주로 사용된다. 사용되는 문제 종류에 따라 이진 분류면 Binary CEE, 다항 분류면 Categorical CEE 등으로 자잘한 변경이 더해진 수식을 사용한다. 
 
 
 
MAE 수식

MAE 수식은 위와 같다. 

 

오차치에 절댓값을 취하여 평균을 구하는 방식으로 계산한다. 특징으로는 절댓값만을 취하므로 제곱에 비해 오차치에 robust하다는 점이 있다. 단점으로 보일 수 있겠으나 모델이 특정 데이터에만 최적화되어 범용성이 적어지는 경우(Overfitting)을 막을 수 있다고 한다. 또한 오차치의 영향이 적은 전반적인 모델 성능지표로 활용할 수 있다.

 

한 편 MAE는 대부분의 지점에서 미분이 가능하나 딱 한 군데, 0인 지점에서는 뾰족한 개형이라 미분이 불가능하나, 사실 경사하강법의 목적이 손실 함수가 최소인 지점(0)을 찾는 것이 목적이므로 손실 함수로 사용하는 데에는 무리가 없을 것 같다.

 

 

 

RMSE 수식

RMSE 수식은 위와 같다.

 

MSE를 구하고 제곱근을 취하여 계산하는데, 이 계산 과정 때문에 역시 1보다 큰 오차치에는 더 큰 오차 계수를 반환하지만, 제곱근에 의해 그 가중치는 MSE보다 작다.

이러한 특성은 오차치에 MAE보다는 민감하고, MSE보다는 robust한 것으로 설명할 수 있으며, 이들의 특성을 고려하여 적절한 성능 지표로 활용하는 것이 바람직하겠다.

 

MAE와 마찬가지로 0인 지점에서만 미분 불가능하다.

 

 

Reference

[1] https://jysden.medium.com/%EC%96%B8%EC%A0%9C-mse-mae-rmse%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B0%80-c473bd831c62

 

언제 MSE, MAE, RMSE를 사용하는가?

제목에 열거한 RMSE, MSE, MAE는 딥러닝 모델을 최적화 하는 데 가장 인기있게 사용되는 오차 함수들이다. 이번 포스팅에서는 (1) 이들의 특징을 알아보고, (2) 이 3 가지 손실 함수를 비교 분석해본다

jysden.medium.com

[2] https://gooopy.tistory.com/63

 

딥러닝-5.3. 손실함수(4)-교차 엔트로피 오차(CEE)

지난 포스트까지 제곱오차(SE)에서 파생된 "오차제곱합(SEE), 평균제곱오차(MSE), 평균제곱근오차(RMSE)"에 대하여 알아보았다. 해당 개념들이 연속형 데이터를 대상으로 하는 회귀분석의 모델 적합

gooopy.tistory.com