KLD와 JSD

Kim. K.S·2022년 1월 21일

ML/AI공부

목록 보기
2/7

저는 전공이 산업공학과입니다. 통계를 배우긴 하지만 아래 설명할 개념인 KLD(KL 다이버전스)와 JSD(젠슨-섀넌 다이버전스)는 수업시간에 다루지 않았습니다.
그러다 생성모델을 공부하던 중 VAE에서 KLD가 등장하고, GAN에서 JSD가 등장해서 제가 찾아본 내용을 간단하게 정리했습니다.

0. KLD, JSD의 목적

  • KLD, JSD 모두 확률분포의 유사도를 계량하는 지표입니다.

1. KLD

  • KL(Kullback-Leibler) divergence 이며 DKLD_{KL}로 표기합니다.
  • DKL(PQ)=xP(x)logP(x)Q(x)dxD_{KL}(P \| Q) = \int_x P(x) \log \frac{P(x)}{Q(x)} dx 입니다.
    위 식에서 P(x)=Q(x)P(x) = Q(x)일때 최소값 0을 갖습니다. 즉 두 확률분포가 같을때 최소값 0을 갖습니다.
  • 비대칭이기 때문에 DKL(PQ)DKL(QP)D_{KL}(P \| Q) \not= D_{KL}(Q \| P) 입니다.
  • 0DKL(PQ)inf0 \leq D_{KL}(P \| Q) \leq \inf 이고, 유한한 값을 갖기위해선 두 확률분포가 서로 겹치는 부분이 있어야 합니다.

a. KLD와 cross entropy와의 관계

DKL(PQ)=ExP[logP(x)Q(x)]=ExP[logP(x)logQ(x)]D_{KL}(P \| Q) = E_{x\sim P}[log\dfrac{P(x)}{Q(x)}] =E_{x\sim P}[logP(x) -logQ(x)]
 =ExP[logQ(x)](ExP[logP(x)])\qquad\qquad\quad\ = -E_{x\sim P}[logQ(x)]-(-E_{x\sim P}[logP(x)])
첫번째 term은 P, Q의 cross entropy이고, 두번째 term은 P의 Entropy입니다.
위 식을 정리하면
H(P,Q)=DKL(PQ)+H(P)H(P,Q) =D_{KL}(P \| Q) +H(P)로 정리되고. Q에대해서 KL을 최소화 하는것은 크로스엔트로피를 최소화 하는 것과 같습니다. 이 경우에 Q는 보통 뉴럴넷을 통해서 원래 데이터의 분포를 근사하려는 임의의 분포입니다.

2. JSD

  • JS(Jensen-Shannon) divergence이며 JSDJSD라고 그대로 표기합니다.
  • DJS(pq)=12DKL(pp+q2)+12DKL(qp+q2)D_{JS}(p \| q) = \frac{1}{2} D_{KL}(p \| \frac{p + q}{2}) + \frac{1}{2} D_{KL}(q \| \frac{p + q}{2})로 정의됩니다.
  • 0JSD(PQ)10 \leq JSD(P \| Q) \leq 1 이며, 대칭적입니다!
profile
시원한 맥주, 음악, 야구, 사진찍기를 좋아합니다.

0개의 댓글