EM算法極簡總結——CVMLI Prince讀書隨筆第7章

EM算法用於在生成模型當中,模型的形式已知後,以最大似然的形式,優化模型參數。

對數似然目標

θ^=arg maxθ[i=1Ilog[P(xi,hiθ)dhi]] \hat \theta = \argmax _\theta \left [ \sum_{i=1}^I log \left [\int P(x_i, h_i|\theta)dh_i \right] \right ]
其中{xi}i=1I\{ x_i\}_{i=1}^I是訓練數據,hh是隱變量。

定義下界

上式不好直接求,定義下界函數
B[{qi(hi)},θ]=i=1Iqi(hi)log[P(xi,hiθ)qi(hi)]dhii=1Ilog[P(xi,hiθ)dhi] \begin{aligned} \mathcal B [\{q_i(h_i)\}, \theta ] &= \sum_{i=1}^I \int q_i(h_i) \log \left[ \frac{P(x_i, h_i | \theta)}{q_i(h_i)} \right] dh_i \\ & \leq \sum_{i=1}^I log \left [\int P(x_i, h_i|\theta)dh_i \right] \end{aligned}

優化過程

不斷優化B\mathcal B,即優化了目標函數的下界。優化方法爲

  • E步(期望步):更新概率分佈{qi(hi)}i=1I\{ q_i(h_i)\}_{i=1}^I來最大地提高下界。
    在第t+1t+1步,選擇
    q^i(hi)=P(hixi,θ[t])=P(xihi,θ[t]P(hiθ[t])P(xi) \hat q_i (h_i) = P(h_i| x_i, \theta ^{[t]}) = \frac{P(x_i|h_i, \theta ^{[t]}P(h_i|\theta ^{[t]})}{P(x_i)}
    該式是最大化的正確性可由Jensen不等式保證。注意這種取法實際上達到了對數似然函數。
  • M步(最大化步):更新參數θ\theta來提高下界。注意到q^i(hi)\hat q_i(h_i)θ\theta無關,所以只需最大化下式
    θ^[t+1]=arg maxθi=1Iq^i(hi)log[P(xi,hiθ)]dhi=arg maxθi=1I[Ehq^i(hi)[log(P(xihi,θ))]+Ehq^i(hi)[log(P(hi))]](1) \begin{aligned} \hat \theta^{[t+1]} &= \argmax _\theta \sum_{i=1}^I \int \hat q_i(h_i) \log \left[ P(x_i, h_i|\theta) \right] dh_i \\ &= \argmax _\theta \sum_{i=1}^I \left [ \mathbb E_{ h \sim \hat q_i(h_i)} \left[ \log (P(x_i| h_i, \theta))\right] + \mathbb E_{ h \sim \hat q_i(h_i)} \left[ \log (P(h_i))\right] \right ] \end{aligned} \tag{1}
    在這裏插入圖片描述

例子解釋

混合高斯模型

在混合高斯模型當中,EE步就是對每個點賦類別概率,MM步就是更新參數{μ,Σ,λ}\{ \mu, \Sigma, \lambda\}
如果不用EM算法,直接優化i=1Ilog[P(xiθ)]\sum_{i=1}^I \log [P(x_i|\theta)],則無法簡單得到閉式解。
在這裏插入圖片描述

學生t分佈模型

概念
  • 高斯分佈對奇異值太敏感,t分佈不會產生如此劇烈影響。
    在這裏插入圖片描述
    如果
    P(xh)=N(xμ,Σ/h)P(h)=Gam(hν/2,ν/2) P(\bm x|h) = \mathcal N (\bm x|\bm\mu, \bm\Sigma/h) \\ P(h) = Gam(h| \nu / 2, \nu/2)
    xx的全概率分佈爲學生t分佈:
    P(x)=P(xh)P(h)dh=N(xμ,Σ/h)Gam(hν/2,ν/2)dh=St(xμ,Σ,ν) \begin{aligned} P(\bm x) & = \int P(\bm x|h)P(h)dh \\ &= \int \mathcal N(\bm x|\bm \mu, \bm\Sigma/h)Gam(h|\nu/2, \nu/2)dh \\ &= St(\bm x| \bm \mu, \bm \Sigma, \nu) \end{aligned}
    其中hh是標量隱變量,GamGam是Gamma分佈。
    可以理解爲是hh選擇了一族同均值的正態分佈中的一個,然後在該分佈上生成x\bm x.

也可參考之前博客中記錄的,PRML對於學生t分佈的解釋

在這裏插入圖片描述

EM算法求解
  • E步:
    qi(hi)=P(hixi,θ[t])=P(xih)P(hi)P(xiθ[t])=N(xiμ,Σ/h)Gam(hiν/2,ν/2)P(xiθ[t])=Gam(hiν+D2,(xiμ)TΣ1(xiμ)2+ν2) \begin{aligned} q_i(h_i) = P(h_i|\bm x_i, \bm \theta^{[t]}) &= \frac{P(\bm x_i|h)P(h_i)}{P(\bm x_i|\theta^{[t]})} \\ &= \frac{\mathcal N(\bm x_i| \mu, \Sigma/h) Gam(h_i|\nu/2, \nu/2) }{P(\bm x_i|\theta^{[t]})} \\ &= Gam(h_i| \frac{\nu + D}{2} , \frac{(\bm x_i - \mu)^T \Sigma^{-1} (\bm x_i - \bm \mu)}{2} + \frac{\nu}{2}) \end{aligned}
    最後一步的證明,注意共軛性。可以參考之前的博客
  • M步:對式(1)求導,置0後得到:
    μ[t+1]=i=1IE[hi]xii=1IE[hi]Σ[t+1]=i=1IE[hi](xiμ[t+1])(xiμ[t+1])Ti=1IE[hi] \begin{aligned} \mu^{[t+1]} &= \frac{\sum_{i=1}^I \mathbb E[h_i]\bm x_i}{\sum_{i=1}^I \mathbb E[h_i]} \\ \Sigma^{[t+1]} &= \frac{\sum_{i=1}^I \mathbb E[h_i] (\bm x_i - \mu^{[t+1]})(\bm x_i - \mu^{[t+1]})^T}{\sum_{i=1}^I \mathbb E[h_i]} \end{aligned}
  • 直觀解釋:E[hi]\mathbb E [h_i]可以看作是數據的權重。對於異常值,協方差較大的高斯分佈出現的概率大,也即hih_i傾向於偏小,所以權重小。這樣也解釋了學生t分佈對於異常值的魯棒性。
  • 自由度ν\nu沒有閉式解,可以在代入更新後μ,Σ\bm \mu, \bm \Sigma後,進行一維線性搜索最大化。

參考文獻:
[1] Prince S J D. Computer vision: models, learning, and inference[M]. Cambridge University Press, 2012. 108-116.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章