信息熵的直观理解
?
在機(jī)器學(xué)習(xí)算法(如二叉樹)、特征選擇(互信息)中經(jīng)常用到熵的概念,信息熵的概念以及介紹網(wǎng)上有很多,這里主要做一個直觀的介紹。
1.?信息的度量
2. 信息熵
?
一、 信息量
常常把消息中有意義的內(nèi)容成為信息。我們常常說,某人說的某句話信息量很大,具體在信息論中,其實(shí)指的是他說的這句話消除的不確定性多。信息的度量定義為消除不確定性的多少。(信息是用來消除不確定性的東西--Shannon)
信息量函數(shù):
$I=-\ln p_{i}$
其中,$p_{i}$是事件$x_{i}$發(fā)生的概率($x_{i} \in X$)
直觀上,概率越小,即事件發(fā)生的概率越小,它指出的信息越具體,相應(yīng)地,信息量就越大。怎么理解這句話呢,舉個栗子。有一個30*30的座位表,你未來的女朋友在其中的一個座位上入座,但是你并不知道她到底在哪個座位上(這也是你為什么沒有女朋友的原因嗎,哈哈哈。。。)。如果天上的某位月老1告訴你,她坐在第6排,那么范圍會縮小很多。月老2告訴你“她坐在第6排第6列”。“她坐在第6排”和“她坐在第6排第6列”,直觀上顯然后者包含的信息量更多。那么如何定量的比較這兩句話的信息量大小呢?
* 對于前者,事件發(fā)生的概率是 $p = \frac{30}{30 \times 30}= \frac{1}{30}$,那么信息量 $I=- \ln p_{i}= 3.4$
* 對于后者,事件發(fā)生的概率是 $p = \frac{1}{30 \times 30} = \frac{1}{900}$,那么信息量 $I=- \ln p_{i}= 6.8$
對于前者,月老1給出的信息還是太少,即從原來什么都不知道消除的不確定性還是太少,同時月老1的預(yù)言發(fā)生的概率也比較大。月老2給出的信息非常具體,消除的不確定性很多,這句話發(fā)生的概率對應(yīng)地也比較小。也可以這么理解,給出的信息越具體,發(fā)生的概率越小,風(fēng)險(xiǎn)越高,因?yàn)槟悴恢浪f的到底對不對(信息量大不代表信息準(zhǔn)確)。
總結(jié)一句話,一個事件的信息量就是這個事件發(fā)生的概率的負(fù)對數(shù)。
?
二、信息熵
簡單的講,信息熵(entropy)就是平均而言發(fā)生一個事件我們得到的信息量大小。所以數(shù)學(xué)上,信息熵其實(shí)是信息量的期望。
$H = -\sum_{x \in X} P(x) logP(x)$
$X$是事件的集合。在理解了信息量的概念后,公式還是很直觀的,就是信息量的期望。
在信息論中,熵是信息不確定性的一個測度,熵越大表示信息的不確定性越高。比如對明天的天氣做預(yù)測,
a. 預(yù)測1:100%晴天
$H_{1}=0.0$
b. 預(yù)測2:50%晴天, 50%陰天
$H_{2}=-\frac{1}{2} \ln (\frac{1}{2})-\frac{1}{2} \ln (\frac{1}{2})=1.0$
c. 預(yù)測3:30%晴天, 30%陰天,40%
$H_{3}=-\frac{3}{10}\ln \frac{3}{10} -\frac{3}{10}\ln \frac{3}{10}?- \frac{4}{10} \ln \frac{4}{10}=1.6$
# 計(jì)算信息熵import math x = [0.3, 0.3, 0.4] H = sum(map(lambda x : -x * math.log(x, 2), x))
從上面這個例子也可以看出來,不確定性越大,信息熵越大。
posted on 2017-05-16 22:39?詹晴天 閱讀(...) 評論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/satchel/p/6864116.html
總結(jié)
- 上一篇: ShellCode入门(提取ShellC
- 下一篇: 模板——RMQ