← 문제 목록/KL 발산 — Gaussian 간 (closed-form)
문제 해설

KL 발산 — Gaussian 간 (closed-form)

정보이론 · easy

preview

KL 발산 — 두 가우시안 간 (closed-form)

39번 KL 발산 은 이산 분포 입니다. 연속 가우시안 두 개 N(μ1,σ1)N(\mu_1, \sigma_1), N(μ2,σ2)N(\mu_2, \sigma_2) 사이의 KL 은 닫힌 식 으로 표현됩니다 (나츠 단위):

DKL(N(μ1,σ1)N(μ2,σ2))=logσ2σ1+σ12+(μ1μ2)22σ2212D_{KL}\big(N(\mu_1, \sigma_1) \,\|\, N(\mu_2, \sigma_2)\big) = \log \frac{\sigma_2}{\sigma_1} + \frac{\sigma_1^2 + (\mu_1 - \mu_2)^2}{2\sigma_2^2} - \frac{1}{2}

왜 중요?

VAE (Variational Autoencoder) 의 핵심 항. 학습된 분포 q(zx)=N(μ,σ)q(z|x) = N(\mu, \sigma) 를 표준 정규 N(0,1)N(0, 1) 에 가깝게 유지하도록 규제:

DKL(N(μ,σ)N(0,1))=12(1+2logσμ2σ2)D_{KL}\big(N(\mu, \sigma) \,\|\, N(0, 1)\big) = -\frac{1}{2}\big(1 + 2\log\sigma - \mu^2 - \sigma^2\big)

매우 자주 보게 되는 수식.

과제

함수 kl_gaussian(mu1, sigma1, mu2, sigma2) 를 완성하세요.

  • 네 개의 float (1차원 gaussian).
  • 반환: Python float (nats 단위).

테스트 케이스

#이름검증
1같은 파라미터 → 0KL(N, N) = 0
2비음수임의 파라미터에서 ≥ 0
3scipy 일치scipy.stats 비교
4VAE 형태 (→N(0,1))단순화 식과 일치
5비대칭KL(P,Q) ≠ KL(Q,P)
코드 작성
Loading...
실행 결과

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