最大熵模型中的数学推导
最大熵模型中的數學推導
?查看原文,點擊這里?
0 引言
? ? 寫完SVM之后,一直想繼續寫機器學習的系列,無奈一直時間不穩定且對各個模型算法的理解尚不夠,所以導致遲遲未動筆。無獨有偶,重寫KMP得益于今年4月個人組織的算法班,而動筆繼續寫這個機器學習系列,正得益于今年10月組織的機器學習班。
? ? 10月26日機器學習班第6次課,身為講師之一的鄒博講最大熵模型,他從熵的概念,講到為何要最大熵、最大熵的推導,以及求解參數的IIS方法,整個過程講得非常流暢,特別是其中的數學推導。晚上我把他的PPT?在微博上公開分享了出來,但對于沒有上過課的朋友直接看PPT 會感到非常跳躍,因此我打算針對機器學習班的某些次課寫一系列博客,剛好也算繼續博客中未完的機器學習系列。
? ?綜上,本文結合鄒博最大熵模型的PPT和其它相關資料寫就,可以看成是課程筆記或學習心得,著重推導。有何建議或意見,歡迎隨時于本文評論下指出,thanks。
?
1 預備知識
為了更好的理解本文,需要了解的概率必備知識有:? ? 更多請查看《高等數學上下冊》、《概率論與數理統計》等教科書,或參考本博客中的:數據挖掘中所需的概率論與數理統計知識。
?
2 何謂熵?
? ? 從名字上來看,熵給人一種很玄乎,不知道是啥的感覺。其實,熵的定義很簡單,即用來表示隨機變量的不確定性。之所以給人玄乎的感覺,大概是因為為何要取這樣的名字,以及怎么用。
? ??熵的概念最早起源于物理學,用于度量一個熱力學系統的無序程度。在信息論里面,熵是對不確定性的測量。
2.1 熵的引入
? ? 事實上,熵的英文原文為entropy,最初由德國物理學家魯道夫·克勞修斯提出,其表達式為:
?
?
? ? 它表示一個系系統在不受外部干擾時,其內部最穩定的狀態。后來一中國學者翻譯entropy時,考慮到entropy是能量Q跟溫度T的商,且跟火有關,便把entropy形象的翻譯成“熵”。
? ? 我們知道,任何粒子的常態都是隨機運動,也就是"無序運動",如果讓粒子呈現"有序化",必須耗費能量。所以,溫度(熱能)可以被看作"有序化"的一種度量,而"熵"可以看作是"無序化"的度量。
? ? 如果沒有外部能量輸入,封閉系統趨向越來越混亂(熵越來越大)。比如,如果房間無人打掃,不可能越來越干凈(有序化),只可能越來越亂(無序化)。而要讓一個系統變得更有序,必須有外部能量的輸入。
1948年,香農Claude E. Shannon引入信息(熵),將其定義為離散隨機事件的出現概率。一個系統越是有序,信息熵就越低;反之,一個系統越是混亂,信息熵就越高。所以說,信息熵可以被認為是系統有序化程度的一個度量。? ? 若無特別指出,下文中所有提到的熵均為信息熵。
2.2 熵的定義
下面分別給出熵、聯合熵、條件熵、相對熵、互信息的定義。 熵:如果一個隨機變量X的可能取值為X = {x1, x2,…, xk},其概率分布為P(X = xi) = pi(i = 1,2, ..., n),則隨機變量X的熵定義為:? ??
? ? 把最前面的負號放到最后,便成了:
? ? 上面兩個熵的公式,無論用哪個都行,而且兩者等價,一個意思(這兩個公式在下文中都會用到)。
? ??聯合熵:兩個隨機變量X,Y的聯合分布,可以形成聯合熵Joint Entropy,用H(X,Y)表示。
? ??條件熵:在隨機變量X發生的前提下,隨機變量Y發生所新帶來的熵定義為Y的條件熵,用H(Y|X)表示,用來衡量在已知隨機變量X的條件下隨機變量Y的不確定性。
? ? 且有此式子成立:H(Y|X) =?H(X,Y) – H(X),整個式子表示(X,Y)發生所包含的熵減去X單獨發生包含的熵。至于怎么得來的請看推導:
? ?簡單解釋下上面的推導過程。整個式子共6行,其中
?
- 第二行推到第三行的依據是邊緣分布p(x)等于聯合分布p(x,y)的和;
- 第三行推到第四行的依據是把公因子logp(x)乘進去,然后把x,y寫在一起;
- 第四行推到第五行的依據是:因為兩個sigma都有p(x,y),故提取公因子p(x,y)放到外邊,然后把里邊的-(log?p(x,y)?-?log?p(x))寫成- log?(p(x,y)/p(x)?) ;
- 第五行推到第六行的依據是:p(x,y) = p(x) * p(y|x),故p(x,y) / p(x) = ?p(y|x)。
? ??相對熵:又稱互熵,交叉熵,鑒別信息,Kullback熵,Kullback-Leible散度等。設p(x)、q(x)是X中取值的兩個概率分布,則p對q的相對熵是:
? ? 在一定程度上,相對熵可以度量兩個隨機變量的“距離”,且有D(p||q) ≠D(q||p)。另外,值得一提的是,D(p||q)是必然大于等于0的。
? ??互信息:兩個隨機變量X,Y的互信息定義為X,Y的聯合分布和各自獨立分布乘積的相對熵,用I(X,Y)表示:
? ? 且有I(X,Y)=D(P(X,Y) || P(X)P(Y))。下面,咱們來計算下H(Y)-I(X,Y)的結果,如下:
?
? ? 通過上面的計算過程,我們發現竟然有H(Y)-I(X,Y) =?H(Y|X)。故通過條件熵的定義,有:H(Y|X) = H(X,Y) - H(X),而根據互信息定義展開得到H(Y|X) = H(Y) - I(X,Y),把前者跟后者結合起來,便有I(X,Y)= H(X) + H(Y) - H(X,Y),此結論被多數文獻作為互信息的定義。
?
?
3 最大熵
熵是隨機變量不確定性的度量,不確定性越大,熵值越大;若隨機變量退化成定值,熵為0。如果沒有外界干擾,隨機變量總是趨向于無序,在經過足夠時間的穩定演化,它應該能夠達到的最大程度的熵。 ? 為了準確的估計隨機變量的狀態,我們一般習慣性最大化熵,認為在所有可能的概率模型(分布)的集合中,熵最大的模型是最好的模型。換言之,在已知部分知識的前提下,關于未知分布最合理的推斷就是符合已知知識最不確定或最隨機的推斷,其原則是承認已知事物(知識),且對未知事物不做任何假設,沒有任何偏見。 例如,投擲一個骰子,如果問"每個面朝上的概率分別是多少",你會說是等概率,即各點出現的概率均為1/6。因為對這個"一無所知"的色子,什么都不確定,而假定它每一個朝上概率均等則是最合理的做法。從投資的角度來看,這是風險最小的做法,而從信息論的角度講,就是保留了最大的不確定性,也就是說讓熵達到最大。3.1 無偏原則
下面再舉個大多數有關最大熵模型的文章中都喜歡舉的一個例子。 例如,一篇文章中出現了“學習”這個詞,那這個詞是主語、謂語、還是賓語呢?換言之,已知“學習”可能是動詞,也可能是名詞,故“學習”可以被標為主語、謂語、賓語、定語等等。- 令x1表示“學習”被標為名詞, x2表示“學習”被標為動詞。
- 令y1表示“學習”被標為主語, y2表示被標為謂語, y3表示賓語, y4表示定語。
? ? 因為沒有任何的先驗知識,所以這種判斷是合理的。如果有了一定的先驗知識呢?
即進一步,若已知:“學習”被標為定語的可能性很小,只有0.05,即,剩下的依然根據無偏原則,可得: 再進一步,當“學習”被標作名詞x1的時候,它被標作謂語y2的概率為0.95,即,此時仍然需要堅持無偏見原則,使得概率分布盡量平均。但怎么樣才能得到盡量無偏見的分布? 實踐經驗和理論計算都告訴我們,在完全無約束狀態下,均勻分布等價于熵最大(有約束的情況下,不一定是概率相等的均勻分布。 比如,給定均值和方差,熵最大的分布就變成了正態分布?)。 于是,問題便轉化為了:計算X和Y的分布,使得H(Y|X)達到最大值,并且滿足下述條件:? ? 因此,也就引出了最大熵模型的本質,它要解決的問題就是已知X,計算Y的概率,且盡可能讓Y的概率最大(實踐中,X可能是某單詞的上下文信息,Y是該單詞翻譯成me,I,us、we的各自概率),從而根據已有信息,盡可能最準確的推測未知信息,這就是最大熵模型所要解決的問題。
? ? 相當于已知X,計算Y的最大可能的概率,轉換成公式,便是要最大化下述式子H(Y|X):
?
? ? 且滿足以下4個約束條件:
3.2 最大熵模型的表示
至此,有了目標函數跟約束條件,我們可以寫出最大熵模型的一般表達式了,如下: 其中,P={p | p是X上滿足條件的概率分布} 繼續闡述之前,先定義下特征、樣本和特征函數。 特征:(x,y)- y:這個特征中需要確定的信息
- x:這個特征中的上下文信息
? ? 特征函數關于經驗分布在樣本中的期望值是: 其中,。 特征函數關于模型P(Y|X)與經驗分布P-(X)的期望值為:
? ? 換言之,如果能夠獲取訓練數據中的信息,那么上述這兩個期望值相等,即:
不過,因為實踐中p(x)不好求,所以一般用樣本中x出現的概率"p(x)-"代替x在總體中的分布概率“p(x)”,從而得到最大熵模型的完整表述如下:? ? 其約束條件為:
? ??
? ? 該問題已知若干條件,要求若干變量的值使到目標函數(熵)最大,其數學本質是最優化問題(Optimization Problem),其約束條件是線性的等式,而目標函數是非線性的,所以該問題屬于非線性規劃(線性約束)(non-linear programming with linear constraints)問題,故可通過引入Lagrange函數將原帶約束的最優化問題轉換為無約束的最優化的對偶問題。
3.3 凸優化中的對偶問題
? ? 考慮到機器學習里,不少問題都在圍繞著一個“最優化”打轉,而最優化中凸優化最為常見,所以為了過渡自然,這里簡單闡述下凸優化中的對偶問題。
? ??一般優化問題可以表示為下述式子:
? ? 其中,subject to導出的是約束條件,f(x)表示不等式約束,h(x)表示等式約束。
? ? 然后可通過引入拉格朗日乘子λ和v,建立拉格朗日函數,如下:
? ??對固定的x,Lagrange函數L(x,λ,v)為關于λ和v的仿射函數。
3.4 對偶問題極大化的指數解
? ? 針對原問題,首先引入拉格朗日乘子λ0,λ1,λ2, ..., λi,定義拉格朗日函數,轉換為對偶問題求其極大化:
?
? ? 然后求偏導,:
?
? ? 注:上面這里是對P(y|x)求偏導,即只把P(y|x)當做未知數,其他都是常數。因此,求偏導時,只有跟P(y0|x0)相等的那個"(x0,y0)"才會起作用,其他的(x,y)都不是關于P(y0|x0)的系數,是常數項,而常數項一律被“偏導掉”了。
? ? 令上述的偏導結果等于0,解得:
? ? 進一步轉換:
?
? ? 其中,Z(x)稱為規范化因子。
? ? 根據之前的約束條件之一:?= 1,所以有
?
?
? ? 從而有
? ? 現將求得的最優解P*(y|x)帶回之前建立的拉格朗日函數L
?
?
? ? 得到關于λ的式子:
? ? 注:最后一步的推導中,把之前得到的結果代入計算即可。
? ? 接下來,再回過頭來看這個式子:
? ??
? ? 可知,最大熵模型模型屬于對數線性模型,因為其包含指數函數,所以幾乎不可能有解析解。換言之,即便有了解析解,仍然需要數值解。那么,能不能找到另一種逼近?構造函數f(λ),求其最大/最小值?
? ? 相當于問題轉換成了尋找與樣本的分布最接近的概率分布模型,如何尋找呢?你可能想到了極大似然估計。
3.5 最大熵模型的極大似然估計
? ? 記得13年1月份在微博上說過:所謂最大似然,即最大可能,在“模型已定,參數θ未知”的情況下,通過觀測數據估計參數θ的一種思想或方法,換言之,解決的是取怎樣的參數θ使得產生已得觀測數據的概率最大的問題。
? ? 舉個例子,假設我們要統計全國人口的身高,首先假設這個身高服從服從正態分布,但是該分布的均值與方差未知。由于沒有足夠的人力和物力去統計全國每個人的身高,但是可以通過采樣(所有的采樣要求都是獨立同分布的),獲取部分人的身高,然后通過最大似然估計來獲取上述假設中的正態分布的均值與方差。
? ? 極大似然估計MLE的一般形式表示為:
? ? 其中,是對模型進行估計的概率分布,是實驗結果得到的概率分布。
? ? 進一步轉換,可得:
? ??
? ? 對上式兩邊取對數可得:
? ? 因上述式子最后結果的第二項是常數項(因為第二項是關于樣本的聯合概率和樣本自變量的式子,都是定值),所以最終結果為:
? ? 至此,我們發現極大似然估計和條件熵的定義式具有極大的相似性,故可以大膽猜測它們極有可能殊途同歸,使得它們建立的目標函數也是相同的。 我們來推導下,驗證下這個猜測。
? ? 將之前得到的最大熵的解帶入MLE,計算得到(右邊在左邊的基礎上往下再多推導了幾步):
?
?
?
? ? 注:其中,且P~(x,y) = P~(x) * P(y|x),??= 1。
? ? 然后拿這個通過極大似然估計得到的結果
? ? ? ? ?
? ? 跟之前得到的對偶問題的極大化解
? ?
? ? 只差一個“-”號,所以只要把原對偶問題的極大化解也加個負號,等價轉換為對偶問題的極小化解:
? ? 則與極大似然估計的結果具有完全相同的目標函數。
? ? 換言之,之前最大熵模型的對偶問題的極小化等價于最大熵模型的極大似然估計。
? ? 且根據MLE的正確性,可以斷定:最大熵的解(無偏的對待不確定性)同時是最符合樣本數據分布的解,進一步證明了最大熵模型的合理性。兩相對比,熵是表示不確定性的度量,似然表示的是與知識的吻合程度,進一步,最大熵模型是對不確定度的無偏分配,最大似然估計則是對知識的無偏理解。
?
4 參數求解法:IIS
? ? 回顧下之前最大熵模型的解:
?
? ? 其中
? ? 對數似然函數為:
?
? ? 相當于現在的問題轉換成:通過極大似然函數求解最大熵模型的參數,即求上述對數似然函數參數λ?的極大值。此時,通常通過迭代算法求解,比如改進的迭代尺度法IIS、梯度下降法、牛頓法或擬牛頓法。這里主要介紹下其中的改進的迭代尺度法IIS。
? ? 改進的迭代尺度法IIS的核心思想是:假設最大熵模型當前的參數向量是λ,希望找到一個新的參數向量λ+δ,使得當前模型的對數似然函數值L增加。重復這一過程,直至找到對數似然函數的最大值。
? ? 下面,咱們來計算下參數λ 變到λ+δ的過程中,對數似然函數的增加量,用L(λ+δ)-L(λ)表示,同時利用不等式:-lnx ≥1-x , x>0,可得到對數似然函數增加量的下界,如下:
?
? ? 將上述求得的下界結果記為A(δ |?λ),為了進一步降低這個下界,即縮小A(δ |?λ)的值,引入一個變量:
?
?
? ? 其中,f 是一個二值函數,故f#(x, y)表示的是所有特征(x, y)出現的次數,然后利用Jason不等式,可得:
? ? 我們把上述式子求得的A(δ |?λ)的下界記為B(δ |?λ):
? ? 相當于B(δ |?λ)是對數似然函數增加量的一個新的下界,可記作:L(λ+δ)-L(λ) ?>=?B(δ |?λ)。
? ? 接下來,對B(δ |?λ)求偏導,得:
?
? ? 此時得到的偏導結果只含δ,除δ之外不再含其它變量,令其為0,可得:
?
? ? 從而求得δ,問題得解。
? ? 值得一提的是,在求解δ的過程中,如果若f#(x,y)=M為常數,則
?
?
? ? 否則,用牛頓法解決:
?
?
? ? 求得了δ,便相當于求得權值λ,最終將λ?回代到下式中:
?
?
? ? 即得到最大熵模型的最優估計。
?
5 參考文獻
轉載于:https://www.cnblogs.com/songshu-liym/p/4592049.html
總結
以上是生活随笔為你收集整理的最大熵模型中的数学推导的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在不支持双面打印的打印机上实现双面打
- 下一篇: STM32三种启动模式 boot0 bo