저는 전공이 산업공학과입니다. 통계를 배우긴 하지만 아래 설명할 개념인 KLD(KL 다이버전스)와 JSD(젠슨-섀넌 다이버전스)는 수업시간에 다루지 않았습니다.
그러다 생성모델을 공부하던 중 VAE에서 KLD가 등장하고, GAN에서 JSD가 등장해서 제가 찾아본 내용을 간단하게 정리했습니다.
0. KLD, JSD의 목적
- KLD, JSD 모두 확률분포의 유사도를 계량하는 지표입니다.
1. KLD
- KL(Kullback-Leibler) divergence 이며 DKL로 표기합니다.
- DKL(P∥Q)=∫xP(x)logQ(x)P(x)dx 입니다.
위 식에서 P(x)=Q(x)일때 최소값 0을 갖습니다. 즉 두 확률분포가 같을때 최소값 0을 갖습니다.
- 비대칭이기 때문에 DKL(P∥Q)=DKL(Q∥P) 입니다.
- 0≤DKL(P∥Q)≤inf 이고, 유한한 값을 갖기위해선 두 확률분포가 서로 겹치는 부분이 있어야 합니다.
a. KLD와 cross entropy와의 관계
DKL(P∥Q)=Ex∼P[logQ(x)P(x)]=Ex∼P[logP(x)−logQ(x)]
=−Ex∼P[logQ(x)]−(−Ex∼P[logP(x)])
첫번째 term은 P, Q의 cross entropy이고, 두번째 term은 P의 Entropy입니다.
위 식을 정리하면
H(P,Q)=DKL(P∥Q)+H(P)로 정리되고. Q에대해서 KL을 최소화 하는것은 크로스엔트로피를 최소화 하는 것과 같습니다. 이 경우에 Q는 보통 뉴럴넷을 통해서 원래 데이터의 분포를 근사하려는 임의의 분포입니다.
2. JSD
- JS(Jensen-Shannon) divergence이며 JSD라고 그대로 표기합니다.
- DJS(p∥q)=21DKL(p∥2p+q)+21DKL(q∥2p+q)로 정의됩니다.
- 0≤JSD(P∥Q)≤1 이며, 대칭적입니다!