介紹
理論分析
現在,已經知道目標函式(似然函式)
maxj(θ
)=p(
x|θ)
, 假設隱變數為z,那麼可以寫成j(
θ)=∑
zp(x
,z|θ
),我們假設當前的引數為 θi
,那麼可以得到 j(
θ)−j
(θi)
=logp(
x|θ)
−logp(
x|θi
)=log∑zp
(x,z
|θ)−
logp(x
|θi)
=log∑z
p(z|
x,θi
)p(x
,z|θ
)p(z
|x,θ
i)−logp(
x|θi
)≥∑z
p(z|
x,θi
)logp(
x,z|
θ)p(
z|x,
θi)−
logp(x
|θi)
. 最後的不等式用的是jenson不等式,即當f(
x)為凸函式時,有f(
e(x)
)≥e(
f(x)
).另不等式右邊的項為b(
θ,θi
) ,那麼可以得到:j(
θi)=
b(θ,
θi).
現在知道j(
θ)的下界函式為b(
θ,θi
)+j(
θi)
,只要求得引數
θ 使得b(
θ,θi
) 增加,就可以保證j(
θ)也是增加的.於是優化目標轉換成最大化b(
θ,θi
) ,並且可以進一步化簡,即去除關於
θ 的常數項,於是得到em演算法中最重要的
q 函式: q(
θ,θi
)=∑z
p(z|
x,θi
)logp(
x,z|
θ)=e
z[logp(x
,z|θ
)|(x
,θi)
.]以上的推導來自於參考文獻[1].
在別的地方有看到過另一種解釋方法,引入了
z 的分布函式,並利用到泛函及kl散度,等後面有機會碰到,詳細理解之後再補充本文.
例:高斯混合模型
高斯混合模型是多個高斯分布的線性組合,可以用來擬合比較複雜的分布函式。形式如下:p(
x)=∑
k=1k
αkn(
x|(μ
k,σ2
k))(1)
,其中 n(
x|(μ
k,σk
))=1
2π−−
√σkexp
(2)
於是這個概率模型的引數θ=
(αk,
μk,σ
k)。為了得到高斯混合模型,需要得到這些引數的值。
假設樣本的生成過程由高斯混合分布給出。首先,根據α1
,…,α
k 定義的先驗分布選擇高斯混合成分,其中αk
為選擇第
k 個混合成分的概率;然後,根據被選擇的混合成分的概率密度函式進行取樣,從而生成相應的樣本。從(1)式代表的分布中取樣,資料點x來自第k個分模型的概率為αk
n(x|
(μk,
σk))
。 假設我們已經以分布p(
x)取樣得到樣本集
。這樣樣本來自哪個模型,就可以看作是隱藏狀態,我們用隨機變數zn
k 表示xn
是否來自第k個模型: zn
k={0
,1,if xn
comes from mo
delk
if x
ndoesn't come from mo
delk
.(3)
於是,對每個樣本點,我們有一組隨機變數zn
=(zn
1,zn
2,..
.,zn
k)。great!這些變數就是隱變數!現在可以用到剛好適用於含有隱變數的概率模型的引數學習的演算法——em演算法。從前面對em演算法的介紹中,我們已經知道了,em演算法需要求解兩組概率p(
z|x,
θ) ,p
(x,z
|θ) : p(
znk=
1|xn
,θ)=
p(zn
k,xn
|θ)p
(xn|
θ)=α
kn(x
|(μk
,σk)
∑kk=
1αkn
(x|(
μk,σ
k))(4)
不難理解,(4)式也可以寫成: e(
(znk
)|xn
,θ)=
p(zn
k=1|
xn,θ
) 另一方面: p(
x,z|
θ)=∏
n=1n
p(xn
,zn)
=∏n=
1np(
xn,(
zn1,
zn2,
...,
znk)
|θ)=
∏n=1
n∏k=
1k(α
kn(x
|(μk
,σk)
)znk
取對數,得 lo
gp(x
,z|θ
)=∑n
=1n∑
k=1k
znkl
ogαk
+∑n=
1n∑k
=1kz
nklo
gn(x
|μk,
σk)(5)
於是高斯混合模型的q函式為: q(
θ,θi
)=ez
[logp(
x,z|
θ)|(
x,θi
)]=∑
n=1n
∑k=1
ke(z
nk|x
n,θi
)log
αk+∑
n=1n
∑k=1
ke(z
nk|x
n,θi
)log
n(x|
μk,σ
k)(6)
把(2)和(4)代入,對每個引數求導,導數為0的點即θi
+1對應的引數。
例:伯努利混合模型
例:hmm
例:***** bayes的無參估計
機器學習演算法 EM演算法
e步 利用當前估計的引數值,求出在該引數下隱含變數的條件概率值 計算對數似然的期望值 m步 結合e步求出的隱含變數條件概率,求出似然函式下界函式的最大值 尋找能使e步產生的似然期望最大化的引數 值 然後,新得到的引數值重新被用於e步.直到收斂到區域性最優解。note 每次迭代實際在求q函式及其極大,...
機器學習 EM演算法
em演算法 最大期望演算法 expectation maximization algorithm,em 是為處理缺失資料的引數的估計問題,主要分為e步和m步交替組成,對給定的初始引數依賴較大。from numpy import import numpy as np import matplotlib...
機器學習 EM演算法推導
有時,我們用極大似然的時候,公式中可能會有隱變數 l i 1m p yi i 1 m z p yi z i 1m zp z p y i z 也就是 y 取什麼值是由隱含的變數 z 決定的。舉個栗子 有三個硬幣,abc,先拋a,由a的正反面決定下一步拋 b 還是拋 c a是正面拋b,a是反面拋c。第二...