[DL] MSE, MAE, RMSE
MSE의 특징
[1] Mean Square Error는 예측값과 정답의 차이를 제곱하기 때문에, 이상치에 대해 민감하다.
즉, 정답에 대해 예측값이 매우 다른 경우, 그 차이는 오차값에 상대적으로 크게 반영된다.
[2] 오차값에 제곱을 취하기 때문에
ⓐ 오차가 0과 1 사이인 경우에, MSE에서 그 오차는 본래보다 더 작게 반영되고,
ⓑ 오차가 1보다 클 때는 본래보다 더 크게 반영된다.
[3] 모든 함수값이 미분 가능하다. MSE는 이차 함수이기 때문에 아래와 같이 첨점을 갖지 않는다.
RMSE의 특징
[1] MSE에서 루트를 취하기 때문에, [1], [2] 에서 나타나는 MSE의 단점이 어느 정도 해소된다.
[2] MSE는 부드러운 곡선형으로 오차 함수가 그려지지만, RMSE는 그 MSE에서 루트를 취하기 때문에 미분 불가능한 지점을 갖는다. 아래 Figure 2는 RMSE 함수에 대한 예시이다.
[3] MSE 보다 이상치에 덜 민감하다. 이 RMSE은 이상치에 대한 민감도가 MSE와 MAE 사이에 있기 때문에, 이상치를 적절히 잘 다룬다고 간주되는 경향이 있다.
MAE의 특징
[1] 이상치에 둔감 혹은 강건robust하다. 그 이유는 Figure 1에서 보듯이, (3)에 해당하는 MAE는 위 MSE, RMSE에 비해, 오차값이 outlier의 영향을 상대적으로 크게 받지 않는다.
[2] 함수값에 미분 불가능한 지점이 있다. 아래 Figure 3의 MAE를 표현한 함수의 최솟값은 첨점이기 때문에 미분이 불가능하다.
[3] 모든 오차에 동일한 가중치를 부여한다. 이는 MSE, RMSE와 대조된다.
언제 어떤 loss를 사용하는가
약간의 이상치가 있는 경우, 그 이상치의 영향을 적게 받으면서 모델을 만들고자 할 때, MAE를 쓰는 것이 적절하다.
이, MAE는 이상치에 대해 강건robust하기 때문에 이상치에 영향을 덜 받는다. 이는 이상치를 포함한 훈련 데이터에 적합하게 학습되어 unseen 데이터에 대해 낮은 성능을 보이게 하는 오버 피팅을 방지하는 데 도움이 될 수 있다.
하지만 MSE 경우에는 이상치에 민감하게 반응하여 학습하기 때문에, 손실 함수가 이상치에 의해 발생한 오차로부터 비교적 많은 영향을 받는다. 그러한 탓에, 이상치까지 고려하여 모델 일반화가 이루어진다. 하지만 이것이 모든 경우에 일반화를 제대로 하지 못했다고 간주될 수 없다. 어떤 경우에는 이상치를 무시하여 일반화할 필요가 있고 (MAE 쓰는 경우), 다른 경우에는 이상치도 고려하여 일반화(MSE 쓰는 경우)할 필요가 있기 때문이다.
앞에서 설명했듯이, RMSE는 MSE 보다 이상치에 대해 상대적으로 둔감하다. 하지만 이는 MAE처럼 모든 error에 동일한 가중치를 주지 않고, error가 크면 더 큰 가중치를 작으면 더 작은 가중치를 준다는 점에서, 여전히 이상치에 민감하다고 간주될 수 있다. 따라서 모델 학습 시 이상치에 가중치를 부여하고자 한다면, MSE에 루트를 씌운 RMSE를 채택하는 것은 적절하다.