본문 바로가기

연구실 공부

KL Divergence, Jensen-Shannon Divergence

728x90

데이터의 분포를 추정했을 때 얼마나 잘 추정한 것인지 측정하는 방법(두 분포가 얼마나 다른지)으로 KL Divergence와 Jesen-Shannon Divergence에 대해 알아보겠습니다.

 

KL Divergence

먼저 KL Divergence는 Kullback-Leibler Divergence의 줄임말입니다. 이는 정보 엔트로피를 이용해 비교가 진행되는 방식입니다. 그러다 보니 Relative entropy라고도 불립니다.

 

KL Divergence 식

먼저 이산확률분포 P와 Q가 동일한 샘플 공간 χ에서 정의된다고 하면 KL Divergence 식은 위와 같이 정의됩니다. 위 식에서 사용된 log의 밑은 보통 e, 2, 10 중 하나를 사용합니다. 어떤 것을 사용하냐에 따라 정보량의 단위는 변경될 것입니다.

 

처음 식은 위와 같은 식의 형태를 띄고 log의 성질을 통해

 

이와 같은 형태로 식이 전개될 수 있습니다. 위 식에서 ∑P(x)는 확률분포 P(x)에 대한 기댓값으로 치환할 수 있으며

 

이와 같이 변경 가능합니다. 또한 이 식은

 

 이와 같은 형태로 변경 가능합니다. 위 식에서 H_P(Q)는 P 기준으로 봤을 때의 Q에 대한 cross entropy를 의미하고 H(P)는 P에 대한 정보 entropy를 의미합니다. 즉 P(x)에 맞춰진 정보량을 보내야 할 자리에 Q(x)를 넣었을 때의 총 정보량과 P(x)를 보냇을 때의 정보량의 차이를 의미합니다.

식을 보면 알 수 있듯이 KL(P|Q)는 KL(Q|P)와 같지 않습니다. 즉 asymmetric합니다. KL(P|Q) = 0이라면 두 분포 P와 Q는 동일합니다. 그리고 KL(P|Q)는 항상 0보다 크거나 같습니다.

 

이런 KL Divergence를 이용해 그래프로 표현한다면

 

https://angeloyeo.github.io/2020/10/27/KL_divergence.html

이와 같이 그릴 수 있습니다. 초록색 그래프의 넓이 합이 KL Divergence값이 됩니다.

 

Jensen-Shannon Divergence

KL Divergence는 assymmetric하기 때문에 이를 symmetric 하게끔 변경한 것이 Jensen-Shannon Divergence입니다.

 

식은 위와 같습니다. 위에서 알아본 KL Divergence를 통해 JSD 식을 해석할 수 있습니다. JSD는 p와 q의 중간 값을 사용해 KL Divergence를 구하기 때문에 symmetric해지는 것을 볼 수 있습니다. 즉 JSD(p, q) = JSD(q, p)입니다. 이를 통해 두 확률 분포 사이의 거리(distance)의 역할을 할 수 있게 됩니다. 참고로 p = q인 경우 JSD의 값은 0이 됩니다.

'연구실 공부' 카테고리의 다른 글

[ML] 2. MAP  (0) 2023.02.28
[ML] 1. MLE  (0) 2023.02.28
Contrastive Learning for Unpaired Image-to-Image Translation 논문 코드  (0) 2023.02.13
CycleGAN 논문 코드  (0) 2023.02.07
AutoEncoder(AE), Variant AutoEncoder(VAE)  (0) 2023.02.06