-
[정보이론] 2. EntropyML Theory 2024. 1. 8. 20:32
DALL-E, "Entropy", 2024. 어떠한 사건으로부터 얼마나 많은 정보를 우리는 기대할 수 있을까요?
Shannon의 Entropy가 그것을 말해줍니다.
들어가기에 앞서
정보이론 1편의 글 에서 우리는 shannon information content를 다음과 같이 정의하였습니다.
$$
h(x=a) = log_{2}\frac{1}{p(x=a)}
$$
어떠한 $a$ 라는 사건이 발생 했을 때, 그 사건이 주는 정보가 얼마나 되는가 (혹은 그 사건이 얼마나 놀라운가 등등)를 $bit$ 단위로 표현해줍니다.날씨 예보
집에 누워 날씨예보를 보고 있는 우리 모습을 상상해 봅시다.
기상청에서는 우리에게 날씨에 대한 정보를 전달해 주고 있는데요, 기상청이 우리에게 주는 날씨에 대한 정보는 몇 $bit$ 짜리일까요?
우선 상황을 단순하게 보기 위해, (1) 기상청이 제공하는 정보는 정확하며 (2) 날씨는 총 4개의 종류 (맑음, 바람, 비, 눈) 가 있음을 가정하겠습니다. 그리고 지역마다 각 날씨의 확률이 다른데, 우리는 서울/부산/제주 세 지역을 보고, 각각의 확률은 다음과 같습니다:
Weather 맑음 바람 비 눈 Prob. (서울) 0.25 0.25 0.25 0.25 Prob. (부산) 0.3 0.4 0.2 0.1 Prob. (제주) 0 1 0 0 우선, 각각의 사건은 지난 장에서 이야기 한 바와 같이 shannon information content로 측정 할 수 있습니다. 예를 들면, 서울에서 비가 온다는 소식은 $log_{2}\frac{1}{0.25}=2bits$ 의 정보입니다. 마찬가지로, 부산에서 눈이 온다면 이는 $ log_{2}\frac{1}{0.1}=3.322bits$입니다.
그럼, 집에서 TV만 보고 있던 우리는 기상청의 예보를 보기 전 날씨에 대한 어떤 정보도 없다고 가정합니다.
기상청의 예보로부터 얼마만큼의 정보를 기대할 수 있을까요?
우선 서울 예보의 정보량의 기댓값을 구해봅시다. 각 케이스들에 대해 그 케이스가 나올 확률과, 그 케이스의 정보량을 곱해서 더해주면 되겠습니다.
$$E[h_{seoul}(x)]= 0.25 \cdot \log_2 \frac{1}{0.25} + 0.25 \cdot \log_2 \frac{1}{0.25}+0.25 \cdot \log_2 \frac{1}{0.25}+0.25 \cdot \log_2 \frac{1}{0.25}=2\ bits$$
그렇다면 부산의 예보는 어떤가요? 구해보면 다음과 같습니다.
$$E[h_{busan}(x)]=0.3 \cdot \log_2 \frac{1}{0.3}+ 0.4 \cdot \log_2 \frac{1}{0.4} +0.2 \cdot \log_2 \frac{1}{0.2} +0.1 \cdot \log_2 \frac{1}{0.1}=1.846\ bits $$
서울의 예보보다는 적은 정보량이네요.
마지막으로 제주의 예보는 어떤가요?
$$E[h_{jeju}(x)]= 0 \cdot \log_2 \frac{1}{0}+ 1 \cdot \log_2 \frac{1}{1}+ 0 \cdot \log_2 \frac{1}{0}+ 0 \cdot \log_2 \frac{1}{0}=0\ bits$$
제주의 예보는 정보량이 없습니다. 신기한 결과이지만, 생각해보면 당연한 결과입니다. 어차피 매일같이 바람만 부는데, 예보를 들어서 뭐하겠습니까.
계속 설명하겠지만, 가장 정보량이 높을 것으로 기대되는 것은 저 네개의 날씨 중 어느것인지 모를때, 즉 uniform distribution일 때 이며, 반대로 불확실성이 없고 결과가 정해져 있을 때에는, 우리가 얻을 수 있는 정보가 없습니다. 그리고 이 날씨 예보의 가치, 정보량의 기댓값을 우리는 Entropy 라고 합니다.
Entropy
위의 shannon information content의 직관을 잘 가지고 있다면, entropy또한 이해하기 쉽습니다.
Entropy는 다음과 같이 정의됩니다.
$$
\mathcal{H}(x) = E[h(x)] = E[log_{2}\frac{1}{p(x=a)}]
$$
즉 Entropy $\mathcal{H}(x)$ 는,
(1) 우리가 어떤 행동을 해서 얼마만큼의 정보를 (평균적으로) 얻을 수 있는가를 $bit$단위로 알려줍니다.
(2) 통계적인 관점에서는 $x$ 라는 확률변수(random variable)가 있을때, 이 확률변수의 shannon information content의 기댓값입니다.기댓값은 결국 모든 경우의 수에 대한 결괏값에 각각의 확률을 곱해준 꼴입니다.
Discrete한 경우에는
$$
\mathcal{H}(x) = \Sigma_{i=1}^{N}p_{x_i}h(x_i) = \Sigma_{i=1}^{N}p_{x_i}log_{2}{\frac{1}{p_{x_i}}}
$$
로 구할 수 있으며,Continuous한 경우에는,
$$
\mathcal{H}(x) = \int_{\mathcal{X}}p_{x_i}h(x_i)d{\mathcal{X}}= \int_{\mathcal{X}}p_{x_i}log_{2}{\frac{1}{p_{x_i}}}d{\mathcal{X}}
$$
와 같이 구할 수 있습니다.예를 들어 봅시다.
Fair Coin and Bent Coin
Bent Coin Toss: https://izbicki.me/blog/how-to-create-an-unfair-coin-and-prove-it-with-math.html 0번부터 6번까지 각 1개의 동전이 위의 그림처럼 있고, 제가 각각의 동전을 던집니다. 결과는 윗면 (head, H) 혹은 아랫면 (tail, T) 둘 중 하나입니다.
7개의 동전 중 몇개가 위를 향하는지 맞추는 게임을 한다고 가정해봅시다.
이 중 동전 두개의 결과를 미리 알 수 있다면 몇 번째 동전을 택하실 건가요?
아마도 0번과 1번을 택하실 겁니다. 왜 그랬나요?
구부러진 동전은 아무래도 다른 한쪽으로 결과가 집중될 겁니다. 꽤나 높은 정확도로 우리는 그 동전들의 결과를 예측할 수 있습니다.
이와는 반대로 약간 구부러진 동전의 경우는 던졌을 때 결과가 아마 반반일 거에요. 평평한 동전은 H, T 둘다 나올 수 있고, 우리는 이에 대해 굉장히 불확실합니다.
이걸 Entropy 관점에서 봅시다.
우선 0번 코인의 경우, 확률이 반반, 즉 $(p, 1-p) = (0.5, 0.5)$ 라고 가정해봅시다.
그렇다면 코인을 던졌을 때 얻을 수 있는 정보량의 기댓값, 즉 Entropy는 다음과 같이 계산됩니다.
$$
\mathcal{H}(x_{fair}) = 0.5 * log_{2}{\frac{1}{0.5}} + 0.5 * log_{2}{\frac{1}{0.5}} = 0.5*1 + 0.5*1 = 1 (bits)
$$6번 코인의 경우, Head의 확률이 월등히 크다, 즉 $(p, 1-p) = (0.99, 0.01)$ 라고 가정해봅시다.
그렇다면 코인을 던졌을 때 얻을 수 있는 정보량의 기댓값, 즉 Entropy는 다음과 같이 계산됩니다.$$
\mathcal{H}(x_{bent}) = 0.99 * log_{2}{\frac{1}{0.99}} + 0.01 * log_{2}{\frac{1}{0.01}} = 0.99*0.0145 + 0.01*6.644 = 0.0808 (bits)
$$즉 0번 코인의 결과를 알게 될 때의 정보량의 기댓값 ($1 bit$)이 6번 코인의 결과를 알게 되며 얻는 정보량의 기댓값 ($0.808 bit$)보다 많기에, 우리는 0번 코인, 1번코인, ... 의 순서대로 결과를 얻는 것이 합리적입니다.
이항분포를 따를 때, 확률에 따른 entropy는 다음과 같이 그려집니다.
출처: https://en.wikipedia.org/wiki/Binary_entropy_function 즉 어떤 결과든 동일한 확률로 나올때 (uniform할때) entropy가 가장 높으며, 반대로 어느 한쪽으로 확률이 치우쳐져 있을 때 entropy가 낮습니다.
우리가 예측하기 힘든 것 (fair coin)이, 예측이 쉬운 것 (bent coin) 보다 entropy가 높습니다.Wrap up
Entropy는 $x$ 라는 확률변수(random variable)가 있을때, 이 확률변수의 shannon information content의 기댓값입니다. 우리가 어떤 행동을 해서 얼마만큼의 정보를 (평균적으로) 얻을 수 있는가를 $bit$단위로 알려줍니다.
정보이론 컨텐츠와 관련하여 David MacKay 교수님의 "Course on Information Theory, Pattern Recognition, and Neural Networks" 강의, Youtube Aurélien Géron님의 "A Short Introduction to Entropy, Cross-Entropy and KL-divergence"
에서 많은 직관을 얻었음을 밝힙니다.
글의 대표 이미지는 ChatGPT 4 (DALL-E) 를 통해 생성하였음을 밝힙니다.
'ML Theory' 카테고리의 다른 글
[정보이론] 3. Cross Entropy, KL-Divergence (0) 2024.07.08 [정보이론] 1. 정보를 측정하는 방법 (2) 2024.01.07