정보이론·연습 문제

Jensen-Shannon 발산

문제 설명PROBLEM

preview

Jensen-Shannon 발산

37번 교차 엔트로피 · 136번 KL 발산 의 심화. KL 은 비대칭 이라 "분포 간 거리" 를 말할 때 불편합니다. Jensen-Shannon 은 KL 을 두 번 써서 대칭 화합니다:

JSD(p,q)=12DKL(pm)+12DKL(qm),m=p+q2\text{JSD}(p, q) = \frac{1}{2} D_{KL}(p \parallel m) + \frac{1}{2} D_{KL}(q \parallel m), \quad m = \frac{p + q}{2}

성질

  • 대칭: JSD(p, q) = JSD(q, p).
  • 경계: bits 단위로 0 ≤ JSD ≤ 1.
  • √JSDmetric — 진짜 거리 공간.
  • GAN 의 원래 objective 는 JSD 를 최소화하는 것.

과제

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

  • p, q: 확률 분포 (합 = 1).
  • 반환: bits 단위 float, [0, 1].
  • KL 을 재사용하거나 직접 구현 — p_i = 0 인 항은 0 log 0 = 0 처리.

테스트 케이스

#이름검증
1같은 분포 → 0JSD(p, p) = 0
2대칭JSD(p, q) == JSD(q, p)
3비음수모든 (p, q) 에 대해
4경계 [0, 1]bits 기준
5완전 분리 분포 → 1disjoint support 일 때
개념 노트와 실수 포인트

정보이론

  • 엔트로피=불확실성, 크로스엔트로피, KL 발산(분포 차이).
  • ⚠️ log 밑(자연로그 ln 가 기본)과 log(0) 처리.