이번 포스팅에서는 프로젝트에 알맞은 metric을 사용하기 위해 손실 함수와 성능 척도에 대해 정리해보았다. 해당 개념의 정의를 먼저 살펴보고, Task에 따라 어떤 metric을 사용할 수 있는지 확인해보자.
Loss Function(손실 함수)
Loss Function은 모델의 예측값과 실제값의 차이를 측정하는 함수이다. 이는 모델이 얼마나 잘 예측하고 있는지, 혹은 어느 정도의 오차를 보이는지를 판단하는 기준으로 사용된다. 다른 용어로는 목적 함수, 비용 함수(cost function), 에너지 함수(energy function) 등을 사용하기도 한다. 우리는 회귀나 분류 같이 원하는 작업에 따라 적합한 Loss Function을 선택하여 사용해야한다. 학습 과정에서는 이 Loss Function 값을 최소화하는 방향으로 모델의 파라미터를 업데이트함으로써, 모델의 예측 성능을 개선한다. Loss Function이 낮을수록, 모델은 데이터에 대해 정확한 예측을 진행한 것 이다.
Performance Metric(성능 척도)
성능 척도는 학습이 완료된 후에 모델의 성능을 평가하기 위해 사용된다. 정확도(Accuracy), 재현율(Recall), F1 Score 등 다양한 지표들이 성능 척도로 활용되며, 주로 테스트 데이터셋에 대한 모델의 예측 성능을 확인하는데 사용한다. 즉, 손실 함수는 학습 중에 최적화를 목표로, 성능 척도는 학습 후에 일반화된 성능을 평가하기 위한 도구라고 생각하면 된다.
두 가지의 차이점을 살펴봤으니, Task 별로 사용할 수 있는 metric에 대해 알아보자.
Regression(회귀)
회귀에서는 일반적으로 손실 함수와 성능 척도로 모두 사용되는 metric이 있다. 해당 metric을 먼저 소개하고, 그 다음으로 둘 중 하나로만 주로 사용되는 것을 정리해보았다.
1. MAE(Mean Absolute Error)

MAE는 예측 값과 정답 값의 차이에 절대값을 취하여, 그 값들을 전부 더하고 데이터의 수만큼으로 나눠 평균을 낸 값이다.
장점 :
- 직관적 이해 : MAE는 각 데이터 포인트에서 발생하는 오차의 절대값을 평균낸 것으로, 전체적인 모델 성능을 직관적으로 이해하기 쉽다.
- 이상치에 덜 민감 : MSE와 비교했을 때 MAE가 이상치에 대해 덜 민감하다. MSE는 오차를 제곱하므로 큰 오차가 더욱 부각되지만, MAE에서는 그렇지 않다.
단점 :
- 오차의 방향성 파악 어려움 : 절대값을 취하기 때문에 예측이 실제 값보다 과소평가 되었는지, 과대평가 되었는지 알 수 없다.
- 수렴 속도 : Gradient descent 등 최적화(Optimization) 알고리즘 사용 시, 오차의 제곱항이 없기 때문에 최적 해에 가까워질수록 업데이트 속도가 일정하게 유지된다. 즉, 학습률(learning rate)가 높으면 최적점 근처에서 발산할 수 있음을 의미한다. 이를 개선하기 위해 learning rate scheduler를 사용해 epoch이 진행됨에 따라 학습률을 점진적으로 줄여나갈 수 있다.
2. MAPE(Mean Absolute Percentage Error)

MAPE는 예측 오차를 퍼센트로 표현하는 방법으로, 모든 절대적인 퍼센트 오차의 평균을 계산한다.
장점 :
- 직관적 이해 : MAPE의 결과값은 퍼센트로 해석될 수 있어, 누구나 쉽게 이해할 수 있다.
- 스케일 불변성 : MAPE는 예측값과 실제값 사이의 상대적인 차이를 사용하므로 스케일에 민감하지 않다.
단점 :
- 실제 값이 0인 경우 : 만약 실제 값 중 0이 있는 경우, 분모가 0이 되어 MAPE를 계산할 수 없다.
- 비대칭성 : 과소예측한 경우와 과대예측한 경우에 대해 동일하게 패널티를 부여하지 않는다. 예를 들어, 10달러짜리 제품을 20달러로 예상하는 것과 실제 값이 100인데 모델을 이를 90으로 예측했다면, 동일한 절대적 오차(10달러)가 발생하지만 상대적 오차에서 차이가 발생한다.
3. MSE(Mean Squared Error)

MSE는 모델의 예측값과 실제값 간의 차이를 제곱한 후 평균을 낸 값이다.
장점 :
- 오차 방향성 : MSE는 오차를 제곱하기 때문에, 오차의 방향(예측이 실제보다 높은지 낮은지)을 고려한다.
- 이상치 민감도 : 제곱 연산으로 인해 큰 오차가 더욱 부각되므로, 이상치나 큰 오차를 가진 데이터 포인트에 대해 더욱 민감하게 반응한다.
단점 :
- 왜곡 가능성 : MSE는 제곱을 사용하므로, 큰 오차 값을 가진 개별 샘플들이 전체 평균 에러에 더 큰 영향을 준다. 이로 인해, 전체적인 성능 추정이 왜곡될 수 있다.
- 스케일 문제 : MSE 값은 타겟 변수의 단위와 관련하여 해석되어야 한다. 예를 들어, 달러 단위로 예측하는 회귀 문제에서 MSE가 1000이면, 실제 평균 오차는 $ 31.62 이다. MSE는 원래 값의 단위를 제곱했기 때문에, 반드시 수정해야한다. 이러한 문제를 해결하기 위해 RMSE를 사용할 수 있다.
- Over penalizing : MSE를 사용하면 모델은 작은 에러보다 큰 에러에 집중한다. 즉, 큰 에러가 발생한 개별 데이터 포인트들에 대해 과도한 패널티를 부여한다. 이로 인해 전반적으로 괜찮은 예측을 보여줌에도 일부 크게 틀린 예측 때문에 전체적인 성능 척도가 나쁘게 출력될 수 있다. 따라서, 이상치(outlier)가 많거나 오차의 분포가 균일하지 않은 데이터셋에서는 다른 metric을 고려해야한다.
4. RMSE(Root Mean Squared Error)

RMSE는 MSE에 루트를 씌운 지표로, 모델의 예측값과 실제값 간의 차이를 제곱한 후 평균을 낸 값에 다시 제곱근을 취한 값이다.
장점 :
- 오차 방향성, 이상치 민감도 : MSE와 동일한 장점을 가지고 있다.
- 직관적 해석 : 타겟 변수와 동일한 단위로 오차를 표현하므로 해석하기 용이하다.
단점 :
- 왜곡 가능성, Over penalizing : RMSE 역시 MSE와 같이 제곱을 사용하므로, 큰 오차 값을 가진 개별 샘플들이 전체 평균 에러가 더 큰 영향을 준다.
5. RMSLE(Root Mean Squared Logarithmic Error)

RMSLE는 실제 값과 예측 값의 로그를 취한 후, 그 차이를 제곱하여 평균을 낸 다음 제곱근을 취한 값이다.
장점 :
- 과소예측에 대한 패널티 감소 : RMSLE는 과대예측보다 과소예측에 패널티를 덜 부여한다. 예를 들어, 재고 예측의 경우 과소 예측이 과대 예측보다 더 큰 문제를 일으킬 수 있기 때문에 유용할 수 있다.
- 상대적 에러 측정 : RMSLE는 상대적인 에러를 측정하므로, 값의 스케일이 크게 달라도 상대적인 에러가 동일하면 RMSLE도 동일하다. 다양한 스케일의 값을 가진 데이터를 비교하는 데 유용하다.
단점 :
- 0값 처리 : 실제 값 혹은 예측값이 0인 경우 로그 변환이 불가능하므로, 이런 경우를 처리하기 위해 1 혹은 아주 작은 값을 더해주는 방법을 사용해야한다.
- 스케일 문제 : 로그 변환을 사용하기 때문에 모델 성능 해석 시 원래 스케일로 돌리기 위해 지수 함수를 사용해야 한다.
- 과소예측 패널티 감소 : RMSLE가 과소예측에 대한 패널티를 줄여주는 것은 특정 상황에서 장점으로 작용하지만, 모든 문제에서 그렇지 않을 수 있다. 실제로 문제 상황에 따라서는 과소예측과 과대예측 사이에 차별화된 패널티 부여가 오히려 방해가 될 수도 있다.
이제부터 소개하는 metric은 회귀에서 손실 함수가 아닌 성능 척도로 활용하는 지표이다.
6. 결정계수(R-squared)

R-squared, 또는 결정 계수는 회귀 모델의 설명력을 나타내는 통계량이다. 종속 변수의 총 변동 중에서 독립 변수에 의해 설명되는 변동의 비율을 의미한다. R-squared 값은 0과 1 사이에 있으며, 1에 가까울수록 모델이 데이터를 잘 설명하고 있다고 볼 수 있다.
- 장점 : R-squared 값은 직관적으로 이해하기 쉬우며, 다른 회귀 모델들 간의 성능을 비교하는 데 유용하다.
- 단점: R-squared 값은 항상 독립 변수가 추가될 때마다 증가하거나 그대로 유지되므로, 과적합(overfitting) 문제를 야기할 수 있다.
- SSR(Sum of Squares for Regression) : SSR은 예측값의 평균과 각 예측값 사이의 차이를 제곱하여 합한 값이다. 모델이 얼마나 데이터에 적합하였는지를 설명하는 변동성을 나타낸다.
- SST(Total Sum of Squares) : SST는 실제 값의 평균과 각 실제값 사이의 차이를 제곱하여 합한 값이다. 데이터가 가지고 있는 전체 변동성을 나타낸다.
7. 조정된 결정계수(Adjusted R-squared)

Adjusted R-squared는 결정 계수를 독립 변수의 수로 조정한 것 이다. 독립 변수가 많아질수록 모델이 과적합될 가능성이 높아지므로, 이를 보완하기 위해 사용된다. 위의 식에서 n은 전체 데이터 사이즈, p는 독립 변수의 수를 나타낸다.
- 장점: Adjusted R-squared 값은 필요 없는 독립 변수가 추가될 때 감소하여 과적합 문제를 방지하는 데 도움이 된다.
- 단점: 그러나 Adjusted R-squared 역시 완벽하지 않으며, 여전히 다중공선성등의 문제에 취약할 수 있다.
- 다중공선성 (multicollinearity) : 다중공선성은 회귀 분석에서 독립 변수들 간에 강한 상관 관계가 존재할 때 발생하는 문제이다. 다중 공선성이 있는 경우 회귀 계수의 추정치가 불안정해 작은 변화만으로도 크게 변동할 수 있다. 또한, 신뢰구간이 확대됨에 따라 추정치에 대한 불확실성을 증가시킨다. VIF, 상관 행렬(Corrlation matrix) 등을 사용해 확인한 후, 변수를 제거하거나 PCA, 정규화를 활용해서 문제를 해결한다.
8. Explained Variance Score

Explained Variance Score는 예측값과 실제값 간 분산 비율을 측정하는 지표다. 0에서 1 사이에 위치하며, 1에 가까울수록 좋다고 해석한다.
- 장점: 이 점수는 예측값과 실제값 사이 분산 차이가 작을수록 값이 커져서, 예측 성능 평가에 유용하다.
- 단점: 그러나 예측 오차 전반적인 크기와 상관없이 분산만 고려하므로, 일부 상황에서는 성능 평가가 과도하게 좋게 나올 수 있다.
9. Residual Standard Error (RSE)

RSE는 회귀 분석에서 잔차(residuals)의 표준 오차를 의미한다. 이는 모델이 데이터에 얼마나 잘 적합하였는지를 나타내는 척도로, 값이 작을수록 모델의 적합도가 높다고 할 수 있다.
- 장점: RSE 값은 모델의 적합도를 직관적으로 이해하는 데 활용할 수 있다.
- 단점: 그러나 RSE 값은 예측 오차의 절대 크기만 고려하므로, 예측값과 실제값 사이의 상대적인 차이를 고려하지 않는다.
10. Residual Sum of Squares (RSS)

RSS 역시 회귀 분석에서 사용되며, 실제 값과 예측 값 사이의 차이를 제곱하여 합한 것이다. 이 값을 최소화하는 것은 선형 회귀 분석의 주요 목표 중 하나이다.
- 장점: RSS 값은 모델 학습에 직접적으로 사용되며, 각 예측 오차를 제곱하기 때문에 큰 오차에 대해 더 큰 패널티를 부여한다.
- 단점: 그러나 RSS 역시 예측 오차의 절대 크기만 고려하므로, 예측값과 실제값 사이의 상대적인 차이를 고려하지 않습니다. 또한 제곱으로 인해 이상치(outliers)에 민감할 수 있다.
분류와 시계열을 위한 Metric까지 정리하기엔 포스팅이 너무 길어져서, 다음 포스팅에서 계속 이어서 살펴보자.
'Data Science' 카테고리의 다른 글
| [정규화] 정규화의 역할 및 종류 (0) | 2023.10.13 |
|---|---|
| [Metric] 분류/시계열 (0) | 2023.10.11 |
| [NLP] LLM Benchmark (0) | 2023.10.03 |
| [Pytorch] CUDA 설치 (0) | 2023.09.22 |
| [Pytorch] Neural Network (0) | 2023.09.21 |