最大熵模型:讀書筆記

最大熵模型:讀書筆記

 

                                                                         胡江堂,北京大學軟件學院

1. 物理學的熵

2. 信息論的熵

3. 熵和主觀概率(一個簡單註釋

4. 熵的性質

4.1. 當所有概率相等時,熵取得最大值

4.2. 小概率事件發生時攜帶的信息量比大概率事件發生時攜帶的信息量多

5. 最大熵原理:直覺討論

6. 最大熵原理:一個手工例子

7. 最大熵原理:正式表述

8. 最大熵模型的訓練:GIS算法

9. 最大熵模型:金融領域內的應用

參考文獻

這篇讀書筆記主要寫了對熵的理解、對最大熵原則的理解,還有一個手工計算的例子。在處理一般化的最大熵模型時,我採用了我偏愛的連續隨機變量形式,而不是一般有助於計算機理解的離散形式。連續而非離散的處理方式的一個好處就是,它能非常方便地推出最大熵模型的解是一個指數形式。如果使用離散形式,一樣的結論,那符號就看着複雜多了。

所有的東西都來自篇末的參考資料。

1. 物理學的熵

熵是一個物理學概念,它是描述事物無序性的參數,熵越大則無序性越強。從宏觀方面講(根據熱力學定律),一個體系的熵等於其可逆過程吸收或耗散的熱量除以它的絕對溫度;從微觀講,熵是大量微觀粒子的位置和速度的分佈概率的函數。自然界的一個基本規律就是熵遞增原理,即,一個孤立系統的熵,自發性地趨於極大,隨着熵的增加,有序狀態逐步變爲混沌狀態,不可能自發地產生新的有序結構,這意味着自然界越變越無序。

2. 信息論的熵

在物理學中,熵是描述客觀事物無序性的參數。信息論的開創者香農認爲,信息(知識)是人們對事物瞭解的不確定性的消除或減少。他把不確定的程度稱爲信息熵。假設每種可能的狀態都有概率,我們用關於被佔據狀態的未知信息來量化不確定性,這個信息熵即爲:

 

其中是以2爲底的對數,所以這個信息用位衡量。前面說過,在物理學的背景下,這個不確定性被稱爲熵(在通訊系統中,關於傳輸的實際信息的不確定性也被稱爲數據源的熵)。

擴展到連續情形。假設連續變量的概率密度函數是,與離散隨機變量的熵的定義類似,信息熵的連續定義爲:

 

上式就是我們定義的隨機變量的微分熵。當被解釋爲一個隨機連續向量時,就是的聯合概率密度函數。

3. 熵和主觀概率(一個簡單註釋)

因爲熵用概率表示,所以這涉及到主觀概率。概率用於處理知識的缺乏(概率值爲1表明對知識的完全掌握,這就不需要概率了),而一個人可能比另一個人有着更多的知識,所以兩個觀察者可能會使用不同的概率分佈,也就是說,概率(以及所有基於概率的物理量)都是主觀的。在現代的主流概率論教材中,都採用這種主觀概率的處理方法。

4. 熵的性質

4.1. 當所有概率相等時,熵取得最大值

上面關於熵的公式有一個性質:假設可能狀態的數量有限,當所有概率相等時,熵取得最大值。證明如下:

 

在只有兩個狀態的例子中,要使熵最大,每個狀態發生的概率都是1/2,如下圖所示:

 

4.2. 小概率事件發生時攜帶的信息量比大概率事件發生時攜帶的信息量多

證明略,可以簡要說明一下,也挺直觀的。如果事件發生的概率爲1,在這種情況下,事件發生就沒有什麼“驚奇”了,並且不傳達任何“信息”,因爲我們已經知道這“信息”是什麼,沒有任何的“不確定”;反之,如果事件發生的概率很小,這就有更大的“驚奇”和有“信息”了。這裏,“不確定”、“驚奇”和“信息”是相關的,信息量與事件發生的概率成反比。

5. 最大熵原理:直覺討論

最大熵原理是根據樣本信息對某個未知分佈做出推斷的一種方法。日常生活中,很多事情的發生表現出一定的隨機性,試驗的結果往往是不確定的,而且也不知道這個隨機現象所服從的概率分佈,所有的只有一些試驗樣本或樣本特徵,統計學常常關心的一個問題,在這種情況下如何對分佈作出一個合理的推斷?最大熵採取的原則就是:保留全部的不確定性,將風險降到最小。在金融理論中,一個類似的教訓是,爲了降低風險,投資應該多樣化,不要把所有的雞蛋都放在一個籃子裏。

吳軍(2006)舉了一個例子。對一個均勻的骰子,問它每個面朝上的概率分別是多少。所有人都會說是1/6。這種“猜測”當然是對的,因爲對這個“一無所知”的色子,假定它每一個朝上概率均等是最安全的做法,你不應該假設它被做了手腳。從信息論的角度講,就是保留了最大的不確定性,讓熵達到最大(從投資的角度來看,這就是風險最小的做法)。但是,如果這個骰子被灌過鉛,已知四點朝上的概率是1/3,在這種情況下,每個面朝上的概率是多少?當然,根據簡單的條件概率計算,除去四點的概率是 1/3外,其餘的概率都是 2/15。也就是說,除已知的條件(四點概率爲 1/3)必須滿足外,對其它各點的概率,我們仍然無從知道,也只好認爲它們相等。這種基於直覺的猜測之所以準確,是因爲它恰好符合了最大熵原理。

回到物理學例子中。在涉及物理系統的情形中,一般要確定該系統可以存在的多種狀態,需要了解約束下的所有參數。比如能量、電荷和其他與每個狀態相關的物理量都假設爲已知。爲了完成這個任務常常需要量子力學。我們不假設在這個步驟系統處於特定狀態;事實上我們假定我們不知道也不可能知道這一點,所以我們反而可以處理被佔據的每個狀態的概率。這樣把概率當作應對知識缺乏的一種方法。我們很自然地想避免假定了比我們實際有的更多的知識,最大熵原理就是完成這個的方法。

這裏可以總結出最大熵對待已知事物和未知事物的原則:承認已知事物(知識);對未知事物不做任何假設,沒有任何偏見。最大熵原理指出,當我們需要對一個隨機事件的概率分佈進行預測時,我們的預測應當滿足全部已知的條件,而對未知的情況不要做任何主觀假設(不做主觀假設,這點很重要。)在這種情況下,概率分佈最均勻,預測的風險最小。因爲這時概率分佈的信息熵最大,所以人們稱這種模型叫“最大熵模型”。我們常說,不要把所有的雞蛋放在一個籃子裏,其實就是最大熵原理的一個樸素的說法,因爲當我們遇到不確定性時,就要保留各種可能性。

6. 最大熵原理:一個手工例子

舉個例子,一個快餐店提供3種食品:漢堡(B)、雞肉(C)、魚(F)。價格分別是1元、2元、3元。已知人們在這家店的平均消費是1.75元,求顧客購買這3種食品的概率。如果你假設一半人買魚另一半人買雞肉,那麼根據熵公式,這不確定性就是1位(熵等於1)。但是這個假設很不合適,因爲它超過了你所知道的事情。我們已知的信息是:

 

 

以及關於對概率分佈的不確定性度量,熵:

 

對前兩個約束,兩個未知概率可以由第三個量來表示,可以得到:

 

 

把上式代入熵的表達式中,熵就可以用單個概率來表示:

對這個單變量優化問題,很容易求出時熵最大,有,和。

總結一下。以上,我們根據未知的概率分佈表示了約束條件,又用這些約束條件消去了兩個變量,用剩下的變量表示熵,最後求出了熵最大時剩餘變量的值,結果就求出了一個符合約束條件的概率分佈,它有最大不確定性,我們在概率估計中沒有引入任何偏差。

7. 最大熵原理:正式表述

假設有一個隨機系統,已知一組狀態,但不知道其概率,而且我們知道這些狀態的概率分佈的一些限制條件。這些限制條件或者是已知一定的總體平均值,或者是它們的一些界限。在給定關於模型的先驗知識的條件下,問題是選擇一個在某種意義下最佳的概率模型。Jaynes(1957)提出了一個最大熵原則:當根據不完整的信息作爲依據進行推斷時,應該由滿足分佈限制條件的具有最大熵的概率分佈推得。也就是說,熵的概念在概率分佈空間定義一種度量,使得具有較高熵的分佈比其它的分佈具有更大的值。顯然,“最大熵問題”是一個帶約束的最優化問題。

爲方便敘述,考慮最大微分熵

 

對所有隨機變量的概率密度函數,滿足以下約束條件:

 

其中,是的一個函數。約束1和約束2描述的是概率密度函數的基本屬性,約束3定義變量的矩,它隨函數的表達式不同而發生變化,它綜合了隨機變量的所有可用的先驗知識。爲了解這個約束最優化問題,利用拉格朗日乘子法,目標函數爲:

 

其中, 是拉格朗日乘子。對被積函數求的微分,並令其爲0,有:

 

解得:

 

我們看到這個概率密度函數具有指數形式。匈牙利數學家Csiszar曾經證明,對任何一組不自相矛盾的信息,最大熵模型不僅存在,而且是唯一的。而且它們都有同一個非常簡單的形式 -- 指數函數。我們還可以得到,在所有零均值隨機向量可達到的微分熵中,多元正態分佈具有最大的微分熵。最大熵的解,同時是最吻合樣本數據分佈的解。

8. 最大熵模型的訓練:GIS算法和其他

上節我們得到,一個最大熵模型可以有效地把各種信息綜合在一起(無偏見地對待不確定性),而且具有指數函數的形式,下面模型的訓練就要確定這個指數函數的各個參數。最原始的最大熵模型的訓練方法是一種稱爲通用迭代算法 GIS(generalized iterative scaling) 的迭代算法,由 Darroch 和 Ratcliff 在七十年代提出,大致可以概括爲以下幾個步驟:

1. 假定第零次迭代的初始模型爲等概率的均勻分佈。
2. 用第 N 次迭代的模型來估算每種信息特徵在訓練數據中的分佈,如果超過了實際 的,就把相應的模型參數變小;否則,將它們便大。
3. 重複步驟 2 直到收斂。

Darroch 和 Ratcliff沒有能對這種算法的物理含義進行很好地解釋,後來是由Csiszar解釋清楚的,因此,人們在談到這個算法 時,總是同時引用 Darroch 和Ratcliff 以及希薩的兩篇論文。GIS 算法每次迭代的時間都很長,需要迭代很多次才能收斂,而且不太穩定,即使在 64 位計算機上都會出現溢出。因此,在實際應用中很少有人真正使用,大家只是通過它來了解最大熵模型的算法。

八十年代,Della Pietra在IBM對GIS算法進行了兩方面的改進,提出了改進迭代算法IIS(improved iterative scaling)。這使得最大熵模型的訓練時間縮短了一到兩個數量級。這樣最大熵模型纔有可能變得實用。即使如此,在當時也只有 IBM 有條件是用最大熵模型。

由於最大熵模型在數學上十分完美,對科學家們有很大的誘惑力,因此不少研究者試圖把自己的問題用一個類似最大熵的近似模型去套。誰知這一近似,最大熵模型就變得不完美了,結果可想而知,比打補丁的湊合的方法也好不了多少。於是,不少熱心人又放棄了這種方法。第一個在實際信息處理應用中驗證了最大熵模型的優勢的,是原IBM現微軟的研究員Adwait Ratnaparkhi。Ratnaparkhi的聰明之處在於他沒有對最大熵模型進行近似,而是找到了幾個最適合用最大熵模型、而計算量相對不太大的自然語言處理問 題,比如詞性標註和句法分析。拉納帕提成功地將上下文信息、詞性(名詞、動詞和形容詞等)、句子成分(主謂賓)通過最大熵模型結合起來,做出了當時世界上 最好的詞性標識系統和句法分析器。

9. 最大熵模型:金融領域內的應用

最大熵模型在自然語言處理領域內得到了廣泛的應用,在金融界,也能見到它的影子。當年最早改進最大熵模型算法的Della Pietra在九十年代初退出了學術界,而到在金融界大顯身手。他和很多IBM語音識別的同事一同到了一家當時還不大,但現在是世界上最成功對衝基金公司----(Renaissance Technologies。我們知道,決定股票漲落的因素可能有幾十甚至上百種,而最大熵方法恰恰能找到一個同時滿足成千上萬種不同條件的模型。Della Pietra等科學家在那裏,用於最大熵模型和其他一些先進的數學工具對股票預測,獲得了巨大的成功。從該基金1988 年創立至今,它的淨回報率高達平均每年34%。也就是說,如果1988年你在該基金投入一塊錢,今天你能得到200塊錢。這個業績,遠遠超過股神巴菲特的旗艦公司Berkshire Hathaway(同期,Berkshire Hathaway的總回報是16倍)。

參考文獻

1. 吳軍《數學之美系列十六(上)-不要把所有的雞蛋放在一個籃子裏 -- 談談最大熵模型》,http://googlechinablog.com/2006/10/blog-post.html
2. 吳軍《數學之美系列十六(下)-不要把所有的雞蛋放在一個籃子裏 -- 談談最大熵模型》,http://googlechinablog.com/2006/11/blog-post.html
3. Jaynes, E.T., 1957. ”Information Theory and Statistical Mechanics”, Physical Review, vol.106, pp.620-630.http://bayes.wustl.edu/etj/articles/theory.1.pdf
4. Haykin, Simon《神經網絡原理》(第10章 信息論模型,葉世偉等譯,北京:機械工業出版社,2004)
5. 王厚峯. 機器學習課程講義之六MEM (Maximum Entropy Model).北京大學軟件與微電子學院,2007年春季學期
6. Penfield, Paul. Information and Entrop. MIT Open Course, Spring 2003. http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-050JInformation-and-EntropySpring2003/CourseHome/index.htm
7. Wei, Xiaoliang《最大熵模型與自然語言處理》www.cs.caltech.edu/~weixl/research/read/summary/MaxEnt2.ppt
8. 常寶寶《自然語言處理的最大熵模型》www.icl.pku.cn/WebData_http-dir-listable/ICLseminars/2003spring/最大熵模型.pdf
9. 廖先桃《最大熵理論及其應用》http://ir.hit.edu.cn/phpwebsite/index.php?module=documents&JAS_DocumentManager_op=downloadFile&JAS_File_id=196
Technorati Tags: Maximum Entropy, MEM, 最大熵模型, 最大熵, 熵, 信息論

發佈了27 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章