最大熵?信息學家也想插一手

最大熵?信息學家也想插一手

來自專欄 Sigmoid函數的前世今生1 人贊了文章

寫這篇文章讓我誠惶誠恐,因為裡面涉及到很多奇思妙想,而這些想法往往有悖數學嚴謹的作風,但是,我還是打算記錄下來,因為「直覺」往往是通往真理的必經之路,就像愛因斯坦關於時間相對性上的思考一樣,直覺告訴他,也許時間不是絕對的,

熵是什麼?熵是不確定性,香農定義的熵為: H(P)=-sum_{x}{P(x)logP(x)} ,圖像畫出來就是(關於熵的基本物理含義,假設讀者都已明了):

那麼最大熵模型是什麼?就是在所有可能的結果裡面選擇熵最大的結果,用數學語言說就是讓 H(P) 最大。為什麼?因為對於未知的事物,人們總是傾向於認為它們等可能,這是最保險的。而等可能則意味著不確定性最大。

這裡我打算先說結論,並用一個啟發式的推導來說明為什麼。這個結論就是:

上期推導出來的sigmoid函數其實就是熵最大的函數。

為什麼?因為這是由熵的函數形式 -sum_{x}{P(x)logP(x)} 決定的,觀察它的函數形式可以發現,它的最大值應該出現在導數為0的點,不過這裡的 H(P) 需要加上一些約束條件,引入拉格朗日乘子就能得到 H(P)+lambda(...) ,即 [H(P)+lambda(...)]^{}=-logP(x)-1+lambda(...)^{}=0 (這裡並不是嚴格的推導,只是對於運算邏輯的抽象,嚴格推導請務必參考李航的《統計學習方法》),接著可以化成 P(x)=e^{-(...)} 這種形式。回顧前一期的插播我們就會知道,只要出現 e^{-(...)} 這種形式,離我們的sigmoid函數或是softmax函數就不遠了。

也就是說,如果把 H(P) 定義為 -sum_{x}{P(x)logP(x)} 這種形式,就能推導出和sigmoid函數或是softmax函數相同的函數形式。換句話說,在 -sum_{x}{P(x)logP(x)} 這個宇宙里,sigmoid函數與最大熵是統一的。

等等,難道還有別的宇宙嗎?假如在另一個平行宇宙里,定義了 H(P)=-sum_{x}{P(x)^{2} - P(x)} (當然,這麼定義的熵就完全丟失了熵本來的含義了,熵代表的是信息編碼裡面的最小詢問次數,這裡只是假設),那麼加上拉格朗日乘子並求導取0後就能得到 P(x) = (...) 這種形式的結果。所以說,如果熵換了樣子,那麼最大熵的函數就不再是sigmoid函數而是線性函數了。而最神奇的是,香農發現的熵恰恰是能夠推出sigmoid函數的那個熵,由此可見,數學是一種神秘的力量,它永遠只會讓你看到它在某一維度的樣子。而這些維度往往能夠殊途同歸,表現出高度的自洽性。

附圖 下面是一張演化圖,CRF還沒有說到,但它的基本原理來自於最大熵模型,從這張圖我們可以看到,最大熵模型的確是來自於邏輯回歸,或者說,邏輯回歸是最大熵模型的特殊情況(最簡單的一種情況)。

喜歡刨根問底的可以繼續看下去,如何理解 H(P)=-sum_{x}{P(x)logP(x)}H(P)=-sum_{x}{P(x)^{2} - P(x)} 這兩個函數的意義?這裡做一個簡單的說明。首先,對於 H(P)=-sum_{x}{P(x)logP(x)} 這個函數,它的最大值是希望在滿足條件的情況下 P(x) 出現的盡量均勻。

推薦閱讀:

與谷歌意見相左會怎麼樣?
域滲透——獲得域控伺服器的NTDS.dit文件
軟體安全live第四期:軟體安全-環境變數攻防
Facebook又被曝出數據泄露事件,牽涉用戶多達1.2億
CTF 線下賽該怎麼打?

TAG:信息安全 | 網路安全 | 自然科學 |