손실 함수·연습 문제

힌지 손실 (Hinge Loss)

문제 설명PROBLEM

preview

힌지 손실 (Hinge Loss)

SVM의 대표 손실. 이진 분류 레이블 y{1,+1}y \in \{-1, +1\} 과 모델 점수 ss 에 대해:

L(s,y)=max(0,1ys)L(s, y) = \max(0, 1 - y \cdot s)

배치 평균:

hinge(s,y)=1Nimax(0,1yisi)\text{hinge}(\mathbf{s}, \mathbf{y}) = \frac{1}{N} \sum_i \max(0, 1 - y_i s_i)

직관

  • ys>1y s > 1 (마진 안쪽 + 정답 방향): 손실 0 — 모델이 확신 있게 맞춤.
  • 0<ys10 < y s \leq 1 (정답 방향이지만 마진 부족): 작은 손실.
  • ys0y s \leq 0 (틀린 방향): 큰 손실.

"1" 이 마진 경계. SVM이 마진을 최대화 하려는 이유가 여기 있어요.

과제

함수 hinge(s, y) 를 완성하세요.

  • s: 점수 배열 (N,), y: {-1, +1} 배열 (N,).
  • 반환: Python float (평균).
  • np.maximum 으로 벡터화.

테스트 케이스

#이름sy기대
1모두 마진 안쪽[2, -3][1, -1]0
2마진 경계[1, -1][1, -1]0
3마진 부족[0.3][1]0.7
4완전히 틀림[-2, 3][1, -1]3.5
개념 노트와 실수 포인트

손실 함수

  • MSE=평균제곱오차, MAE=평균절대오차, CrossEntropy=분류용.
  • ⚠️ CrossEntropy 의 log(0)-inf. 작은 epsilon 을 더해 방지.
  • 평균(mean) vs 합(sum) reduction, 예측·정답 인자 순서 확인.