← 문제 목록/Log-Cosh 손실
문제 해설

Log-Cosh 손실

손실 함수 · easy

preview

Log-Cosh 손실

23번 Huber 의 응용. Huber는 임계값 δ 에서 1차 미분만 연속 (2차는 꺾임). Log-Cosh 는 모든 구간 매끄럽고 2차 미분도 연속 한 부드러운 대안:

Llc(e)=log(cosh(e))L_{lc}(e) = \log(\cosh(e))

배치 평균:

log_cosh(y^,y)=1Nilog ⁣(cosh(y^iyi))\text{log\_cosh}(\hat{y}, y) = \frac{1}{N} \sum_i \log\!\big(\cosh(\hat{y}_i - y_i)\big)

근사적 거동

  • 작은 ee : L12e2L \approx \tfrac{1}{2} e^2 (MSE 와 유사)
  • e|e| : Lelog2L \approx |e| - \log 2 (MAE 와 유사)

Huber와 비슷한 하이브리드 이점 을 임계값 파라미터 없이 얻습니다. XGBoost 의 reg:logistic 계열에서 종종 쓰임.

수치 안정

cosh(e)=(ee+ee)/2\cosh(e) = (e^e + e^{-e}) / 2 — 큰 e|e| 에서 오버플로우. 안전하게 계산하려면: logcosh(e)=e+log(1+e2e)log2\log\cosh(e) = |e| + \log(1 + e^{-2|e|}) - \log 2

과제

함수 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임의 데이터
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.