1. 程式人生 > >最大熵模型及其python實現

最大熵模型及其python實現

剛開始學習最大熵模型的時候,自以為書中的推導都看明白了。等到自己實現時才發現問題多多。因此,這篇部落格將把重點放在python程式的解讀上,為什麼說是解讀呢,因為這個程式不是我寫的(輕點噴~~),這個程式參考了網上的一篇部落格,地址:http://blog.csdn.net/moonzjaw/article/details/39552333。在此,對他的貢獻表示誠摯的謝意。
進入正題,假設我們有一顆六面骰子,如何求出骰子投出“1”的概率?在沒有其他條件的情況下,我們很自然地會讓骰子每個面出現的概率均等,從而得出投出“1”的概率為1/6的結論。如果已知該骰子質量分佈不均勻,使得投出“2”和“6”的概率和為1/2,那麼投出“1”的概率又是多少?在這種情況下,我們仍然下意識的認為投出“1”、“3”、“4”、“5”概率相等。在這兩個案例中,本來符已知條件的投出“1”的概率分佈有無限多種,但是我們更傾向於使每個事件等可能發生,這其實使用到了最大熵原理。本部落格首先介紹最大熵原理的具體含義,並基於最大熵原理,推導最大熵模型,介紹求解最大熵模型的一種常用方法—IIS,最後,解讀基於python實現的最大熵模型簡單案例。
1. 最大熵原理與最大熵模型
我們都知道太陽東昇西落,這是一個必然事件,所以這一事實並不會引起你的注意,因為這種“正確的廢話”能帶給你的資訊量是很少的。同樣的,一個不可能事件能帶給你的資訊量也是很少的。從這裡我們可以看出,資訊量與概率存在有一定關聯。資訊熵公式所描述的也就是這樣一種關聯。

S=ipilogpi
而最大熵原理認為,在眾多符合已知條件的概率模型中,使得熵最大的模型是最好的。我們來依據最大熵原理推導一下文章開頭的骰子問題。
設擲出1~6的概率分別為 。那麼可以寫出基於最大熵原理建立的優化模型:
maxS=i=16pilogpis.t.i=16pi=1
構造拉格朗日函式:
L(p,λ)=i=16pilogpi+λ(1i=16pi)
分別對各個p求偏導
Lpi=λ(1+logpi)
pi=eλ1(常數),所以基於最大熵原理得到的概率模型服從均勻分佈。所有事件是等概率發生的,這一點符合人們的認知,即在不知道更多的條件時,不對模型做進一步假設。由於實際問題中可能包含更多的約束(例如文章開頭提到了骰子質量分佈不均勻的情況)使得最大熵模型中可能包含更多約束,故求解得到的概率模型並不一定就嚴服從均勻分佈,最大熵模型只是在基於已知的條件下,使得模型接近均勻分佈。關於資訊熵和最大熵原理本文不做過多闡述,網上的解釋都更有參考價值。
考慮訓練資料集T
={(x1,y1),(x2,y2),...(xN,yN)}
,如何訓練一個概率模型p(y|x)實現分類任務?首先,我們可以根據訓練練樣本得到特徵x與標籤y的經驗聯合概率分佈p˜(x,y),也就是,統計每個特徵-標籤對在訓練樣本中出現的概率。由於是基於樣本得到的概率所以是經驗概率。同樣的,可以根據樣本得到特徵的經驗概率p˜(x)。訓練得到的條件概率應當滿足以下條件
Ep=p˜(x)p(y|x)f(x,y)=p˜(x,y)f(x,y)=Ep˜
其中,f(x,y)是特徵函式。該特定特徵-標籤對出現時,取1,否則取0。(也不一定就要取1,特徵函式有多種形式,可以參考https://www.zhihu.com/question/52925275
)。
除了讓期望相等,該概率模型還應當滿足最大熵準則和概率和為1的準則。所以訓練該概率模型轉化為如下的優化問題:
minS(Y|X)=S(X,Y)+S(X)=i=1Np˜(x,y)logp(y|x)=i=1Np(y|x)p˜(x)logp(y|x)s.t.yp(y|x)=1p˜(x,y)f(x,y)=p(y|x)p˜(x)f(x,y)
需要注意的是上面的模型是對條件熵取最大。而條件熵代表著隨機變數X發生的情況下隨機變數Y發生帶來熵。衡量已知X的情況下Y的不確定性,具體計算公式與推導參考http://blog.csdn.net/xiangyong58/article/details/51290393
構造拉格朗日函式
L(p(y|x),λi)=i=1Np(

相關推薦

模型及其python實現

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

邏輯斯蒂迴歸,模型及其等價性

首先推導二類分類訓練集上的邏輯斯蒂迴歸模型(Logistic Regression), 然後推導最大熵模型(Maximum Entropy Model), 最後給出給出最大熵模型等價於邏輯斯蒂迴歸模型的條件. 1. 邏輯斯蒂迴歸 訓練集T={(xi,

模型及其演算法

最大熵模型表面意義上來講是使資訊熵或者條件熵最大,一般來講最大熵模型是使條件熵最大的模型。 最大熵模型的一些特點: 1、最大熵模型的輸入輸出為X,Y,求解時需要代入p(x,y)的聯合概率,即p(x,y)*log(y|x)求和的模型, 這個模型裡,我們需要求解的是p(y|x)

模型python實現

本文參考nltk MaxentClassifier實現了一個簡單的最大熵模型,主要用於理解最大熵模型中一些數學公式的實際含義。 最大熵模型:Pw(y|x)Zw(x)=1Zw(x)exp(∑i=1nwifi(x,y))=∑yexp(∑i=1nwifi(x,y))

模型進行字標註中文分詞(Python實現

        同前面的那篇文章一樣(參見:最大熵模型進行中文分詞),本文運用字標註法進行中文分詞,分別使用4-tag和6-tag對語料進行字標註,觀察分詞效果。前面的文章中使用了模型工具包中自帶的一個樣例進行4-tag中文分詞,但由於其選取的特徵是針對英文詞性標註開發

模型—— ,條件,聯合,相對,互資訊及其關係,模型。。

引入1:隨機變數函式的分佈 給定X的概率密度函式為fX(x), 若Y = aX, a是某正實數,求Y得概率密度函式fY(y). 解:令X的累積概率為FX(x), Y的累積概率為FY(y). 則 FY(y) = P(Y <= y) = P(aX &

模型

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

通俗理解模型

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

淺談模型中的特徵

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

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

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

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

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

逆向匹配演算法之python實現

1.執行環境 python 3.6.4 2.思路 大致思路與正向相同,可參考我的上一篇部落格。 3.程式碼實現 import codecs #獲得分詞字典,儲存為字典形式 f1 = codecs.open('./corpus/WordList.txt', 'r', encodi

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

本文是李航老師《統計學習方法》第六章的筆記,歡迎大佬巨佬們交流。 主要參考部落格: 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演算法,這個演算法有點麻煩,但是不難理解,而解決第一個和第二個問題時使用的演算法基本上都是基於動態規劃的,這裡需要大家首先對動態規劃演算法