
제곱 힌지 손실 (Squared Hinge)
12번 Hinge 의 응용. 힌지값을 제곱 합니다:
Lsq(s,y)=max(0,1−ys)2
배치 평균:
sq_hinge(s,y)=N1∑imax(0,1−yisi)2
왜 제곱?
- 힌지는 ys=1 지점에서 미분 불연속 — 경사하강 시 약간 불안정.
- 제곱 힌지는 모든 지점에서 매끄럽게 미분 가능: dsd=−2ymax(0,1−ys).
- 큰 오차(마진 밖으로 많이 벗어난 샘플)에 더 강한 페널티 — MSE와 MAE의 관계처럼.
LinearSVC(loss='squared_hinge') 가 기본으로 쓰는 손실.
과제
함수 squared_hinge(s, y) 를 완성하세요.
s: 점수 배열 (N,), y: {-1, +1} 배열 (N,).
- 반환: Python
float (평균).
테스트 케이스
| # | 이름 | s | y | 기대 |
|---|
| 1 | 모두 마진 안쪽 | [2, -3] | [1, -1] | 0 |
| 2 | 마진 경계 정확히 | [1, -1] | [1, -1] | 0 |
| 3 | 마진 부족 | [0.3] | [1] | 0.49 |
| 4 | 완전히 틀림 | [-2, 3] | [1, -1] | 12.5 (= (9 + 16) / 2) |
| 5 | 힌지보다 큰 차이 | 큰 오차에 힌지 < 제곱힌지 | | |