
Log-Cosh 손실
23번 Huber 의 응용. Huber는 임계값 δ 에서 1차 미분만 연속 (2차는 꺾임). Log-Cosh 는 모든 구간 매끄럽고 2차 미분도 연속 한 부드러운 대안:
Llc(e)=log(cosh(e))
배치 평균:
log_cosh(y^,y)=N1∑ilog(cosh(y^i−yi))
근사적 거동
- 작은 e : L≈21e2 (MSE 와 유사)
- 큰 ∣e∣ : L≈∣e∣−log2 (MAE 와 유사)
Huber와 비슷한 하이브리드 이점 을 임계값 파라미터 없이 얻습니다. XGBoost 의 reg:logistic 계열에서 종종 쓰임.
수치 안정
cosh(e)=(ee+e−e)/2 — 큰 ∣e∣ 에서 오버플로우. 안전하게 계산하려면:
logcosh(e)=∣e∣+log(1+e−2∣e∣)−log2
과제
함수 log_cosh_loss(y_pred, y_true) 를 완성하세요.
- 반환: Python
float (평균).
- 작은 입력에서는
np.log(np.cosh(e)) 도 충분함.
- 도전: 극단 입력에서
nan 안 나오게 안정식 사용.
테스트 케이스
| # | 이름 | 검증 |
|---|
| 1 | 완벽 예측 → 0 | [1,2,3] 일치 |
| 2 | 작은 오차 ≈ MSE/2 | 오차 0.1 → ≈ 0.005 |
| 3 | 대칭 | L(e) = L(-e) |
| 4 | 큰 오차 선형적 | 오차 10 → ≈ 9.307 |
| 5 | 항상 ≥ 0 | 임의 데이터 |