← 문제 목록/Label Smoothing (smoothed one-hot) [medium]
문제 해설

Label Smoothing (smoothed one-hot) [medium]

전처리 · medium

preview

Label Smoothing (smoothed one-hot) [medium]

v1 원-핫 은 정답에 1, 나머지에 0. 네트워크가 학습 중 과신뢰(overconfident) 하게 되는 원인 — logit 이 무한대로 발산해야 정답에 확률 1 이 부여됨.

Label Smoothing (Szegedy et al. 2016, Inception v3): 정답에 1ϵ1 - \epsilon, 나머지에 ϵ/(K1)\epsilon / (K-1) 분산:

yi,c={1ϵc=yiϵK1cyiy'_{i,c} = \begin{cases} 1 - \epsilon & c = y_i \\ \dfrac{\epsilon}{K - 1} & c \ne y_i \end{cases}

  • ϵ=0\epsilon = 0 → 순수 one-hot.
  • ϵ=1\epsilon = 1 → 모든 클래스 동일 (uniform).
  • 일반적으로 ϵ=0.1\epsilon = 0.1.

왜 좋은가

  • Cross-entropy 가 KL(smoothedp)KL(\text{smoothed} \| p) 형태 → confidence 정규화.
  • 각 행 합 = 1 유지 (여전히 확률 분포).
  • 이미지 분류 / 언어모델 학습에서 표준.

과제

함수 label_smooth(y, num_classes, epsilon) 를 완성하세요.

  • y shape (N,) 정수 [0, K).
  • 반환: (N, K) float, 행합 = 1.
  • 힌트:
    K = num_classes
    out = np.full((len(y), K), epsilon / (K - 1))
    out[np.arange(len(y)), y] = 1 - epsilon
    return out
    

테스트 케이스

#이름검증
1shape (N, K)
2각 행 합 = 1확률 분포
3ε=0 → 일반 one-hot
4정답 확률 = 1-ε
5비정답 확률 = ε/(K-1)
6모든 원소 ∈ [0, 1]
7K=2 특수 케이스 (엔트리 모두 0.5) when ε=1
코드 작성
Loading...
실행 결과

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