
36번 엔트로피 가 "한 분포의 불확실성" 이라면, KL 발산 은 두 분포의 차이 를 측정합니다. "p 대신 q 로 인코딩하면 얼마나 추가 비트 필요한가":
KL(p‖q) ≠ KL(q‖p) 일반적으로. 그래서 "발산" 이지 "거리" 가 아님.p = q 일 때만 0.함수 kl_divergence(p, q) 를 완성하세요.
p, q: 확률 분포 (합 = 1). 같은 길이.float (단위 bit).p_i = 0 인 항은 제외 (정의상 0·log 0 = 0).q_i = 0 이고 p_i > 0 면 발산이 inf — 그대로 np.inf 반환 OK.| # | 이름 | 검증 |
|---|---|---|
| 1 | 같은 분포 → 0 | KL(p, p) = 0 |
| 2 | 비음수 | 임의 (p, q) 에 대해 ≥ 0 |
| 3 | 비대칭 | KL(p,q) ≠ KL(q,p) |
| 4 | 알려진 값 | p=[0.5, 0.5], q=[0.75, 0.25] → 정확 |
| 5 | scipy entropy-v1 일치 | bits 단위로 |
코드를 작성하고 Run 을 눌러보세요.