손실 함수·연습 문제

Focal Loss

문제 설명PROBLEM

preview

Focal Loss

Softmax CE(50번)불균형 분류 특화 변형. Lin et al. (RetinaNet) 이 제안. 이미 잘 맞추는 쉬운 샘플의 기여를 줄여서, 어려운 샘플에 집중 시킵니다.

Lfocal(py)=(1py)γlog(py)\mathcal{L}_\text{focal}(p_y) = -(1 - p_y)^\gamma \log(p_y)

여기서 py=softmax-v1(z)yp_y = \text{softmax-v1}(z)_y정답 클래스의 예측 확률.

파라미터 γ (focusing)

  • γ=0\gamma = 0: 일반 CE와 동일
  • γ=2\gamma = 2 (기본값): 이미 py=0.9p_y = 0.9 인 샘플의 손실을 (0.1)^2 = 0.01 배로 축소
  • γ\gamma: 어려운 샘플에 더 강하게 집중

과제

함수 focal_loss(logits, y_true, gamma) 를 완성하세요.

  • 입력: logits (N, K), y_true (N,) 정수, gamma >= 0.
  • 반환: Python float (배치 평균).
  • 순서: softmax-v1 → pick pyp_y → focal weight → 평균.

테스트 케이스

#이름검증
1γ=0 은 CE 와 동일
2완벽 예측 → 0
3γ>0, 쉬운 예제: focal < CE
4γ>0, 어려운 예제 (p_y=0.5): focal < CE
5유한성큰 로짓도 유한
개념 노트와 실수 포인트

손실 함수

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