← 문제 목록/Multi-class Hinge Loss (Weston-Watkins) [medium]
문제 해설

Multi-class Hinge Loss (Weston-Watkins) [medium]

손실 함수 · medium

preview

Multi-class Hinge Loss (Weston-Watkins) [medium]

v1 힌지 손실 은 이진 (y{1,+1}y \in \{-1, +1\}). Multi-class SVM 으로 확장 (Weston-Watkins 1998):

Li=cyimax(0, 1+si,csi,yi)L_i = \sum_{c \ne y_i} \max(0, \ 1 + s_{i, c} - s_{i, y_i})

전체 배치:

L=1NiLiL = \frac{1}{N} \sum_i L_i

직관

  • 정답 클래스 yiy_i 의 점수 si,yis_{i, y_i} 가 다른 모든 클래스보다 적어도 margin(=1) 이상 크게 나와야 손실 0.
  • 만약 어떤 오답 클래스 ccsyi1s_{y_i} - 1 보다 큰 점수를 내면 페널티.

벡터화 트릭

N = len(y)
correct = scores[np.arange(N), y][:, None]      # (N, 1)
margins = np.maximum(0, scores - correct + 1)   # (N, K)
margins[np.arange(N), y] = 0                    # 정답 클래스 제외
return margins.sum(axis=1).mean()

과제

함수 multiclass_hinge(scores, y) 를 완성하세요.

  • scores shape (N, K), y shape (N,) 정수 in [0, K).
  • 반환: Python float (배치 평균).
  • 루프 금지.

테스트 케이스

#이름검증
1float 반환
2완벽 분리 (정답 점수 >> 오답) → ~0
3정답 클래스는 손실에 포함 안 됨
4K=2 특수 케이스
5margin 안에 있는 오답 → 페널티
6손계산 toy
7루프 금지
코드 작성
Loading...
실행 결과

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