本文僅僅是我個人的理解,發現錯誤請告訴我一下。
前幾天雖然看完了吳軍先生的《數學之美》,但一直搞不懂信息熵所以連帶着也沒搞懂 最大熵的原理,直到今天白天看了TopLanguage的一個討論信息論的帖子
再經過晚上散步時思考才頓悟信息熵的意義。
信息是個很抽象的概念。人們常常說信息很多,或者信息較少,但卻很難說清楚信息到底有多少。比如一本五十萬字的中文書到底有多少信息量。直到1948年,香農提出了“信息熵”的概念,才解決了對信息的量化度量問題。(摘自百度百科)
一條信息的信息量大小和它的不確定性有直接的關系。比如說,我們要搞清楚一件非常非常不確定的事,或是我們一無所知的事情,就需要了解大量的信息。相反,如果我們對某件事已經有了較多的了解,我們不需要太多的信息就能把它搞清楚。所以,從這個角度,我們可以認為,信息量的度量就等於不確定性的多少。(摘自數學之美)
香濃指出的信息熵的計算公式如下(本文的對數一律以2為准)
H(x) = -∑p(xi)log(p(xi)) (i=1,2,..n) (其中p(x)是x事件出現的概率)單位為bit
在數學之美里是用賽后怎么知道32個球隊里誰是冠軍來講解了這個信息熵的概念。
當概率相等時,每次詢問用折半查找的原理(如“冠軍隊伍在1-16嗎?”)可以減少一半的隊伍,這樣就需要5次就能知道結果了。這里就是log32 = 5
而使用信息熵計算信息量,的確也是5。但是為什么信息熵這個公式會代表信息量呢
按我的理解,在等概率事件里,1/p(x) 代表那一次所有可能出現的量、在球隊問題里,就是32種可能性。
而等概率事件里,因∑p(xi) = 1,所以信息熵可以看成
信息熵H(x)= -∑p(xi)log(p(xi)) (i=1,2,..n) = -log(p(i)) = -(- log(1/p(x)))= log(1/p(x))
也就是說等概率事件里的信息量可以看成
H(x)= log(所有可能性)
為了加深對信息量的定義的理解,再回到上述32個球隊的問題,我們已經知道他的信息量是5Bit
問過一次之后,我們可以知道冠軍在哪16個隊伍中,也就是說我們獲得了1bit的信息后不確定性減少,等於信息熵變成了log16 = 4bit =5bit -1bit
而最大熵模型呢?它的原理就是保留全部的不確定性,將風險降到最少。
最大熵原理指出,當我們需要對一個隨機事件的概率分布進行預測時,我們的預測應當滿足全部已知的條件,而對未知的情況不要做任何主觀假設。(不做主觀假設這點很重要。)在這種情況下,概率分布最均勻,預測的風險最小。因為這時概率分布的信息熵最大,所以人們稱這種模型叫“最大熵模型”。我們常說,“不要把所有的雞蛋放在一個籃子里”,其實就是最大熵原理的一個朴素的說法,因為當我們遇到不確定性時,就要保留各種可能性。
也就是說發現不確定信息的時候,不要對不確定的產物任何主觀假設使他們的概率分布均勻,則能獲得最客觀的結果。而這時風險會最小,我們就可以用這個結果來進行最客觀的決策。數學上來說貌似就是最優下界吧。這種策略的本質可以概括成“讓未知世界無機可乘”。它是沒有“弱點的”,答案的任何一個分支都是等概率的。反之,一旦某個分支蘊含的可能性更多,當情況落到那個分支上的時候你就郁悶了。二分搜索為什么好,就是因為它每次都將可能性排除一半並且無論如何都能排除一半(它是最糟情況下表現最好的)。(摘自mindhacks快排為什么那么快)
我再用算法的時間復雜度說明一下最大熵原理吧,用幾個主流的算法對n個數據進行排序時間復雜度基本上都是從O(nlogn)到O(n2)。而一般情況下為什么O(nlogn)最優呢,因為n個數據的先后順序是隨機的,我們可以看做不確定性相等,則可以用最大熵原理獲得最優(最穩定)結果。則信息熵則為
H(x)= log(所有可能性)= log(n!) 而n—>00 則log(n!)近似於lognn= nlogn
假設我們每次能獲得1bit數據,就至少需要獲得(nlogn)bit數據才能取消信息的不確定性,也就是要比較nlogn次。但因為各種排序算法策略不同,我們不可能每次都能獲得1bit數據,所以按照信息熵的定義這是理論上最優的結果。而最佳的排序算法就是要每次獲得1bit數據,越接近於1則越有效。
而TopLanguage那個帖子里也說了,雖然快排和堆排序兩個是都是時間復雜度O(nlogn)的算法,但是快速排序一般都會比堆排序快,就是因為堆排序每次獲取的平均信息量比快排來的低。
而上面,我們根本沒提到具體算法,就算到了最優的時間復雜度。在實際生活中很多時候我們雖然不會想到具體的策略,但我們至少可以知道極限在哪里,可以知道還有沒有提高余地。任何排序和猜數字的算法可以理解為通過獲得信息量去消減原來的熵。(這句摘自eric的話)
附上TopLanguage參考地址:
https://groups.google.com/forum/?fromgroups#!topic/pongba/KKw54CIr7PI
再附上一個今天才看到的
