KL Divergence 두 확률분포의 차이를 계산하는 데에 사용하는 함수
KL Divergence는 정보 이론에서 그 유래를 찾아볼 수 있습니다. 정보 이론의 주요 목적은 얼마나 많은 정보가 데이터에 들어있는지 정량화하는 것입니다. 정보이론에서 가장 중요한 측정 기준은 엔트로피입니다. 이는 보통 H로 표기됩니다. 어떤 확률 분포에 대한 엔트로피의 정의는 다음과 같습니다.
만약 우리가
(밑이 2인 로그)를 사용한다면 엔트로피를 “정보를 인코딩하는데 필요한 최소한의 비트 수”로 해석할 수 있습니다. 이 경우에 정보는 우리의 경험적 분포를 고려한 이빨 갯수의 각 관찰일 것입니다. 우리가 관찰한 데이터가 주어졌을 때, 확률분포는 3.12 bits의 엔트로피를 가집니다. 이러한 비트 수는 우리가 정보를 인코딩하는데 얼마나 많은 비트가 필요한지 그 하한을 알려줍니다.
하지만 엔트로피는 이러한 압축을 달성하기 위해서 어떤 최적의 인코딩 방법을 사용해야 하는지 알려주지는 않습니다. 최적의 인코딩 방법을 찾는것은 흥미로운 주제이지만 KL divergence를 이해하는데 필수는 아닙니다. 엔트로피가 가지는 중요한 점은 정보를 인코딩하는데 우리가 필요한 비트수의 이론적인 하한을 계산할수 있다는 점입니다. 이제 이를 정량화할수 있고 우리는 관찰된 확률분포를 파라미터화된 근사추정 분포로 대체할 때 데이터 관점에서 얼마나 많은 정보가 손실되는지 측정하려고 합니다.
Measuring information lost using Kullback-Leibler Divergence
Kullback-Leibler Divergence는 엔트로피에 대한 식에서 조금 변경된 것입니다. 확률 분포 p를 가지기 보다는 근사 분포 q를 사용하려는 것이죠. 그리고 그 차이를 다음과 같이 로그값으로 계산하는 것입니다.
좀 더 일반적인 방법은 KL divergence를 아래와 같이 쓰는 것입니다.
'컴퓨터이야기' 카테고리의 다른 글
[펌]정규화와 표준화 (0) | 2019.07.15 |
---|---|
np.argsort 역순으로 (0) | 2019.04.17 |
Time 모듈 (0) | 2019.03.19 |
MNIST 러닝 (0) | 2019.02.20 |
[펌] Summary: Best Facial Recognition APIs for Apps and Software (0) | 2018.08.24 |