EM算法用於在生成模型當中,模型的形式已知後,以最大似然的形式,優化模型參數。
對數似然目標
θ^=θargmax[i=1∑Ilog[∫P(xi,hi∣θ)dhi]]
其中{xi}i=1I是訓練數據,h是隱變量。
定義下界
上式不好直接求,定義下界函數
B[{qi(hi)},θ]=i=1∑I∫qi(hi)log[qi(hi)P(xi,hi∣θ)]dhi≤i=1∑Ilog[∫P(xi,hi∣θ)dhi]
優化過程
不斷優化B,即優化了目標函數的下界。優化方法爲
- E步(期望步):更新概率分佈{qi(hi)}i=1I來最大地提高下界。
在第t+1步,選擇
q^i(hi)=P(hi∣xi,θ[t])=P(xi)P(xi∣hi,θ[t]P(hi∣θ[t])
該式是最大化的正確性可由Jensen不等式保證。注意這種取法實際上達到了對數似然函數。
- M步(最大化步):更新參數θ來提高下界。注意到q^i(hi)與θ無關,所以只需最大化下式
θ^[t+1]=θargmaxi=1∑I∫q^i(hi)log[P(xi,hi∣θ)]dhi=θargmaxi=1∑I[Eh∼q^i(hi)[log(P(xi∣hi,θ))]+Eh∼q^i(hi)[log(P(hi))]](1)
例子解釋
混合高斯模型
在混合高斯模型當中,E步就是對每個點賦類別概率,M步就是更新參數{μ,Σ,λ}。
如果不用EM算法,直接優化∑i=1Ilog[P(xi∣θ)],則無法簡單得到閉式解。
學生t分佈模型
概念
- 高斯分佈對奇異值太敏感,t分佈不會產生如此劇烈影響。
如果
P(x∣h)=N(x∣μ,Σ/h)P(h)=Gam(h∣ν/2,ν/2)
則x的全概率分佈爲學生t分佈:
P(x)=∫P(x∣h)P(h)dh=∫N(x∣μ,Σ/h)Gam(h∣ν/2,ν/2)dh=St(x∣μ,Σ,ν)
其中h是標量隱變量,Gam是Gamma分佈。
可以理解爲是h選擇了一族同均值的正態分佈中的一個,然後在該分佈上生成x.
也可參考之前博客中記錄的,PRML對於學生t分佈的解釋。
EM算法求解
- E步:
qi(hi)=P(hi∣xi,θ[t])=P(xi∣θ[t])P(xi∣h)P(hi)=P(xi∣θ[t])N(xi∣μ,Σ/h)Gam(hi∣ν/2,ν/2)=Gam(hi∣2ν+D,2(xi−μ)TΣ−1(xi−μ)+2ν)
最後一步的證明,注意共軛性。可以參考之前的博客。
- M步:對式(1)求導,置0後得到:
μ[t+1]Σ[t+1]=∑i=1IE[hi]∑i=1IE[hi]xi=∑i=1IE[hi]∑i=1IE[hi](xi−μ[t+1])(xi−μ[t+1])T
- 直觀解釋:E[hi]可以看作是數據的權重。對於異常值,協方差較大的高斯分佈出現的概率大,也即hi傾向於偏小,所以權重小。這樣也解釋了學生t分佈對於異常值的魯棒性。
- 自由度ν沒有閉式解,可以在代入更新後μ,Σ後,進行一維線性搜索最大化。
參考文獻:
[1] Prince S J D. Computer vision: models, learning, and inference[M]. Cambridge University Press, 2012. 108-116.