EM算法实验内容
一、基本原理
简介
EM算法又称期望最大化算法,是一种迭代算法,是在概率模型中寻找参数极大似然估计的算法,其中概率模型依赖于无法观测的隐含变量。它主要用于从含有隐含变量的数据中计算极大似然估计。是解决存在隐含变量优化问题的有效方法。
简单推导
1. JENSEN不等式
设fff是定义域为实数的函数,如果对于所有的实数xxx,f”(x)≥0f”(x)≥0f”(x)≥0,那么fff是凸函数。
Jensen不等式表述如下:
E(f(X))≥f(E(X))E(f(X))≥f(E(X))E(f(X))≥f(E(X))
特别地,如果fff是严格凸函数,那么E(f(X))=f(E(X))E(f(X))=f(E(X))E(f(X))=f(E(X))当且仅当,也就是说XXX是常量。
2. EM算法
(1)完整数据:
-
观测数据:观测到的随机变量XXX样本
X=(x1,...,xn)X=(x_1,...,x_n)X=(x1,...,xn) -
隐含变量:未观测到的随机变量ZZZ的值
Z=(z1,...zn)Z=(z_1,...z_n)Z=(z1,...zn) -
完整数据:包含观测到的随机变量XXX和隐含变量ZZZ的数据:Y=(X,Z)Y=(X,Z)Y=(X,Z)
Y=((x1,z1),...(xn,zn))Y=((x_1,z_1),...(x_n,z_n))Y=((x1,z1),...(xn,zn))
给定的训练样本是x1,x2,...,xnx_1,x_2,...,x_nx1,x2,...,xn,样例间独立,我们想找到每个样例隐含的类别zzz,能使得p(x,z)p(x,z)p(x,z)最大。p(x,z)p(x,z)p(x,z)的最大似然估计如下:
EM算法的思想是不断建立lll的下界(E-step),然后优化下界(M-step)。
对于每一个样例iii,让QiQ_iQi表示该样例隐含变量zzz的某种分布,QiQiQi满足
ΣzQi(z)=1,Qi(z)≥0ΣzQ_i(z)=1,Qi(z)≥0ΣzQi(z)=1,Qi(z)≥0
得到
这里运用JENSEN不等式,将(3)看成是θ\thetaθ的函数,θ\thetaθ又是模型里的参数,上述过程看成是对l(θ)l(\theta)l(θ)求下界的过程,所以(3)是参数θ\thetaθ的对数似然函数的下界。
等式成立的条件为:
ccc为常数,不依赖于ziz^izi。对此式子做进一步推导,我们知道ΣzQi(zi)=1ΣzQ_i(z^i)=1ΣzQi(zi)=1
则
Σzp(xi,zi;θ)=cΣ_zp(x^i,z^i;θ)=cΣzp(xi,zi;θ)=c
推出下式
3. 算法步骤
- E-step:固定θ\thetaθ后,选择隐含变量ziz^izi的概率分布
- 在给定Qi(zi)Q_i(z^i)Qi(z