2020. 6. 6. 21:10ㆍNotes/Machine Learning
Entropy, Cross Entropy, KL Divergence, Mutual Information
몇 번을 보긴 했어도 한번도 제대로 이해를 해보려 한적이 없어서 여전히 잘 모르는 KL Divergence에 대해서 한번 정리를 해보려고 한다.
정보이론
우리가 일반적으로 해가 동쪽에서 떴다거나 겨울이 오면 춥다거나 하는 사실들은 너무도 당연하기에 큰 정보를 담고 있지 않다.
반대로 해가 서쪽에서 떴다거나 겨울에 덥다는 일이 발생하면 이는 흔치 않은 일이기에 엄청난 정보가 되어버린다.
즉, 흔한 정보일 수록 정보의 양이 적은 것이고 희귀한 정보일수록 정보의 양이 많은 것이다.
Entropy
그럼 이러한 정보들을 어떻게 효율적으로 저장하거나 표현하냐?
그런 관점에서 나온 개념이 엔트로피(Entropy)이다. 어떠한 여러가지 정보들을 가지고 있을 때 우리가 자주 사용하는 정보의 길이는 짧고 드물게 사용하는 정보의 길이가 길다면 어떤 정보를 표현하는 평균적인 정보의 양을 최소화 시킬 수 있을 것이다. 우리가 정보를 나타내는 단위는 bit이므로 bit가 늘어날 수록 표현할 수 있는 정보가 많아지므로 정보의 크기(양)은 확률이 작아짐에 따라 log단위로 많아질 것 같은것을 직관적으로 느낄 수 있을 것이다.
결국 Entropy의 정확한 정의는 각 메시지에 포함된 정보의 expectation이고 정보 $x$의 빈도를 $p(x)$라고 하고 이 정보 집합의 entropy를 $H(p)$라 정의하면
$H(p)$ = -$\Sigma$ $p(x)ln{p(x)}$
이 Entropy가 어떤 정보를 나타낸 것의 minimum 이 되고 아무리 이상적으로 정보를 표현하려고 해도 이 이하의 값을 가질 수 없다는 것을 의미한다.
Cross Entropy
그럼 cross entropy는 뭐냐하면 실제로 정보의 빈도는 $p(x)$인데 우리가 이를 모르고 estimation한 $q(x)$로 위의 entropy를 적용했을 때의 entropy라고 보면 된다. 식은 아래와 같다.
$H(p, q)$ = -$\Sigma$ $p(x)ln{q(x)}$
KL Divergence
KL Divergence는 이러한 cross entropy와 entropy사이의 기댓값이 얼마나 차이가 나는지에 대한 척도를 나타내 주는 것이다. 이 값이 0에 가까울 수록 이상적으로 estimation을 한 것이고 클 수록 제대로 estimation을 하지 못한 셈이 된다. 식은 아래와 같다.
$D_{KL}(P||Q)$ = $H(p, q) - H(p)$ = $\Sigma$ $p(x)ln{\frac{p(x)}{q(x)}}$
Mutual Information
Mutual information은 x라는 분포와 y라는 분포가 독립이라는 가정을 했을 때 실제로 x와 y의 분포와 얼마나 차이가 있는지에 대해서 알려주는 지표라고 생각하면 된다. 식과 함께 보자.
$I(X;Y)$ = $D_{KL}(P(X,Y)||P(X)P(Y))$
= $\Sigma_y$$\Sigma_x$$P(X,Y)$$ln{\frac{P(X, Y)}{P(X)P(Y)}}$
이렇게 나타내어 지는 식이며 의미는 곧 KL Divergence에서 설명했듯
원래의 분포는 독립이 아닌데($P(X,Y)$) 독립이라 가정($P(X)P(Y)$)하고 정보의 양을 할당을 했을 때의 얼마나 평균 길이가 길어지는 지를 나타내는 식이다.
결국 실제 분포도 독립이라면 Mutual Information의 값이 0이 되고 실제로 독립인 확률 분포사이에는 공유하는 상호간의 공유하는 정보가 없다는 것과 일치하게 된다. 반대로 실제 분포가 독립이 아니라면 이 값이 0이 아니게 될 것이며 이 값이 커질 수록 실제 분포가 독립일때와는 거리가 멂으로 두 확률 분포간의 공유하는 정보가 많다는 것을 의미하게 되는 것이다.
'Notes > Machine Learning' 카테고리의 다른 글
차원 축소화 알고리즘 t-SNE, PCA (0) | 2021.04.10 |
---|---|
Histogram Comparison (0) | 2021.04.10 |