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.