機器學習 最大熵模型推導

2021-08-10 06:27:40 字數 4169 閱讀 5195

先說說熵的定義,假設我們有隨機變數

x ,其概率分布為 p(

x),則其熵為:h(

p(x)

)=−∑

xp(x

)log

p(x)

條件熵:h(

p(y|

x))=

−∑xp

(x)∑

yp(y

|x)l

ogp(

y|x)

可以證明,在概率相等的時候,熵可以達到最大值。也可以理解為「最混亂」。

一般情況下,如果對乙個事物沒有任何的先驗知識,我們傾向於用「平均概率」去估計它。比如,對於乙個骰子,如果事先不知道其內部資訊,則我們傾向於說如果拋擲它得到每種點數的概率是相等的。

如果我們知道了某些先驗資訊,比如某乙個面丟擲的概率高一些,也就是有了約束,那麼我們傾向於說在「該面有較高的概率」這個約束條件下,剩下的那些面概率相等。

這相當於「將猜測每個面出現的概率」這個舉動的風險降低到最小。

上面這種說法按照熵的語言來講,就是最大熵

假設我們研究的是分類問題,想要用模型來描述原始資料分布的 p(

y|x)

。這裡,我們將約束抽象為約束函式,也就是說,滿足某種條件的資料點 (x

,y) ,約束函式 f 的值就是1,否則為0。fi

(x,y

)={1

,if(

x,y)

matc

hsom

econ

diti

on0,

othe

rwis

e 函式 fi(

x,y)

在訓練集的數學期望:ep

˜=∑(

x,y)

p˜(x

,y)f

i(x,

y)函式 fi

(x,y

) 在原始資料集的數學期望:ep

=∑(x

,y)p

(x,y

)fi(

x,y)

我們建模的目的,就是希望用訓練集可以表示原始資料集某些規律。所以我們可以讓上面兩個期望相等:ep

˜=ep

=∑(x

,y)p

(x,y

)fi(

x,y)

=∑(x

,y)p

˜(x,

y)fi

(x,y

) 由於我們希望得到的模型最大可能地模擬原始的資料分布,通過貝葉斯公式,用 p˜

(x)p

(y|x

) 來近似 p(

x,y)

。得到:∑(

x,y)

p˜(x

)p(y

|x)f

i(x,

y)=∑

(x,y

)p˜(

x,y)

fi(x

,y)

上面說到,設定好約束條件後,我們希望模型的熵最大,這相當於風險最小。這樣,我們就得到了這裡分類問題(求的是條件概率,所以算條件熵)最大熵模型的形式:⎧⎩

⎨⎪⎪⎪

⎪⎪⎪⎪

⎪⎪⎪⎪

⎪⎪⎪⎪

⎪maxs.

t.−∑

xp˜(

x)∑y

p(y|

x)lo

gp(y

|x)∑

(x,y

)p˜(

x)p(

y|x)

fi(x

,y)=

∑(x,

y)p˜

(x,y

)fi(

x,y)

,i=1

,2,.

..,n

∑yp(

y|x)

=1等價於:⎧⎩

⎨⎪⎪⎪

⎪⎪⎪⎪

⎪⎪⎪⎪

⎪⎪⎪⎪

⎪mins.

t.∑(

x,y)

p˜(x

)p(y

|x)l

ogp(

y|x)

∑(x,

y)p˜

(x)p

(y|x

)fi(

x,y)

=∑(x

,y)p

˜(x,

y)fi

(x,y

),i=

1,2,

...,

n∑yp

(y|x

)=1

這是乙個等式約束優化問題。可以用拉格朗日乘子法。拉格朗日函式:l(

p(y|

x),α

)=∑(

x,y)

p˜(x

)p(y

|x)logp(

y|x)

+α0⎡

⎣1−∑

yp(y

|x)⎤

⎦+∑i

=1nα

i⎡⎣∑

(x,y

)p˜(

x,y)

fi−∑

(x,y

)p˜(

x)p(

y|x)

fi⎤⎦

原始問題:

minp

maxαl(

p(y|

x),α

) 對偶問題:

maxα

minpl(

p(y|

x),α

) 求偏導:

注意,我們求的是 p(

y|x)

, 這是乙個確定的值,也就是給定某乙個

x ,它分類到某一確定類別

y的概率是多少。既然是確定的,那麼上面式子如果求偏導後關於 x 和 y 的求和符號應該就沒有了。或者說,可以認為這裡的 p(

y|x)

並不是乙個未知數,而是好多個,是 p(

y1|x

),p(

y2|x

),p(

y3|x

)…。這裡我認為網上的教程以及李航的《統計學習方法》裡面沒有表述清楚。所以我這裡用 p(

yi|x

) 來表示。 ∂l

(p,α

)∂p(

yj|x

)=p˜

(x)[

logp(y

j|x)

+1]−

α0−∑

i=1n

αi[p

˜(x)

fi(x

,yj)

]=p˜

(x)[

logp(y

j|x)

+1−α

0p˜(

x)−∑

i=1n

αifi

(x,y

j)]

令導數為0,並且注意到 p˜

(x)>

0 ,得:p(

yj|x

)=exp(∑i

=1nα

ifi(

x,yj

)+α0

p˜(x

)−1)

=exp(∑

ni=1

αifi

(x,y

j))exp(1

−α0p

˜(x)

) 記規範化因子 z(

x)=exp(1

−α0p

˜(x)

) :p(

yj|x

)=1z

(x)exp(∑

i=1n

αifi

(x,y

j))

由 ∑yp

(y|x

)=1 得:z(

x)=∑

yexp(∑

i=1n

αifi

(x,y

j))

將 p(y

|x) 表示式代入對偶問題,就只剩下未知數

α 了,再優化出令目標函式值最大的

α ,反過來求的 p(

y|x)

就是最優的。注意,上面說求導是針對 p(

yj|x

) 求的,那麼 p(

yj|x

) 之間的不同是由什麼控制的呢?當然是由 fi

(x,y

j)控制了。

具體的優化

α 的演算法可以參考 。

最大熵模型推導

最大熵模型推導 1.似然函式 概率和似然的區別 概率是已知引數的條件下 未知事情發生的概率,而似然性是已知事情發生的前提下估計模型的引數.我們通常都是將似然函式取最大值時的引數作為模型的引數.那麼為何要取似然函式取最大值的引數作為模型的引數?我們基於這樣的假設 對於已經發生的事情,在同樣條件下再次發...

最大熵學習筆記(三)最大熵模型

生活中我們經常聽到人們說 不要把雞蛋放到乙個籃子裡 這樣可以降低風險。深究一下,這是為什麼呢?其實,這裡邊包含了所謂的最大熵原理 the maximum entropy principle 本文為一則讀書筆記,將對最大熵原理以及由此匯出的最大熵模型進行介紹,重點給出其中所涉及數學公式的理解和詳細推導...

機器學習演算法之 最大熵模型總結

最大熵模型可由最大熵原理推出,最大熵原理是概率模型學習的乙個準則。最大熵原理認為在滿足已有事實的所有可能的概率模型中,熵最大的模型是最好的模型。x 是x的取值個數,上式表明當且僅當x的分布是均勻分布時右邊的等號成立,當x服從均勻分布時,熵最大。兩個步驟 給定資料集,考慮模型滿足的條件,可以確定聯合分...