香農信息量
https://blog.csdn.net/weixinhum/article/details/85059320
香農信息量:
只考慮連續型隨機變量的情況。設p為隨機變量X的概率分布,即p(x)為隨機變量X在X=x處的概率密度函數值,隨機變量X在x處的香農信息量定義為:
其中對數以2為底,這時香農信息量的單位為比特。香農信息量用於刻畫消除隨機變量X在x處的不確定性所需的信息量的大小。如隨機事件“中國足球進不了世界杯”不需要多少信息量(比如要不要多觀察幾場球賽的表現)就可以消除不確定性,因此該隨機事件的香農信息量就少。再比如“拋一個硬幣出現正面”,要消除它的不確定性,通過簡單計算,需要1比特信息量,這意味著隨機試驗完成後才能消除不確定性。
可以近似地將不確定性視為信息量。一個消息帶來的不確定性大,就是帶來的信息量大。比如,帶來一個信息:x=sun raise in east,其概率p(x)=1,信息量視為0。
帶來另一個信息:y=明天有一個老師要抽查作業------帶來了很多不確定性——8個老師,其中一個要抽查,另外7個不抽查,那麽就值得我去思索判斷推理這其中的信息了------高不確定性,高信息量。
---------------------
如果是連續型隨機變量的情況,設p pp為隨機變量X XX的概率分布,即p(x) p(x)p(x)為隨機變量X XX在X=x X=xX=x處的概率密度函數值,則隨機變量X XX在X=x X=xX=x處的香農信息量定義為:
−log
2
?
p(x)=log
2
?
p(x)
1
?
這時香農信息量的單位為比特。(如果非連續型隨機變量,則為某一具體隨機事件的概率,其他的同上)
香農信息量用於刻畫消除隨機變量在處的不確定性所需的信息量的大小。
上面是香農信息量的完整而嚴謹的表達,基本上讀完就只剩下一個問題,為什麽是這個式子?為了方便理解我們先看一下香農信息量在數據壓縮應用的一般流程。
假設我們有一段數據長下面這樣:aaBaaaVaaaaa aaBaaaVaaaaaaaBaaaVaaaaa
可以算出三個字母出現的概率分別為:
a:1012,B:112,V:112 a:\frac{10}{12},B:\frac{1}{12},V:\frac{1}{12}a:
12
10
?
,B:
12
1
?
,V:
12
1
?
香農信息量為:a:0.263,B:3.585,V:3.585 a:0.263,B:3.585,V:3.585a:0.263,B:3.585,V:3.585
也就是說如果我們要用比特來表述這幾個字母,分別需要0.263,3.585,3.585 0.263,3.585,3.5850.263,3.585,3.585個這樣的比特。當然,由於比特是整數的,因此應該向上取整,變為1,4,4 1,4,41,4,4個比特。
這個時候我們就可以按照這個指導對字母進行編碼,比如把a aa編碼為"0 00",把B BB編碼為"1000 10001000",V VV編碼為"1001 10011001",然後用編碼替換掉字母來完成壓縮編碼,數據壓縮結果為:001000000100100000 001000000100100000001000000100100000。
上面例子看起來有點不合理,因為如果我們去搞,我們會編碼出不一樣的東西,如a aa編碼為"0 00",B BB編碼為"10 1010",V VV編碼為"11 1111",因此可以把數據壓縮的更小。那麽問題出現在哪呢?
出現在這裏的B和V這兩個字母只用兩個比特進行編碼對於他們自身而言並不是充分的。在另外一個壓縮的例子中,可以一下子就看出來:abBcdeVfhgim abBcdeVfhgimabBcdeVfhgim
上面的每一個字母出現的概率都為112 \frac{1}{12}
12
1
?
,假設我們還是以兩個比特去編碼B BB和V VV,那麽就無法完全區分出12?個字母。而如果是4個比特,便有16種可能性,可以足夠區分這?12個字母。
現在回過頭來看香農信息量的公式,它正是告訴我們,如果已經知道一個事件出現的概率,至少需要多少的比特數才能完整描繪這個事件(無論外部其他事件的概率怎麽變化),其中為底的2就是比特的兩種可能性,而因為二分是一個除的關系,因此自變量是概率分之一而不是概率本身。
感性的看,如果我們知道a aa出現的概率為56 \frac{5}{6}
6
5
?
,那麽用比特中的"0"狀態來表述它是完全合理的,因為其他事件的概率總和只有16 \frac{1}{6}
6
1
?
,但我們給這16 \frac{1}{6}
6
1
?
空出了比特的"1"這12 \frac{1}{2}
2
1
?
的空間來表達他們,是完全足夠的。
香農信息量