← 문제 목록/Jensen-Shannon Divergence (대칭 KL) [medium]
문제 해설

Jensen-Shannon Divergence (대칭 KL) [medium]

정보이론 · medium

preview

Jensen-Shannon Divergence [medium]

v1 KL 의 단점:

  • 비대칭: DKL(pq)DKL(qp)D_{KL}(p\|q) \ne D_{KL}(q\|p) — "거리" 라 부를 수 없음.
  • 무한대 위험: qi=0,pi>0q_i = 0, p_i > 0 이면 \infty.

Jensen-Shannon Divergence 가 이 둘을 해결:

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
대칭JSD(p,q)=JSD(q,p)\text{JSD}(p, q) = \text{JSD}(q, p)
유계 (log₂ base)JSD[0,1]\text{JSD} \in [0, 1]
유한 (0 있어도)mim_ipp 또는 qq 가 양수면 양수
JSD\sqrt{\text{JSD}} 은 metric✅ 삼각부등식 만족
JSD=0    p=q\text{JSD} = 0 \iff p = q

활용

  • GAN 의 원 논문 (Goodfellow 2014) 의 이론적 근거.
  • 문서 유사도 (probability distributions over topics).
  • 분포 간 거리 계산 전반.

과제

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

  • p, q: 1D 확률 배열 (합 ≈ 1 가정).
  • 반환: Python float, 비트 단위.
  • m=(p+q)/2m = (p + q) / 2 에서 mi>0m_i > 0 항만 계산.
  • pi=0p_i = 0 또는 qi=0q_i = 0 인 경우도 NaN/inf 없이 유한해야 (by mi>0m_i > 0 조건).

테스트 케이스

#이름검증
1JSD(p, p) = 0
2대칭: JSD(p, q) = JSD(q, p)
3유계 [0, 1] (log₂)
4JSD([1,0,0], [0,1,0]) = 1 (max, 상호 배타)
5q 에 0 있어도 finite (0 에 의한 항 건너뛰기)
6JSD\sqrt{\text{JSD}} 삼각부등식 (metric)
7scipy jensenshannon(p, q, base=2) ^2 과 일치
코드 작성
Loading...
실행 결과

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