요약
- 회귀 문제에서 사용하는 대표적인 손실 함수: MSE, MAE, Huber Loss
- 각 손실 함수는 이상치(outlier)에 대한 민감도와 수렴 속도가 다름
본문
MSE (Mean Squared Error)
- 예측값과 실제값 차이의 제곱 평균
- L=n1∑i=1n(yi−y^i)2
- 장점: 미분이 쉽고, 큰 오차에 큰 페널티를 부여해 수렴이 빠름
- 단점: 이상치에 매우 민감함 (제곱으로 인해 오차가 증폭됨)
MAE (Mean Absolute Error)
- 예측값과 실제값 차이의 절대값 평균
- L=n1∑i=1n∣yi−y^i∣
- 장점: 이상치에 상대적으로 강건함
- 단점: 0 근처에서 미분 불가능, 수렴 속도가 느림
Huber Loss
- MSE와 MAE의 장점을 결합한 손실 함수
- 임계값 δ를 기준으로 작은 오차는 MSE, 큰 오차는 MAE처럼 동작
Lδ(y,y^)={21(y−y^)2δ⋅(∣y−y^∣−21δ)if ∣y−y^∣≤δotherwise
- 장점: 이상치에 강건하면서도 0 근처에서 미분 가능
- 단점: 하이퍼파라미터 δ 튜닝 필요
선택 기준
| 상황 |
권장 손실 함수 |
| 이상치 없음, 빠른 수렴 필요 |
MSE |
| 이상치 많음 |
MAE 또는 Huber |
| 이상치 적당히 있고 수렴 속도도 중요 |
Huber |
import torch.nn as nn
mse_loss = nn.MSELoss()
mae_loss = nn.L1Loss()
huber_loss = nn.SmoothL1Loss(beta=1.0) # beta가 delta 역할
Frozen vs Fine-tuning
- Frozen: 임베딩 모델 고정 + 위에 얇은 모델만 학습 (데이터 적어도 가능, 안정적)
- Fine-tuning: 임베딩 모델까지 같이 학습 (데이터/비용 많이 필요, 과적합 위험)
참고