← 문제 목록/교차 엔트로피 (분포 간)

교차 엔트로피 (분포 간)

정보이론 · easy

preview

교차 엔트로피 (Cross Entropy)

엔트로피(36번)한 분포 의 불확실성을 재는 양이라면, 교차 엔트로피는 진짜 분포 p 를 예측 분포 q 로 설명 할 때 필요한 평균 비트 수:

H(p,q)=ipilog2qiH(p, q) = -\sum_i p_i \log_2 q_i

성질

  • 항상 H(p,q)H(p)H(p, q) \ge H(p) (깁스 부등식).
  • p=qp = q 이면 H(p,q)=H(p)H(p, q) = H(p).
  • qp 와 다를수록 값이 커짐 → "얼마나 잘못 예측했는가" 측정.

머신러닝에서

  • 레이블 y 를 one-hot으로 표현한 게 p, 모델 softmax 출력이 q.
  • 교차 엔트로피 손실 = 분류 모델을 맞추는 기본 loss.
  • 0 확률 로그 문제 → 클리핑 으로 방어 (q → max(q, 1e-12)).

과제

함수 cross_entropy(p, q) 를 완성하세요.

  • 입력: 같은 길이의 확률 배열 두 개.
  • 반환: Python float, bits.
  • q <= 0 에서 NaN 없도록 클리핑.

테스트 케이스

#이름pq기대
1p == qH(p)[0.5, 0.5][0.5, 0.5]1
2완벽 예측 one-hot[1, 0][1, 0]0
3완전 반대[1, 0][0, 1]매우 큰 (클리핑 후 유한)
4중간[1, 0][0.5, 0.5]1
5Gibbs 부등식임의 p, qH(p, q) >= H(p)
Loading...

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