【기계 학습】Kullback-Leibler Divergence란?

두 가지 확률 분포를 비교하는 데 사용되는 "Kullback-Leibler Divergence (컬백 라이브러 정보량)"에 대해 공부했습니다.

한 클래스의 학생의 신장 데이터를 예로 든다.
아래 그림에서 청색 막대 그래프가 계측된 학생의 신장 분포, 오렌지 라인이 추측 모델을 각각 나타내고 있다고 합니다.
그렇다면 이 측정 데이터의 분포와 추측 모델에서 얼마나 어긋남이 있는 것일까요?
이 어긋남(error)을 도모하기 위해서, 각각의 정보량의 차이를 계산할 수가 있습니다. 여기서 Kullback-Leibler Divergence (KL Divergence)가 등장합니다.



정보 엔트로피



KL divergence 를 계산하기 위해서는 Entropy (엔트로피) 의 개념을 알아야 하기 때문에 가볍게 복습합니다.

정보 엔트로피는 다음 공식으로 정의됩니다.
H=-\sum_{i=1}^{N} p\left(x_{i}\right) \cdot \log p\left(x_{i}\right)
=\sum_{i=1}^{N} p\left(x_{i}\right) \cdot \log 1/p\left(x_{i}\right)


p(x) 를 어떤 이벤트가 일어날 확률로 했을 때, 1/p(x) 는 그 이벤트가 일어났을 때에 얻어지는 정보량을 나타냅니다. 예를 들어, 한 학생의 신장은 150cm, 160cm, 170cm 중 하나이며, 각각 확률이 1/2, 1/4, 1/4라고 가정합니다. 이때 그 학생의 신장이 150cm라고 알았을 때 얻을 수 있는 정보량은 1/(1/2) = 2가 됩니다. 160cm라고 알았을 때는 1/(1/4) = 4입니다. 이와 같이, 일어날 확률이 낮은 이벤트일수록, 얻어지는 정보량이 커집니다. 엔트로피에서는 이 정보량의 log2를 취하는 것으로, 그 정보를 나타내기 위해서 몇 비트 필요인가의 형태로 옮겨놓습니다. 이것을 모든 사건에 대한 평균, 즉 기대치를 취한 것이 정보 엔트로피가 됩니다.

엔트로피 손실



KL divergence는 관측 데이터 분포 p (x)의 엔트로피에서 추정 모델 q (x)의 엔트로피를 빼서 얼마나 많은 정보가 손실되었는지 계산합니다.
D_{K L}(p \| q)=\sum_{i=1}^{N} p\left(x_{i}\right) \cdot\left(\log p\left(x_{i}\right)-\log q\left(x_{i}\right)\right)
=\sum_{i=1}^{N} p\left(x_{i}\right) \cdot \log \frac{p\left(x_{i}\right)}{q\left(x_{i}\right)}


키의 예를 사용하면
D_{K L}(Original \|Estimated ) = 0.3

그렇다면 추정 모델은 관측 분포보다 0.3 정보의 손실이 있다고 말할 수 있습니다.

divergence는 거리가 아닙니다.



divergence 는 보기 거리 행렬이라고도 생각할 수 있을 것 같습니다만, $D_{K L}(p | q)$ 와 $D_{K L}(q | p)$ 에서는 다른 값을 취하기 때문에, 엄밀하게는 거리가 아닙니다.

기계 학습에서의 응용



KL divergence는 VAA (Variational Autoencoder) 등에서 손실 함수로 모델을 최적화하는 데 사용됩니다.

참고:


  • htps //w w. 이런 t바잖아. 코 m / b / g / 2017 / 5 / 9 / 퀵 바 CK
  • htps : // 와와 rds 였던 s 시엔세. 코 m / 테 ぇ い つ い ち ん ー ベ ヒ ン ド シャ ン ン ー t t py 에 74820 훗 9800
  • 좋은 웹페이지 즐겨찾기