最大熵模型介紹

Overview 算法

 

統計建模方法是用來modeling隨機過程行爲的。在構造模型時,一般供咱們使用的是隨機過程的採樣,也就是訓練數據。這些樣本所具備的知識(較少),事實上,不能完整地反映整個隨機過程的狀態。建模的目的,就是將這些不完整的知識轉化成簡潔但準確的模型。咱們能夠用這個模型去預測隨機過程將來的行爲。 app

統計建模這個領域,指數模型被證實是很是好用的。所以,自世紀之交以來,它成爲每一個統計物理學家們手中不可或缺的工具。最大熵模型是百花齊放的指數模型的一種,它表示的這類分佈有着有趣的數學和哲學性質。儘管最大熵的概念能夠追溯到遠古時代,但直到近年來計算機速度提高以後,才容許咱們將最大熵模型應用到統計評估和模式識別的諸多現實問題中(最大熵纔在現實問題上大展身手)。 dom

下面幾頁討論基於最大熵的統計建模方法,尤爲是它在天然語言處理上的應用。咱們提供大量的結果和benchmarks, 以及一些實用的用來訓練最大熵模型的算法。最後咱們介紹下條件最大熵模型(Conditional maxent model)和馬爾科夫隨機場(Markov random fields) (在計算機視覺領域普遍使用的模型)之間的聯繫。 ide

咱們下面要討論的算法能從一組數據中自動抽取出數據之間的內在關係(規則),並組合這些規則生成準確而緊湊的數據模型。For instance, starting from a corpus of English text with no linguistic knowledge whatsoever, the algorithms can automatically induce a set of rules for determining the appropriate meaning of a word in context. Since this inductive learning procedure is computationally taxing, we are also obliged to provide a set of heuristics to ease the computational burden. 函數

儘管本篇討論的主題是NLP,但我保證沒有內容是隻適應NLP的,最大熵模型已經成功應用到天體物理學和醫學領域。工具

 

Motivating Example 優化

咱們經過一個簡單的例子來介紹最大熵概念。假設咱們模擬一個翻譯專家的決策過程,關於英文單詞in到法語單詞的翻譯。咱們的翻譯決策模型p給每個單詞或短語分配一個估計值p(f),即專家選擇f做爲翻譯的機率。爲了幫助咱們開發模型p,咱們收集大量的專家翻譯的樣本。咱們的目標有兩個,一是從樣本中抽取一組決策過程的事實(規則),二是基於這些事實構建這一翻譯過程的模型。 ui

咱們能從樣本中獲得的一個明顯的線索是容許的翻譯候選列表。例如,咱們可能發現翻譯專家老是選擇下面這5個法語詞彙:{dans, en, à, au cours de, pendant}。一旦有了這些信息,咱們能夠給模型p施加第一個約束條件:this

p(dans)+p(en)+ p(à)+p(au cours de)+p(pendant) = 1spa

這個等式表明了這一翻譯過程的第一個統計信息,咱們如今能夠進行尋找知足這一條件的模型了。顯然,有無數知足這個條件的模型可供選擇。其中一個模型是p(dans)=1,換句話說這個模型老是預測dans。另一個知足這一約束的模型是p(pendant)=1/2 and p(à)=1/2。 這兩個模型都有違常理:只知道翻譯專家老是選擇這5個法語詞彙,咱們哪知道哪一個機率分佈是對的。兩個模型每一個都在沒有經驗支持的狀況下,作了大膽的假設。最符合直覺的模型是:

p(dans) = 1/5

p(en) = 1/5

p(à) = 1/5

p(au cours de) = 1/5

p(pendant) = 1/5

 

這個模型將機率均勻分配給5個可能的詞彙,是與咱們已有知識最一致的模型。咱們可能但願從樣本中收集更多的關於翻譯決策的線索。假設咱們發現到有30%時間in被翻譯成dans 或者en. 咱們能夠運用這些知識更新咱們的模型,讓其知足兩個約束條件:

p(dans) + p(en) = 3/10

p(dans)+p(en)+ p(à)+p(au cours de)+p(pendant) = 1

 

樣,仍是有不少機率分佈知足這兩個約束。在沒有其餘知識的狀況下,最合理的模型p是最均勻的模型,也就是在知足約束的條件下,將機率儘量均勻的分配。

p(dans) = 3/20

p(en) = 3/20

p(à) = 7/30

p(au cours de) = 7/30

p(pendant) = 7/30

 

設咱們又一次檢查數據,此次發現了另一個有趣的事實:有通常的狀況,專家會選擇翻譯成dans à.咱們能夠將這一信息列爲第三個約束:

p(dans) + p(en) = 3/10

p(dans)+p(en)+ p(à)+p(au cours de)+p(pendant) = 1

p(dans)+ p(à)=1/2

 

們能夠再一次尋找知足這些約束的最均勻分配的模型p,但這一次的結果沒有那麼明顯。因爲咱們增長了問題的複雜度,咱們碰到了兩個問題:首先,"uniform(均勻)"到底是什麼意思?咱們如何度量一個模型的均勻度(uniformity)?第二,有了這些問題答案以後,咱們如何找到知足一組約束且最均勻的模型?就像前面咱們看到的模型。

最大熵的方法回答了這兩個問題。直觀上講,很簡單,即:對已知的知識建模,對未知的不過任何假設(model all that is known and assume nothing about that which is unknown)。換句話說在給定一組事實(features+output)的條件下,選擇符合全部事實,且在其餘方面近可能均勻的模型,這偏偏是咱們在上面例子每一步選擇模型p所採起的方法。

 

Maxent Modeling

咱們考慮一個隨機過程,它產生一個輸出y,y屬於一個有窮集合。對於剛纔討論的翻譯的例子,該過程輸出單詞in的翻譯,輸出值y能夠是集合{dans, en, à, au cours de, pendant}中任何一個單詞。在輸出y時,該過程可能會被上下文信息x影響,x屬於有窮的集合。在目前的例子中,這信息可能包括英文句子中in周圍的單詞。

咱們的任務是構造一個統計模型,該模型可以準確表示隨機過程的行爲。該模型任務是預測在給定上下文x的狀況下,輸出y的機率:p(y|x).

 

Training Data

爲了研究這一過程,咱們觀察一段時間隨機過程的行爲,收集大量的樣本:

。在咱們討論的例子中,每個樣本由包含in周圍單詞的詞彙x,和in的翻譯y組成。如今,咱們能夠假設這些訓練樣本已經由一個專家搞定了,咱們提供大量包含in的隨機的短語要求她選擇一個合適的翻譯。

咱們能夠經過它的經驗分佈來總結訓練樣本的特性:

一般,對於一個特定的pair x, y),它要麼不出如今樣本中,要麼最多出現幾回。

 

Features and constraints

咱們的目標是構造一個產生訓練樣本這一隨機過程的統計模型。組成這個模型的模塊將是一組訓練樣本的統計值。在目前的例子中,咱們已經採用了幾個統計數據:(1)in被翻譯成dans 或者en的頻率是3/10;(2) in被翻譯成dans à的機率是1/2 等。這些統計數據是上下文獨立的,但咱們也能夠考慮依賴上下文信息x的統計數據。例如,咱們可能注意到,在訓練樣本中,若是 April 是一個出如今in以後,那麼in翻譯成en的頻率有9/10.

爲了表示這個事件(event),即當Aprial出如今in以後,in被翻譯成en,咱們引入了指示函數

特徵f 關於經驗分佈的指望值,正是咱們感興趣的統計數據。咱們將這個指望值表示爲:

 

                                (1)

 

咱們能夠將任何樣本的統計表示成一個適當的二值指示函數的指望值,咱們把這個函數叫作特徵函數(feature function)或簡稱特徵(feature)。

當咱們發現一個統計量,咱們以爲有用時,咱們讓模型去符合它(擬合),來利用這一重要性。擬合過程經過約束模型p分配給相應特徵函數的指望值來實現。特徵f關於模型p(y|x)的指望值是:

 

                                (2)

 

這裏,x在訓練樣本中的經驗分佈。咱們約束這一指望值和訓練樣本中f的指望值相同。那就要求:

 

                                        (3)

 

組合(1),(2) (3),咱們獲得等式:

 

 

咱們稱(3)爲約束等式(constraint equation)或者簡稱約束(constraint)。咱們只關注那麼知足(3)的模型,再也不考慮那些和訓練樣本中特徵f頻率不一致的模型。

目前總結來看,咱們如今有辦法表示樣本數據中內在的統計現象(叫作),也有辦法使咱們的模型繼承這一現象(叫作)。

最後,仍我關於特徵和約束再羅嗦兩句:單詞 ``feature'' and ``constraint''在討論最大熵時常常被混用,咱們但願讀者注意區分這二者的概念:特徵(feature)是(x,y)的二值函數;約束是一個等式:即模型的特徵函數指望值等於訓練樣本中特徵函數的指望值。

 

The maxent prinple

假設給咱們n個特徵函數fi,它們的指望值決定了在建模過程當中重要的統計數據。咱們想要咱們的模型符合這些統計,就是說,咱們想要模型p屬於的子集

1是這一限制的幾何解釋。這裏,P是三點上全部可能的機率分佈空間。若是咱們不施加任何約束(圖a),全部機率模型都是容許的。施加一個線性約束C1後,模型被限制在C1定義的區域,如圖b示。若是兩個約束是可知足的, 施加第二個線性約束後能夠準確肯定p,如圖c所示。另外一種情形是,第二個線性約束與第一個不一致,例如,第一個約束可能須要第一個點的機率是1/3,第二個約束須要第三個點的機率是3/4,圖d所示。在目前的設置中,線性約束是從訓練數據集中抽取的,不可能手工構造,所以不可能不一致。進一步來講,在咱們應用中的線性約束甚至不會接近惟一肯定的p,就象圖c那樣。相反,集合中的模型是無窮的。

 

屬於集合C的全部模型p中,最大熵的理念決定咱們選擇最均勻的分佈。但如今,咱們面臨一個前面遺留的問題:什麼是"uniform(均勻)"?

數學上,條件分佈p(y|x)的均勻度就是條件熵定義:

 

熵的下界是0, 這時模型沒有任何不肯定性;熵的上界是log|Y|,即在全部可能(|Y|個)的y上均勻分佈。有了這個定義,咱們準備提出最大熵原則。

當從容許的機率分佈集合C中選擇一個模型時,選擇模型,使得熵H(p)最大。

                                    (6)

 

能夠證實well-defined的,就是說,在任何的約束集合C中,老是存在惟一的模型取得最大熵。

 

Exponential form

最大熵原理呈現給咱們的是一個約束優化問題:find the which maximizes H(p)簡單的狀況,咱們能夠分析求出問題的解。如翻譯模型中咱們施加前兩個約束時,容易求得p的分佈。不幸的是,一般最大熵模型的解沒法明顯得出,咱們須要一個相對間接的方法。

爲了解決這個問題,咱們採用約束優化理論中Lagrange multipliers的方法。這裏僅概述相關步驟,請參考進一步閱讀以更深刻了解約束優化理論如何應用到最大熵模型中的。

咱們的約束優化問題是:

咱們將這個稱爲原始問題(primal)。簡單的講,咱們目標是在知足如下約束的狀況下,最大化H(p)

  1. for all x,y.
  2. . This and the previous condition guarantee that p is a conditional probability distribution.
  3. In other words, , and so satisfies the active constraints C .

 

爲了解決這個優化問題,引入Lagrangian 乘子。

 

實值參數對應施加在解上的n+1個約束。

下面的策略能夠求出p的最優解(),但咱們不打算證實它。

首先,將當作常量,尋找p最大化公式(8)。這會產生以爲參數的表示式p,(參數沒有解決)。接着,將該表達式代回(8)中,此次求的最優解( and , respectively)。

按照這一方式,咱們保證不變,計算在全部空間下,計算的無約束的最大值。

 

 

令該式等於0, 求解 p(y|x):

 

能夠看出公式(10)的第二個因子對應第二個約束:

將上式帶入公式(10)獲得:

將公式(11)帶入(10),咱們獲得:

所以,

Z(x)是正則化因子。

如今咱們要求解最優值, 。顯然,咱們已經知道了,還不知道

爲此,咱們介紹新的符號,定義對偶函數

對偶優化問題是:

由於p*是固定的,公式(15)的右邊只有自由變量

參數值等於p*就是一開始約束優化問題的最優解。這辦法不明顯看出爲何,但這的確是Lagrange multipliers理論的基本原理,一般叫作Kuhn-Tucker theorem(KTT)。詳細的解釋已經超出本文討論的範圍。咱們簡單地陳述最後結論:

知足約束C最大熵模型具備(13)參數化形式,最優參數能夠經過最小化對偶函數求得。

 

補充說明:

到底是什麼樣呢? (記住咱們要求的最小值, 這是Lagrange multipliers理論的基本原理)

 

Maximum likelihood

最大似然率:找出與樣本的分佈最接近的機率分佈模型。

好比:10次拋硬幣的結果是:

畫畫字畫畫畫字字畫畫

假設p是每次拋硬幣結果爲"畫"的機率。

獲得這樣試驗結果的機率是:

P = pp(1-p)ppp(1-p)(1-p)pp=p7(1-p)3

最大化似然率的方法就是:

最優解是:p=0.7

似然率的通常定義爲:

p(x)是模型估計的機率分佈,是結果樣本的機率分佈。

在咱們的問題裏,要估計的是p(y|x),最大似然率爲:

 

                    (15)

 

 

所以,有:

這裏的p具備公式(13)的形式,咱們的結果進一步能夠表述爲:

最大熵模型是具備公式(13)形式,且最大化樣本似然率的模型。最大熵模型與最大似然率模型一致。

 

Computing the Parameters

要算λ,解析解確定是行不通的。於最大模型的最問題GISlbfgssgd等等最化算法都能解。相比之下,GIS大概是最好的。這裏只介紹GIS算法。

具體步驟以下:

1set 等於任意值, 好比等於0.

(2) 重複直到收斂:

這裏,(t)是迭代下標,常數C定義爲:

, 實踐中C是訓練樣本里最大的特徵個數。儘管C再大些也不要緊,可是它決定了收斂速度,仍是取最小的好。

實際上,GIS算法用第N次迭代的模型來估算每一個特徵在訓練數據中的分佈。若是超過了實際的,就把相應參數變小。不然,將它們變大。當訓練樣本的特徵分佈和模型的特徵分佈相同時,就求得了最優參數。

相關文章
相關標籤/搜索