Machine Learning/이론

[통계] 엔트로피 Entropy, 크로스 엔트로피 Cross Entropy, KL divergence

파송송 2023. 6. 14. 15:32
728x90

정보 Information

통계학에서 놀랄만한 내용일수록 정보량이 많다고 이야기하고 이는 확률의 개념을 재해석한 것으로 볼 수 있다.

이는 확률이 낮은 사건일수록 거의 일어나지 않을 일이기 때문에 정보량이 높다고 이해할 수 있다.

 

위의 내용을 바탕으로 어떤 사건 변수 \( X \)에 대한 정보량(Info)는 다음과 같이 생각할 수 있다.

$$ Info \propto  \frac{1}{P(X)}   $$


정보량

구체적으로 통계에서 정보량은 다음과 같이 정의한다.

$$ I(x) = -log_{b}(P(X)) $$

b = 2 : bit

b = e : nit

b = 10 : dit

log에 \( \frac{1}{P(X) \)를 넣었기 때문에 -가 앞으로 나오고 위와 같이 정의된다.

 

log를 사용한 이유는 확률에 반비례 해야하고 두 사건의 정보량을 합치면 각 사건의 정보량을 합친 것과 같아야 하기 때문이다.

-> 두 사건이 연달아 일어나는 것은 확률의 곱으로 계산되기 때문에  log로 정보량을 합치는 것!

 


엔트로피: 평균 정보량

$$ H(X) = E[I(X)]=- \sum_{t=1}^{n} P(x_{i}) log_{b}(P(x_{i})) $$

통계에서 이산 랜덤 변수 \( X \)의 샘플 공간이 \( \{x_{1},x_{2}, \ldots ,x_{n}\} \)이라고 할 때 정보 엔트로피는 위와 같다.

 

\( H \): 정보 엔트로피

\( E[] \): 기댓값 연산(평균)

 

이를 시각화 하면 아래와 같은 그래프를 얻을 수 있다.

  • 이 정보를 토대로 확률이 0이거나 1일 때 엔트로피의 값은 낮아지며(예측하기 쉬움) 0.5일 때 높아지는 것을 확인할 수 있음
  • 왼쪽의 그래프와 같이 불균형한 분포 \( P(X) \)의 불확실성이 더 적기 때문에 엔트로피가 낮고 오른쪽 그래프와 같이 균등한 분포 \( P(x) \)에서는 불확실성이 높기 때문에 엔트로피가 높음
  • 엔트로피가 낮을 경우의 확률 분포에서 표본을 샘플링했을 때 그 샘플링한 결과를 맞추기 쉽다고 생각하면 된다. 

위의 수식 예시

주사위의 눈*100의 값을 가진다고 생각할 때 기댓값은 다음과 같다.

$$ \frac{1}{6} \times 100 +\frac{1}{6} \times 200 +  \ldots +\frac{1}{6} \times 600 =  \sum_{i=1}^6 P(x_{i}) M(x_{i}) $$

 

\( M(x_{i}) \): 사건 발생에 대해 받는 값

 

즉, 기댓값의 정의는 일어날 수 있는 사건에 대한 확률 x 이벤트 값을 모두 합친 것이라고 할 수 있다.

 

정보 엔트로피는 모든 일어날 수 있는 사건에 대한 확률 x 정보량 값을 합친 것으로  아래의 식을 통해 얻을 수 있는 값이다.

$$ H(X) = - \sum_{t=1}^{n} P(x_{i}) log_{b}(P(x_{i})) $$

\( p(x_{i}) \)의 합은 1이기 때문에 -가 앞으로 나왔다.

 


크로스 엔트로피 Cross Entropy

예측과 달라서 생기는 정보량으로 예측과 다를 때 높은 값을 가진다.

 

실제 분포 p를 모르는 모델이 모델링을 통해 q의 분포를 예측하고자 할 때 쓰이는 식으로 예측 분포를 q(x), 실제 분포를 p(x)라고 할 때 아래와 같이 정의된다.(q(x)는 p(x)를 근사화함)

$$ H_{p}(q)= \sum_{i=1}^{n}p(x_{i})log \frac{1}{q(x)}=-\sum_{i=1}^{n}p(x_{i})log q(x_{i}) $$

 

위의 식은 q와 p 분포의 차이를 나타낸다.

가방에 0.8, 0.1, 0.1 비율로 빨강, 노랑, 파란색 공이 들어가있지만 예측을 0.2, 0.2, 0.6으로 한다면 cross entropy는 아래와 같다.

$$ H(p) =-[0.8log(0.8)+0.1log(0.1)+0.1log(0.1)] = 0.63 $$

$$ H_{q}(p) =-[0.8log(0.2)+0.1log(0.2)+0.1log(0.6)] = 1.50 $$

 

  • 이는 아래의 식이 q(x)의 분포로 부터 샘플링되지만 p(x)의 분포를 이용하여 정보량을 측정한 계산된 정보량의 기댓값을 의미함
  • 일반적으로 H(p,q) > H(p)를 만족하며 q(x)를 이용한 크로스 엔트로피는 기존의 엔트로피보다 값이 커지게 된다.

 


KL Divergence(Kullback-Leibler Divergence)

divergence는 여기서는 발산의 개념이 아닌 차이의 개념으로 쓰이며 두 확률 분포의 차이를 뜻한다.

KL Divergence를 구하는 과정에서 Entropy를 이용한 비교가 진행되기 때문에 relative entropy라고도 불린다.

 

P: 실제 분포

Q: 예측 분포

 

$$ D_{KL}(P \mid \mid 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)}  $$

 

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

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

 

$$  \Longrightarrow -E_{p}[logQ(x)]+E_{P}[logp(x)] $$

p(x)는 다 더하면 1이 나오기 때문에 사라짐

 

위의 식을 통해 두 확률 분포의 차이를 측정할 수 있다.


성질

  • \( D_{KL}(P \mid \mid Q) = 0iffP =Q \)
  • \( D_{KL}(P \mid \mid Q)  \geq 0 \)
  • \( D_{KL}(P \mid \mid Q)  \neq D_{KL}(Q \mid \mid P) \)
  • P 고정하고 \( Q_{i} \)를 움직힐 때의 \( D_{KL}(P \mid \mid Q_{x}) \)의 변화는 \( H(P, Q_{x}) \)와 같음

https://angeloyeo.github.io/2020/10/26/information_entropy.html

https://angeloyeo.github.io/2020/10/27/KL_divergence.html

https://gaussian37.github.io/ml-concept-basic_information_theory/

 

 

 

728x90