Zettelkasten

MSE와 Huber 같은 회귀 loss

·수정 2026.04.23·수정 3

요약

  • 회귀 문제에서 사용하는 대표적인 손실 함수: MSE, MAE, Huber Loss
  • 각 손실 함수는 이상치(outlier)에 대한 민감도와 수렴 속도가 다름

본문

MSE (Mean Squared Error)

  • 예측값과 실제값 차이의 제곱 평균
  • L=1ni=1n(yiy^i)2L = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2
  • 장점: 미분이 쉽고, 큰 오차에 큰 페널티를 부여해 수렴이 빠름
  • 단점: 이상치에 매우 민감함 (제곱으로 인해 오차가 증폭됨)

MAE (Mean Absolute Error)

  • 예측값과 실제값 차이의 절대값 평균
  • L=1ni=1nyiy^iL = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y}_i|
  • 장점: 이상치에 상대적으로 강건함
  • 단점: 0 근처에서 미분 불가능, 수렴 속도가 느림

Huber Loss

  • MSE와 MAE의 장점을 결합한 손실 함수
  • 임계값 δ\delta를 기준으로 작은 오차는 MSE, 큰 오차는 MAE처럼 동작
Lδ(y,y^)={12(yy^)2if yy^δδ(yy^12δ)otherwiseL_\delta(y, \hat{y}) = \begin{cases} \frac{1}{2}(y - \hat{y})^2 & \text{if } |y - \hat{y}| \leq \delta \\ \delta \cdot (|y - \hat{y}| - \frac{1}{2}\delta) & \text{otherwise} \end{cases}
  • 장점: 이상치에 강건하면서도 0 근처에서 미분 가능
  • 단점: 하이퍼파라미터 δ\delta 튜닝 필요

선택 기준

상황 권장 손실 함수
이상치 없음, 빠른 수렴 필요 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: 임베딩 모델까지 같이 학습 (데이터/비용 많이 필요, 과적합 위험)

참고