先說說熵的定義,假設我們有隨機變數
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服從均勻分布時,熵最大。兩個步驟 給定資料集,考慮模型滿足的條件,可以確定聯合分...