KL Divergence란? VAE에서의 역할과 수식까지 한눈에 정리!

Bean·2025년 6월 11일
0

인공지능

목록 보기
48/123

VAE (Variational Auto Encoder) 손실 함수의 핵심, 확률 분포 간 ‘차이’를 정량화하는 도구


KL Divergence란?

KL Divergence(Kullback–Leibler Divergence, 쿨백-라이블러 발산)는 두 확률 분포가 얼마나 다른지를 수치로 표현하는 방법입니다.
특히 VAE(Variational Autoencoder)에서는 잠재 변수의 분포가 우리가 원하는 표준 정규분포와 가까워지도록 만드는 데 필수적인 요소입니다.


1. 직관적으로 이해하기

KL Divergence는 다음 질문에 답하는 도구입니다:

“진짜 분포 P 대신 근사한 분포 Q를 쓴다면, 정보가 얼마나 손실될까?”

  • P(x) = 우리가 원하는 진짜 분포 (ex: N(0,1)\mathcal{N}(0,1))
  • Q(x) = 우리가 학습한 분포 (ex: 인코더가 만들어낸 q(zx)q(z|x))

KL Divergence는 Q가 P에서 얼마나 벗어났는지를 숫자(비용)로 알려줍니다.


2. 수식으로 이해하기

연속적인 확률 분포 QQPP에 대해, KL Divergence는 다음과 같이 계산됩니다:

DKL(QP)=Q(x)logQ(x)P(x)dxD_{KL}(Q \| P) = \int Q(x) \log \frac{Q(x)}{P(x)} dx
  • 두 분포가 완전히 같다면 → KL = 0
  • 다를수록 → KL 값이 커짐
  • 비대칭적DKL(QP)DKL(PQ)D_{KL}(Q \| P) \neq D_{KL}(P \| Q)

즉, KL Divergence는 거리처럼 생겼지만 거리(metric)는 아닙니다.


3. VAE에서의 KL Divergence

VAE에서는 인코더가 출력하는 잠재 분포 q(zx)q(z|x)정규분포 p(z)=N(0,1)p(z) = \mathcal{N}(0,1)에 가깝게 만들고자 합니다.

  • q(zx)=N(μ,σ2)q(z|x) = \mathcal{N}(\mu, \sigma^2)
  • p(z)=N(0,1)p(z) = \mathcal{N}(0, 1)

이 두 정규분포 간의 KL Divergence는 다음의 폐쇄형 수식(analytical form)으로 계산됩니다:

DKL(q(zx)p(z))=12i=1d(μi2+σi2logσi21)D_{KL}(q(z|x) \| p(z)) = \frac{1}{2} \sum_{i=1}^{d} \left( \mu_i^2 + \sigma_i^2 - \log \sigma_i^2 - 1 \right)

이 식은 VAE의 손실 함수에 포함되어, 학습 과정에서 μ\mu가 0에, σ\sigma가 1에 가까워지도록 유도합니다. 결과적으로, 잠재 변수 z는 표준 정규분포를 따르게 됩니다.


4. 요약 정리

항목내용
정의두 확률 분포 간의 "차이"를 정량화
직관잘못된 분포를 사용했을 때의 정보 손실량
VAE에서의 역할잠재 공간의 분포를 표준 정규분포로 유도
값의 범위0 이상 (같으면 0, 다르면 >0)
특징비대칭적, VAE 손실 함수의 중요한 구성요소

profile
AI developer

0개의 댓글