如何測量這個世界的混亂-1-定義混亂

如何測量這個世界的混亂?這是最近聽到的一個極好的問題。

紛繁複雜的大千世界,隨波涌動的灰塵,樹葉和人。它們的運動是隨機的,但看似隨機的背後其實有嚴謹精巧的物理和因果律,每件事的動機都很清楚,所有事的緣由卻被混亂深深地掩蓋起來。這些混亂此消彼長,此起彼伏,它們源自何處或去往何方?它們的動機是什麼?清談跟臆想並不能幫助我們理解它,我們最好像個爺們一樣,測量,算出來,把它變成數學。

這真是一個非常非常大的問題。

而當提一個非常大的問題的時候,最大的陷阱往往是,提問者可能自己還沒有想清楚他到底想要問什麼?

比方說什麼叫混亂?混亂怎麼定義?混亂是可測量的嗎?混亂可以計算嗎?混亂應該如何測量?

你要測量的是這個世界的混亂,那麼所謂的世界具體是指哪一部分?它的適用邊界在哪裡,物理世界嗎?可以包括精神世界嗎?可以包括語言和符號系統嗎?可以包括量子力學主導的微觀尺度嗎?可以包括TeV以上能標嗎?

可以回答像「女朋友和卡門渦街,哪一個更混亂?」這樣的問題嗎?

上一句話信息量超大!那麼請問有多大?等於幾?

如果這篇文章的作者是一隻大猩猩,這篇文章其實是用臉滾鍵盤運氣好給滾出來的。請問這篇文章的信息還算信息么?它和其它臉滾鍵盤的本質區別在哪裡?

再進一步,什麼算混亂,什麼算信息,它們依賴於人的意識嗎?


這一切看似不知所云的問題並不是隨便問的,站在前輩先賢的肩膀上,這些問題我都可以回答。

「混亂」這個概念最早當然是一種人的主觀描述。但定量分析問題的時候,人為因素總是不受歡迎的。所以第一步,我們需要尋找一種數學化的新定義,使得這種定義不依賴人的主觀判斷,同時又在絕大多數地方與傳統保持一致。

對「混亂」這個概念,這樣的定義很好想:給一個集合P{a}, 這個集合的每個元素a表示系統可能的一種狀態,整個集合表示系統所有可能的狀態。那麼我們可以用這個集合的大小來定義混亂度。

比如作者每天的狀態只有四種:{吃飯看書,吃飯不看書, 看書不吃飯, 不吃飯不看書}。所以作者的一天的混亂度就對應一個元素個數為4的集合。

信息可以減小混亂度,當你對作者有了更多了解之後你發現,這個人很勤奮,他的一天根本就沒有不吃飯的時候。這樣作者的混亂度集合縮小成了一個元素個數為2的集合,也就是{吃飯看書, 吃飯不看書}。

我們定義把集合個數變成原來一半的信息叫做 1 比特。

另外,作者的老師知道作者其實也是不看書的。所以老師又提供了1比特信息,集合變成原來的四分之一,讀者對作者有了精確的認識。

這裡有兩點值得一提:第一我們順便就把混亂度的單位也確定了。這個集合用2比特的信息可以唯一確定,於是我們說這個系統的混亂度就是2比特。2比特混亂度對應的元素個數為4, 3比特對應的元素個數為8。如果元素個數為N, 那麼混亂度 S=log{N} 。(在本文,log均默認以2為底,另外混亂度的定義具有一個常數自由度 S=Klog{N}K 是一個正的常數,不過「把集合個數變成原來一半的信息叫做 1 比特」等價於令K=1)第二系統的信息量跟人沒有關係。因為信息量說到底本質是能夠抵消多大比例的集合。跟人理不理解它不產生關係(這一點很多人沒有這個意識的)。一段文字,哪怕全世界沒有一個人理解它的意思,它的信息不會有任何的減少。

需要注意,以上我們討論的僅僅是最最簡單的情況。把狀態表示成集合中的元素其實做了一個很強的假定,即假定每個狀態發生的幾率是一樣的。

但顯然在完全不確定的 {看書, 不看書} 與完全確定的 {不看書} 這兩種系統之間還存在著(20%看書, 80%不看書)這樣的系統。 我們直觀上會感覺這種系統的混亂程度應該介於{看書, 不看書} 與{不看書}之間,但是怎麼表示呢?

好在幾率不等的情況其實也並不難推廣。比如最簡單地你可以令 S=-sum_{i}{frac{1}{N}log(p_{i})} , 這裡p_{i} 表示每種狀態對應的幾率,N表示狀態數也就是集合的元素個數。這樣當所有的 p_{i} 相同( p_{i} = frac{1}{N} )的時候 S 就可以自動回到之前 log{N} 的形式;當 p_{i} 不等的時候它又會比 log{N} 小。輕鬆搞定~

S=-sum_{i}{frac{1}{N}log(p_{i})} 並不是唯一的答案。例如我還可以隨便寫個 S=-sum_{i}{p_{i}log(p_{i})}。 你可以很容易去驗證,這個形式也是完全滿足之前的所有要求的。那合格候選人這麼多,我們該怎麼辦呢?

辦法很簡單,加要求唄~

假如我有1/2的幾率不看書,1/3的幾率看物理,1/6的幾率看數學。那這個的混亂度可以用 S(p_{i}=frac{1}{2},frac{1}{3},frac{1}{6}) 來描述。當然,我也可以把這個混亂度拆成兩部分,一部分是看不看書的混亂度 S(p_{i}=frac{1}{2},frac{1}{2}) ;另一個部分是如果看書,看什麼書的混亂度 S(p_{i}=frac{2}{3},frac{1}{3}) 。如下圖:

一個很容易想到但也很應該滿足的條件是這樣的:

系統的混亂度應該跟我怎麼拆分這個系統沒有關係(假如每一次拆分是獨立的)。也即是說子系統的混亂度應該具有可加性,且加起來應該跟整個系統的混亂度保持一致。翻譯成等式是這樣的:

S(frac{1}{2},frac{1}{3},frac{1}{6}) = S(frac{1}{2},frac{1}{2}) +frac{1}{2} *S(frac{2}{3},frac{1}{3})

上面兩種定義,滿足這個條件的是 S=-sum_{i}{p_{i}log{p_{i}}}。這樣定義的混亂度後來有了一個正式的名字:信息熵!


1948年,香農發表《A mathematical theory of communication》,開創資訊理論。

他在文章中給信息熵的定義選了三個合適的條件:

  1. S 應該是關於 p_{i} 的連續函數。
  2. 如果 p_{i}是均勻分布,那麼 S 應該隨著 N 的增大單調遞增。
  3. S 應該具有我們上文所述的可加性。

那麼可以證明滿足上述三個條件的形式有且僅有 S=-Ksum_{i}{p_{i}log{p_{i}}} ,式中 K 是一個正的常數。

證明過程也堪稱簡潔優雅,你只需注意到對任意的 p_{i} 我們總能把它寫成 p_{i} = frac{n_{i}}{sum_{i} n_{i}} 這樣的形式。將它帶入第三個條件即可。

用大白話說就是任意的離散概率分布我們總能把它等價成從一堆球球中抽出一部分球球的問題。這個想法的好處在於抽球球本身是個均勻概率分布~均勻概率分布的 S 我們是知道的, Klog{N} 。我們現在有一堆球球 sum{n_{i}} ,我們先把它按 p_{i} 分成m小堆,然後再分別計算每一小堆的混亂度。條件3的等式會變出來下面這樣的形式:

Klog{sum{n_{i}}} = S(p_{1},...,p_{m}) + Ksum_{i}p_{i}log{n_{i}}

直接得到

S=-Ksum_{i}{p_{i}log{p_{i}}}

最早,香農在找到混亂度的正確定義之後並不知道怎麼命名這個新東西。有一天他和高研院同事馮諾依曼聊天的時候提到他找到一種度量系統混亂度大小的東西。馮諾依曼大學霸說,你這個東西不就是熵嘛。香農說,哇~你說得好有道理的樣子。信息熵起名工作完成。

(學過熱力學的讀者應該都能看出來這個公式與熱力學的玻爾茲曼熵是多麼的接近,希望讀者也能看出來它們推導過程的神似。你可以自己嘗試一下~我後面也會聊到~)


推薦閱讀:

相對論中讓人暈頭的「同時」。
時間究竟是什麼?
少年夢隨筆一:宇宙為何膨脹?
為什麼P=UI
Note:「讓我們假設類星體中心是一個超大質量黑洞」--致Donald Lynden-Bell

TAG:物理學 | 資訊理論 | 機器學習 |