1. 程式人生 > >最大熵模型介紹

最大熵模型介紹

Overview

統計建模方法是用來modeling隨機過程行為的。在構造模型時,通常供我們使用的是隨機過程的取樣,也就是訓練資料。這些樣本所具有的知識(較少),事實上,不能完整地反映整個隨機過程的狀態。建模的目的,就是將這些不完整的知識轉化成簡潔但準確的模型。我們可以用這個模型去預測隨機過程未來的行為。

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

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

我們下面要討論的演算法能從一組資料中自動抽取出資料之間的內在關係(規則),並組合這些規則生成準確而緊湊的資料模型。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,我們收集大量的專家翻譯的樣本。我們的目標有兩個,一是從樣本中抽取一組決策過程的事實(規則),二是基於這些事實構建這一翻譯過程的模型。

我們能從樣本中得到的一個明顯的線索是允許的翻譯候選列表。例如,我們可能發現翻譯專家總是選擇下面這5個法語詞彙:

{dans, en, à, au cours de, pendant}。一旦有了這些資訊,我們可以給模型p施加第一個約束條件:

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

這個等式代表了這一翻譯過程的第一個統計資訊,我們現在可以進行尋找滿足這一條件的模型了。顯然,有無數滿足這個條件的模型可供選擇。其中一個模型是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次迭代的模型來估算每個特徵在訓練資料中的分佈。如果超過了實際的,就把相應引數變小。否則,將它們變大。當訓練樣本的特徵分佈和模型的特徵分佈相同時,就求得了最優引數。

相關推薦

模型介紹

Overview 統計建模方法是用來modeling隨機過程行為的。在構造模型時,通常供我們使用的是隨機過程的取樣,也就是訓練資料。這些樣本所具有的知識(較少),事實上,不能完整地反映整個隨機過程的狀態。建模的目的,就是將這些不完整的知識轉化成簡潔但準確的模型。我們可以用這個模型去預測隨機過程未來的行

k-近鄰學習,樸素貝葉斯,期望最大化,模型演算法介紹

k-近鄰學習 k-Nearest Neighbor(KNN) 1. 演算法描述 k-近鄰學習是一種監督的分類迴歸方法。工作機制:給定測試樣本,基於某種距離度量找出訓練集中與其最接近的k和訓練樣本,然後基於這k個“鄰居”的資訊進行預測。通常,在分類任務中採用“

模型

定性 全部 投資 情況 進行 算法 出了 信息 簡單 我們不要把雞蛋都放在一個籃子裏面講得就是最大熵原理,從投資的角度來看這就是風險最小原則。從信息論的角度來說,就是保留了最大的不確定性,也就是讓熵達到了最大。最大熵院裏指出,對一個隨機事件的概率分布進行預測的時候,我

通俗理解模型

log logs ima 最大熵 ges es2017 最大熵模型 blog image 通俗理解最大熵模型

淺談模型中的特徵

最近在看到自然語言處理中的條件隨機場模型時,發現了裡面涉及到了最大熵模型,這才知道最大熵模型自己還是一知半解,於是在知乎上查閱了很多資料,發現特別受用,飲水思源,我將自己整理的一些資料寫下來供大家參考 僅僅對輸入抽取特徵。即特徵函式為 對輸入和輸出同時抽取特徵。即特徵函式為

斯坦福大學-自然語言處理入門 筆記 第十一課 模型與判別模型(2)

一、最大熵模型 1、模型介紹 基本思想:我們希望資料是均勻分佈的,除非我們有其他的限制條件讓給我們相信資料不是均勻分佈的。均勻分佈代表高熵(high entropy)。所以,最大熵模型的基本思想就是我們要找的分佈是滿足我們限制條件下,同時熵最高的分佈。 熵:表示分佈的不

斯坦福大學-自然語言處理入門 筆記 第八課 模型與判別模型

一、生成模型與判別模型 1、引言 到目前為止,我們使用的是生成模型(generative model),但是在實際使用中我們也在大量使用判別模型(discriminative model),主要是因為它有如下的優點: 準確性很高 更容易包含很多和

【統計學習方法-李航-筆記總結】六、邏輯斯諦迴歸和模型

本文是李航老師《統計學習方法》第六章的筆記,歡迎大佬巨佬們交流。 主要參考部落格: http://www.cnblogs.com/YongSun/p/4767100.html https://blog.csdn.net/tina_ttl/article/details/53519391

統計學習---邏輯斯蒂迴歸與模型

邏輯斯蒂迴歸和最大熵模型 邏輯斯蒂分佈 邏輯斯蒂迴歸模型 將權值向量和輸入向量加以擴充後的邏輯斯蒂模型為 模型引數估計 極大似然估計法 最大熵模型 最大熵原理:在所有可能的概率模型中,熵最大的模型是最好的模型。通常用約

【機器學習】模型原理小結

最大熵模型(maximum entropy model, MaxEnt)也是很典型的分類演算法了,它和邏輯迴歸類似,都是屬於對數線性分類模型。在損失函式優化的過程中,使用了和支援向量機類似的凸優化技術。而對熵的使用,讓我們想起了決策樹演算法中的ID3和C4.5演算法。理解了最

模型(MaxEnt)解析

給出了最大熵模型的一般形式(其中的f為特徵函式,後面我們還會講到):  而文獻【5】中我們從另外一種不同的角度也得出了多元邏輯迴歸的一般形式: 可見,儘管採用的方法不同,二者最終是殊途同歸、萬法歸宗了。 所以我們說無論是多元邏輯迴歸,還是最大熵模型,又或者是Sof

一些對模型的理解

一、最大熵原理 概念:對於隨機變數X,其概率分佈為P(X),一般在約束條件下會有無數P(X)存在。最大熵原理就是在所有符合約束條件的P(X)中,熵最大的模型即為最優模型。 二、最大熵模型 最大熵模型,就是基於最大熵原理的分類模型。李航《統計學習方法》中對最大熵模型的描述

模型中的數學推導

     最大熵模型中的數學推導   0 引言     寫完SVM之後,一直想繼續寫機器學習的系列,無奈一直時間不穩定且對各個模型演算法的理

NLP --- 模型的解法(GIS演算法、IIS演算法)

上一節中我們詳細的介紹了什麼是最大熵模型,也推匯出了最大熵模型的目標公式,但是沒給出如何求解的問題,本節將詳細講解GIS演算法求解最大熵模型的過程,這裡先把上一節的推匯出的公式拿過來: 上面第一個式子是說我們要尋找的P要滿足k個約束條件,下式說是在滿足的約束的情況下,找到是熵值最大的那

NLP --- 模型的引入

前幾節我們詳細的闡述了什麼是HMM,同時給出了HMM的三個問題,也給出瞭解決這三個問題的方法最後給出了HMM的簡單的應用。其中為了解決第三個問題我們引入了EM演算法,這個演算法有點麻煩,但是不難理解,而解決第一個和第二個問題時使用的演算法基本上都是基於動態規劃的,這裡需要大家首先對動態規劃演算法

《統計學習方法(李航)》邏輯斯蒂迴歸與模型學習筆記

作者:jliang https://blog.csdn.net/jliang3   1.重點歸納 1)線性迴歸 (1)是確定兩種或以上變數間相互依賴的定量關係的一種統計分析方法。 (2)模型:y=wx+b (3)誤差函式: (4)常見求解方法 最小

深入解析模型

不要把雞蛋放到一個籃子裡 理解了這句話其實已經理解了最大熵模型的精髓了,不過這句話還是有點含蓄,下面講一下我的理解,歡迎交流。 “不要把雞蛋放到一個籃子裡”,這樣可以降低風險。 為啥不放到一個籃子裡就可以降低風險啊?如果有人告訴你就算世界毀滅這個籃子也不會破也不會摔倒地上,那麼就永遠

十、模型與EM演算法

一、最大熵模型 lnx<=x−1lnx<=x−1 證明:f(x)=x−1−lnx,x>0f(x)=x−1−lnx,x>0,求導是凸函式,在x=1處取得極值 1、熵 熵是資訊的度量,與資訊量成反比。

模型及其python實現

剛開始學習最大熵模型的時候,自以為書中的推導都看明白了。等到自己實現時才發現問題多多。因此,這篇部落格將把重點放在python程式的解讀上,為什麼說是解讀呢,因為這個程式不是我寫的(輕點噴~~),這個程式參考了網上的一篇部落格,地址:http://blog.cs

機器學習 - 模型

機器學習 - 最大熵模型 最大熵原理 最大熵模型 定義 最大熵模型的學習 極大似然估計求解 最大熵原理 最大熵的思想認為,在所有