[기계학습] Information Entropy and KL Divergence

JAEYOON SIM·2022년 3월 2일
0

Machine Learning

목록 보기
14/35
post-thumbnail
post-custom-banner

Information

Information은 관점을 어떻게 하는지에 따라 다양하게 해석할 수 있다. 컴퓨터의 입장에서 information이라고 하면 data와 관련이 가장 있을 것이다. Information은 어느 분야에서 어떻게 해석하든지 간에 굉장히 추상적인 개념일 것이다.

이번에 관심을 두고자 하는 information을 statistics의 관점에서 알아보고 싶은 것이다. Statistics에서 information은 uncertainty와 관련이 있어 내용이 다가오는 정도에 따라서 information의 양을 나타낼 수 있다. 즉, 확실한 내용일수록 information의 양이 적어지게 되는 셈이다. 이러한 개념은 확률의 관점에서 살펴보면 발생할 확률이 낮아지는 사건에 대해서 information의 양이 많아지게 되는 것이다. 왜냐하면 확률이 낮다는 것은 그만큼 해당 사건이 발생하지 않을 가능성이 크기 때문이다. 어떠한 random variable XX에 대해서 이러한 관점으로 information의 양을 수학적으로 표현해보면 다음과 같을 것이다.

Amount of Information1P(X)\text{Amount of Information} \propto \frac{1}{P(X)}

이를 statistics에서 수식으로 정리하면 다음과 같다.

I(x)=logbP(X)I(x) = -\text{log}_bP(X)

Log의 밑에 사용된 bb의 경우 어떠한 내용과 관련이 있는지에 따라서 2, 10, e 등과 같이 사용될 것이다. 가령 컴퓨터에서는 bit 단위로 처리를 주로 하기 때문에 b=2b=2%를 사용하게 될 것이다. 우리는 위의 비례식에서 살펴본 것을 log를 통해서 수식화 한 것이며, 앞의 음수는 분수에 log를 취했기 때문이다.

Entropy

Entropy 또한 사용되는 분야에 따라 관점이 다르게 된다. 가령, 화학 분야에서 entropy는 무질서를 설명하고자 할 때 사용이 된다. 여기서 관심이 있는 entropy는 statistics의 관점으로 해석하고자 하는 것이며, 이때 entropy는 information의 expectation으로서 해석이 된다.

Discrete random variable XX의 sample space를 다음과 같다고 해보자.

X={x1,x2,,xn}X = \{x_1, x_2, \dots, x_n\}

이때, entropy는 다음과 같이 수식으로 정의할 수 있다.

H(X)=E[I(X)]=i=1nP(xi)logbP(xi)H(X) = E[I(X)] = -\sum_{i=1}^nP(x_i)\text{log}_bP(x_i)

이 식을 보면서 왜 information의 expectation을 취한 형태가 위와 같은지 의문을 가질 수 있다. 이를 위해서 expectation이 무엇인지 다시 생각해 볼 필요가 있다. 가장 쉬운 예시 중 하나로 주사위를 던졌을 때 expecation은 어떻게 구할 수 있을까? Expectation의 정의는 해당 사건과 해당 사건이 발생하는 확률을 곱해서 더해주게 된다. 주사위 숫자의 expecation은 따라서 다음과 같아지게 될 것이다.

E(X)=16×1+16×2++16×6=72=3.5E(X) = \frac{1}{6}\times1 + \frac{1}{6}\times2+\dots+\frac{1}{6}\times 6 = \frac{7}{2} = 3.5
E(X)=i=16P(xi)M(xi)E(X) = \sum_{i=1}^6P(x_i)M(x_i)

주사위 눈금이 나올 확률을 PP라고 하고, 해당 눈금을 MM이라고 하면 위와 같이 일반화 시킬 수 있다. 즉, 확률과 사건을 곱해줘서 전부 더하는 식으로 expectation은 계산이 된다. 이러한 식으로 entropy 또한 information의 expectation이기 때문에 확률과 information의 식을 곱해주는 것이다.

H(X)=i=1n{P(xi)×(logbP(xi))}=i=1nP(xi)logbP(xi)H(X) = \sum_{i=1}^n\{P(x_i)\times(-\text{log}_bP(x_i))\} = -\sum_{i=1}^nP(x_i)\text{log}_bP(x_i)

Cross Entropy

Cross entropy는 KL divergence를 이해하기 위해서 먼저 이해해야 하는 개념으로, 실제 distribution QQ에 대해 알지 못하는 상태에서 modeling을 통해서 구한 distribution PP를 이용해서 qq를 예측하고자 하는 것이다. 즉, cross entropy는 실제로 원하는 target distribution과 우리의 modeling 결과 만들어진 distribution이 얼마나 다른지를 표현하고자 한다. 이는 entropy의 개념을 distribution을 추정하는데 사용하고 해서 등장한 것이며, 이를 수식으로 정리하면 다음과 같다.

Cross Entropy=xXP(x) logQ(x)\text{Cross Entropy} = -\sum_{x\in \mathcal{X}} P(x)\text{ log}Q(x)

이 식은 information의 expectation인 entropy의 식을 활용한 것으로, 결국에 cross entropy를 통해서 우리가 modeling한 distribution QQ에 대해서 실제 target distribution PP라는 이상적인 결과를 기대했을 때 우리가 얻게되는 기대감과 놀라움을 information으로 표현한 셈이다.

KL Divergence

KL divergence를 통해서 하고자 하는 것은 결론적으로 2개의 probability distribution이 얼마나 다른지를 확인하고자 하는 것이다. 그리고 이때 위에서 살펴 본 cross entropy 개념이 사용이 된다. 여기서 divergence라고 해서 calculus에서 다루는 수렴과 발산을 생각하면 헷갈릴 수 있다. 여기서의 divergence는 그저 probability distribtuion의 차이에 관한 개념을 대신하는 것 뿐이다.

다시 우리는 실제 target distribution PP를 정확하게 modeling하고자 하며, 우리의 결과로 생성된 distribution을 QQ라고 하자. 이때, 2개의 discrete probability distribution P,QP, Q에 대해서 KL divergence를 다음과 같이 정의하게 된다.

KL(PQ)=xXP(x) logb(P(x)Q(x))KL(P||Q)=\sum_{x\in\mathcal{X}}P(x)\text{ log}_b\bigg(\frac{P(x)}{Q(x)}\bigg)

이 식을 조금 전개를 해보면 다음과 같다.

=xXP(x) logb(Q(x)P(x))= -\sum_{x\in\mathcal{X}}P(x)\text{ log}_b\bigg(\frac{Q(x)}{P(x)}\bigg)
=xXP(x) logbQ(x)+xXP(x) logbP(x)=-\sum_{x\in\mathcal{X}}P(x)\text{ log}_bQ(x) + \sum_{x\in\mathcal{X}}P(x)\text{ log}_bP(x)
=HQ(X)H(X)=H_Q(X)-H(X)

즉, KL divergence는 cross entropy로부터 2개의 probability distribution 사이의 distance metric으로서 사용되는 것이다.

profile
평범한 공대생의 일상 (글을 잘 못 쓰는 사람이라 열심히 쓰려고 노력 중입니다^^)
post-custom-banner

0개의 댓글