EM算法极简总结

谁说我不能喝 提交于 2020-01-26 17:36:31

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.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!