# 수학/정보 이론

기초 정보 이론(Entropy, Cross Entropy, KL Divergence)

alz 2022. 5. 11. 22:05

ML,DL을 공부하면서, 자주접하게 되는 개념들이기 때문에 정리해야 할 필요성이 있어서 정리합니다.

 

 

정보이론의 의미

 

1. Probability Theory : 불확실성에 대한 일어날 가능성을  모델링

 

베이즈 모델의 예시

$ P(Y \vert X) = \frac{P(X \vert Y)P(y)}{P(X)}  $

 

 

2. Decision Theory : 불확실한 상황에서 추론에 근거해 결론을 내리는 방식

$$ Y = 1\text{if } \frac{P(x \vert y = 1)p(y = 1)}{P(x \vert y = 0)p(y = 0)} > 1 $$

 

 

3.Information Theory : 확률 분포 P(X) 의 불확실 정도를 평가하는 방법

$$ H(X) = -\sum_{x}P(X) \log{P(X)} $$

 

 

정보량이란 ?

 

정보이론에서의 '정보량'이란 놀람의 정도 라고 생각하면 됩니다.

글로 쓰면 이해가 되지않기 때문에 사례를 들면,

 

내가 오늘 집에 가는길에 운석이 떨어졌는데, 그 운석이 발 바로앞에 있을 사건

 

이 확률은 $ 10^{-1000} $의 확률보다 훨씬 적을 확률입니다. 

근데 이사건이 발생했다는것은 놀랄만한 일이겠죠? 이때는 놀람의 정도가 굉장히 높고, 이 사건으로 얻을 정보는 많다고 합니다.

 

반면, 확률이 굉장히 높은 사건을 예시로 들어보겠습니다.

 

로또를 샀는데 1등이 당첨되지 않은 사건 

 

이 확률은 상당히 높겠죠? 이런 일은 별로 높은 확률도 아니기 때문에, 새롭게 얻을 수 있는 정보가 적습니다.

 

따라서 확률이 높으면 정보량이 낮고, 확률이 낮으면 정보량이 높다라고 생각할 수 있습니다.

 

이를 수식으로 나타내면 다음과 같습니다.$$ I(X) = log(\frac{1}{p(x)}) $$ 

$$ = -log(p(x)) $$

 

 

로그함수를 사용하는 이유는?

 

첫번째로,

로그로 정보에 필요한 최소한의 자원을 표현할 수 있다는 점입니다.

예를들어 확률이 $\frac{1}{16}$ 의 사건을 2진수로 표현한다면, $-log_2(\frac{1}{4})$ = 4 (bit) 으로 표현이 가능합니다.

이때, 4bit은 필요한 최소한의 자원수 라고 합니다.

 

두번째로,

log 함수의 덧셈 성질 때문입니다.

두 독립사건 A,B에 대해서, 두사건이 동시에 발생할 확률은 P(A)P(B)가 되는데, 그 사건의 정보량 I(A,B)는 다음과 같이 나타내집니다.

$$I(A,B) = -log(P(A)P(B)$$

$$-log(P(A)) - log(P(B)) $$

$$ I(A) + I(B) $$

 

 

엔트로피(Entropy)란 ?

일반적으로 특정 결과와 관련된 정보량보다는 가능한 모든 결과들의 평균 정보량에 관심을 갖습니다.

이때, 엔트로피가 바로 정보량의 기댓값을 의미합니다. 

 

예를들어, 1~16까지의 숫자 사이에  하나의 숫자를 맞춘다고 할때,각각의 숫자를 고를확률은 $1_16$ 이고,

필요한 정보량은 $ \log{2}{16} $ =4 입니다.

 

이를 엔트로피로 계산하면 다음과 같습니다.

$$ H(X) = -\sum_{i=1}^{16} P(X = i)\log_{2}P(X = i) $$

$$ = \sum_{i=1}^{16} \frac{1}{16} \log_{2}{(\frac{1}{16})} = 4 (\text{(bit)} $$

 

위에서 말했듯이, 엔트로피는 정보량에 대한 기댓값,평균이며

동시에 사건을 표현하기 위해 요구되는 평균 자원 이라고 할 수 있습니다.

 

따라서 엔트로피는 다음과 같은 식을 가집니다.

$$ H(X) = -\sum_{X} \color{blue}{P(X)} \color{red}{\log_{2}{({P(X)})}} $$

 

 

Cross Entropy란?

현재 가지고 있는 데이터 분포가 P(X) 일 때, 이 P(X)를 근사화 할 수 있는 새로운 분포 Q(X) 를 이용하여 엔트로피를 구할 수 있습니다. 

Entropy = 정보량의 기대값 이니까, 정보량은 Q(X), 확률 분포는 P(X)를 사용하여 다음과 같이 표현해보면,

 

$$ H(P, Q) = \sum_{X} P(X) \log{\frac{1}{Q(X)}} = -\sum_{X} P(X) \log{Q(X)} $$

 

여기서, 크로스 엔트로피란 실제 데이터는 P(X) 분포로부터 생성되지만 Q(X) 분포를 사용하여 정보량을 측정해서 계산한 정보량의 기댓값을 의미합니다.

일반적으로 H(P,Q) H(P) 를 만족합니다. 즉 새롭게 가정한 Q(X)를 사용하여 엔트로피 인코딩시, P(X)보다 엔트로피가 커지게 됩니다.

 

 

KL divergence

 

쿨백-라이블러 발산(Kullback-Leibler divergence,KLD)은 두 확률분포의 차이를 계산하기 위해 고안된 함수 입니다.딥러닝 모델 AAE에서 입력 데이터의 분포 P(X)와 모델의 생성 데이터 Q(X)의 차이를 KLD를 통해서 구할 수 있습니다.

 

$$D_{\text{KL}}(P \Vert Q) = H(P, Q) - H(P) $$

$$\sum_{x} P(X) \log{\frac{1}{Q(X)}} - P(X)\log{\frac{1}{P(X)}}$$

$$ = \sum_{x} P(X) \log{\frac{P(X)}{Q(X)}} $$

 

여기서 P와 Q가 동일할 확률 분포일 경우에만 KLD 정의에 따라 값이 0이됩니다.하지만 KLD는 비대칭 이므로 P와 Q의 위치가 바뀌면 KLD의 값도 달라지기 때문에, KLD는 거리함수로는 사용 될 수 없습니다.

 

 

 

 

 

참고자료