一些對最大熵模型的理解
一、最大熵原理
概念:對於隨機變數X,其概率分佈為P(X),一般在約束條件下會有無數P(X)存在。最大熵原理就是在所有符合約束條件的P(X)中,熵最大的模型即為最優模型。
二、最大熵模型
最大熵模型,就是基於最大熵原理的分類模型。李航《統計學習方法》中對最大熵模型的描述如下:
問題1:為什麼是條件熵?
因為我們需要的是一個分類模型,也就是對於樣本x,模型返回其對應的類別y,即模型應該是一個條件概率分佈,表示為P(Y|X)。
問題2:在最大熵模型定義中,式(6.12)究竟表示什麼意思?為什麼要引入這條約束條件?
(1)要理解這個問題,首先看式(6.12)等號的右側部分定義。後面距離比較長,理解的同學就不必看了):
也就是說,是特徵函式f(x,y)的期望值,我們知道當x=y時,f(x,y)=1;否則f(x,y)=0。上面的公式表示,在訓練集中,所有x和y可能組成的關係中,滿足特徵函式f(x,y)=1的數量。
打個比方,你統計女人喜歡或不喜歡某個男人的原因。回答肯定有很多種,我們用變數x表示喜歡或不喜歡的原因,變數y表示喜歡或不喜歡。有女孩認為喜歡的原因是“他很帥氣”,此時事實就是“x=帥,y=喜歡”,我們定義特徵函式f(x=帥,y=喜歡)=1來表示這樣一個事實;但有的哥們就悲劇了,姑娘不喜歡的原因是認為他“窮”,此時事實就是“x=窮,y=不喜歡”,我們定義為特徵函式f(x=窮,y=不喜歡)=1來表示。現在,我們假設走訪了1000位女生,得到了1000個回答。
我這裡只列舉了兩種事實,並假設通過這兩種事實就能很好地描述我走訪的這1000個女生的回答(也就是假設大部分女生都是這兩種回答)。由此可以看出,我們可以定義很多事實來描述給定的訓練集,好的事實更能得到好的模型,所以訓練最大熵模型時,確定好符合訓練集的事實很重要。比如上面的例子中,最好不要定義類似這樣的事實“x=按時吃飯,y=喜歡”,因為你覺得在回答喜歡的女生中,會有多少是因為“按時吃飯”這個原因喜歡男生的?本質原因是這樣的事實不能很好地描述已知資料集。
這個期望值衡量的是什麼呢?其實就是衡量你定義的這些個特徵函式(本質上表示x和y滿足某一事實),對已知事實(即訓練集)的描述程度。
(2)再看等式(6.12)左邊的部分,是不是發現很相似呢?它也是一個期望:
和右邊公式的差別就是右邊公式中的變成了。為什麼會是這樣?其實我們也不想這樣,我們也想獲得x和y的聯合概率分佈,但我們是不知道的,只能另想辦法。辦法就是根據全概率公式,我們只要知道即可。但我們也不知道,進死衚衕了嗎?沒有,好在我們知道啊。根據大數定律,在樣本達到一定數量後,我們可以用經驗分佈來表示真實的概率分佈,這樣就可以表示啦。
(3)這兩個期望和相等,有什麼意義?
根據(1)中的舉例,其實就是為了描述女生喜歡或不喜歡男生的原因的分佈情況,我定義了n個事實,相應的有n個特徵函式。由於不可能去統計地球上所有女生的回答,因此我希望調研的1000個女生中的原因分佈與真實情況下的分佈最接近,理想的情況是相同!注意,和都是小於1的,因為本質上,其中x和y滿足某一事實。而對所有x,y,有。同理對於也是一樣。
問題3:為什麼公式中有個?
按照熵的定義,公式中應該沒有。個人認為是為了方便後面學習過程的推導(見下面的公式),如果沒有這個引數,下面公式最後一項中的就提取不出來,就會造成在最後的模型中存在引數,而不一定是準確的。
那為什麼乘上沒關係呢?因為對於給定的訓練資料集,是一個常數,因此對於後面最大熵模型的極大似然估計是沒有影響的。
三、最大熵模型的學習
這部分難點是將約束最優化問題轉換為無約束最優化的對偶問題。
下面講講我對轉換的理解,請看書中公式:
對於為什麼會有公式(6.18)應該沒有問題吧?
(6.18)可以這樣理解:先給定某種模型(,其中C是模型空間),然後在引數空間{w}中,找到某個,得到的最小值。一個模型對應一個最小值,求所有模型中的最小值就是,i=1,2,...,k(C),k(C)表示模型空間中的模型數量。
很好,公式本身的邏輯沒有問題。問題在於公式中L(P,w)是凸函式,其影象也就是類似。凸函式有極小值,但可能沒有最大值,即最大值可能是正無窮(無約束或即使在某些約束條件下)。因此不能保證凸函式的max值存在且能求出。那怎麼辦呢?那就把上面求的過程反過來吧,也就是轉化為公式(6.18)的對偶問題,表示為公式(6.19)。
那麼就來說說我對公式(6.19)的理解。我們先固定住w,就可以表示為給定w時,約束曲線與模型P的等高線的最低相切點(如下圖,紅色曲線為約束曲線g(x,y),圖來自知乎,見上面給的連結。另外,其實應該是約束平面而不是曲線,因為g(x,y)=K),而表示求所有模型的最低相切點中,值最小的那個切點。現在解綁w,每個w都有一個這樣的切點,那麼我們求所有w中最大的那個切點,也就是公式(6.19)。
這樣的一個點能夠使所有不滿足約束條件的點都在該點之下(也就是隻要該點之上的點都滿足約束條件)。這個時候的就是拉格朗日函式中的H(P),也就是所求最大熵模型。需要注意的是,公式(6.19)的值≥公式(6.18)的值。
(圖片來自知乎)