【기계 학습】Kullback-Leibler Divergence란?
2542 단어 MachineLearning기계 학습정보 이론
한 클래스의 학생의 신장 데이터를 예로 든다.
아래 그림에서 청색 막대 그래프가 계측된 학생의 신장 분포, 오렌지 라인이 추측 모델을 각각 나타내고 있다고 합니다.
그렇다면 이 측정 데이터의 분포와 추측 모델에서 얼마나 어긋남이 있는 것일까요?
이 어긋남(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) 등에서 손실 함수로 모델을 최적화하는 데 사용됩니다.
참고:
Reference
이 문제에 관하여(【기계 학습】Kullback-Leibler Divergence란?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shuva/items/81ad2a337175c035988f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)