EM算法
用X表示观测随机变量,Z表示隐随机变量。X和Z连在一起称为完全数据(complete-data),Y为不完全数据(incomplete-data)。给定训练样本
X={x1,x2,⋯,xn}
,样例间独立,EM算法通过迭代求样本的极大似然估计
L(θ)
来估计模型参数:
L(θ)=∑i=1nlogp(xi|θ)=∑i=1nlog∑zp(xi,z|θ)
对于每一个样例 xi , Qi 表示该样例隐变量 z 的某种分布,
∑zQi(z)=1,Qi(z)≥0(1)
如果z是连续性的,那么 Qi 是概率密度函数,需要将求和符号换成积分符号。比如,要讲班上的学生聚类,假设隐藏变量z是身高,那么Q_i就是连续的高斯分布,如果隐藏变量是男女,那么就是伯努利分布。不同样例的隐藏变量可能属于不同的分布。
构造极大似然函数 L(θ) 的下界:
L(θ)=∑i=1nlog∑zp(xi,z|θ)(2)
=∑i=1nlog∑zQi(z)p(xi,z|θ)Qi(z)(3)
≥∑i=1n∑zQi(z)logp(xi,z|θ)Qi(z)(4)
式(3),式(4)可以理解为:
f(Ez∼Qi[p(xi,z|θ)Qi(z)])≥Ez∼Qi[f(p(xi,z|θ)Qi(z))]
根据式(4), L(θ) 的下界和 θ , p(xi,z|θ) , Qi(z) 有关。
于是我们可以先固定 θ ,调整 p(xi,z|θ) , Qi(z) 的值来使下界不断提升,以逼近 L(θ) 的真实值。根据Jensen不等式,当随机变量 p(xi,z|θ)Qi(z) 为常数时,等式成立。即当
p(xi,z|θ)Qi(z)=c(5)
时,下界和 L(θ) 相等。
由式(5),式(1)可知,
Qi(z)=p(xi,z|θ)∑zp(xi,z|θ)=p(xi,z|θ)p(xi|θ)=p(z|xi,θ)
所以,只要 Qi(z) 为后验概率, L(θ) 的形式转换成(4),由于(4)的log中没有求和,这样的式子求导比较原来直接求 L(θ) 的导容易。此外,在 θ 固定为 θ∗ 时,只要 Qi(z) 为后验概率, L(θ∗) 与下界值相等。由于 L(θ∗) 一直大于等于下界,所以变换 θ 的值,使下界变大, L(θ) 也变大。
于是迭代过程为:第t次迭代的结果为 θt ,在接下来第t+1次迭代中,E步:当 Qi(z) 为 p(z|xi,θt) 时,下界最大, L(θ) 近似为下界;M步:对 θ 求导,使 L(θ) 增大。
根据个人理解,EM算法适用于包含隐变量,即样本可能含有多个分布的情况,迭代求出不同分布模型的参数 θ ,参见混合高斯模型的应用。
本文参考自李航的统计学习分析以及 JerryLead的博客,是本人的学习笔记,如有侵权,请告知,并感谢所有无私奉献的博主。