EM算法的简单理解

本博客是个人学习EM算法的总结性想法,写的目的主要是梳理关于EM算法的思路。由于篇幅和时间问题,有些公式推导部分没有写全。学习参考李航的《统计学习方法》和b站up"shuhuai008"的机器学习视频。在此安利up主"shuhuai008"的视频,推导非常详细,而且该up主对机器学习各种算法和思想理解的特别到位,是我学习机器学习算法中遇到的视频教材,准备有时间二刷,然后手动推导一遍里面的公示。值得一看,对于我这种本一之后很少接触数学的小白,有很大的启发意义。

EM算法是一种迭代算法,其存在是为了解决求解含有隐变量的概率模型的参数的问题。对于不含隐变量的概率模型(例如普通高斯模型),使用极大似然估计(求偏导)的方法就可以求得概率模型中所含参数的解析解。如果含有隐变量,模型无法得到参数的解析解,在这种时候,就需要通过一些方法得到模型的近似解,EM算法就是这么一种方法,通过不断的迭代,让t+1步的参数值相比于t步的参数值更接近真实结果,从而得到关于模型参数的近似解。模型参数求出,模型就可以确定了,我们的问题也可以随之解决。因此,虽然EM算法经常和HMM、CRF一起出现。但是两者性质并不相同,EM是一种参数求解算法。HMM和CRF是一种概率模型的建模形式。这个关系类似于神经网络和优化算法的关系。

定义问题
Y Y Y为观测变量, P ( Y ∣ θ ) P(Y|\theta ) P(Yθ)为问题的似然函数。
P ( Y ∣ θ ) = ∑ Z P ( Z ∣ θ ) P ( Y ∣ Z , θ ) P(Y|\theta )=\sum_{Z}^{ }P(Z|\theta )P(Y|Z,\theta) P(Yθ)=ZP(Zθ)P(YZ,θ),其中 Z Z Z为隐含变量。和Y模型相关的参数是 θ \theta θ,Z是为了求解关于Y的模型引入的隐变量,隐变量Z不可观测。因此,为了求解模型 P ( Y ∣ θ ) P(Y|\theta ) P(Yθ),需要使用积分的方法将含有Z的参数消掉,也就是公式中表示的关于Z求和的过程。
θ ^ = arg ⁡ max ⁡ θ    l o g P ( Y ∣ θ ) \hat{\theta }=\mathop{\arg\max}_{\theta} \ \ logP(Y|\theta ) θ^=argmaxθ  logP(Yθ)

EM算法
EM算法通过迭代求 L ( θ ) = l o g P ( Y ∣ θ ) L(\theta )=logP(Y|\theta ) L(θ)=logP(Yθ)的极大似然估计。EM算法包含两步:E步,求期望;M步,求极大化。EM算法的步骤如下(抄自李航统计学习方法)。

输入:观测变量数据Y,隐变量数据Z,联合分布 P ( Y , Z ∣ θ ) P(Y,Z|\theta ) P(Y,Zθ),条件分布 P ( Z ∣ Y , θ ) P(Z|Y,\theta) P(ZY,θ)
输出:模型参数 θ \theta θ
(1) 选择参数的初值 θ ( 0 ) \theta ^{(0)} θ(0),开始迭代;
(2) E步:记 θ ( i ) \theta ^{(i)} θ(i)为第i次迭代参数 θ \theta θ的估计值,在第i+1次迭代的E步,计算
Q ( θ , θ ( i ) ) = E z [ l o g P ( Y , Z ∣ θ ) ∣ Y , θ ( i ) ] = ∑ Z l o g P ( Y , Z ∣ θ ) P ( Z ∣ Y , θ ( i ) ) Q(\theta ,\theta ^{(i)})=E_{z}[logP(Y,Z|\theta )|Y,\theta ^{(i)}]=\sum_{Z}^{ }logP(Y,Z|\theta)P(Z|Y,\theta ^{(i)}) Q(θ,θ(i))=Ez[logP(Y,Zθ)Y,θ(i)]=ZlogP(Y,Zθ)P(ZY,θ(i))
这里, P ( Z ∣ Y , θ ( i ) ) P(Z|Y,\theta ^{(i)}) P(ZY,θ(i))是在给定观测数据Y和当前的参数估计 θ ( i ) \theta ^{(i)} θ(i)下隐变量数据Z的条件改了分布;
(3) M步:求使 Q ( θ , θ ( i ) ) Q(\theta ,\theta ^{(i)}) Q(θ,θ(i))极大化的 θ \theta θ,确定第i+1次迭代的参数的估计值 θ ( i + 1 ) \theta ^{(i+1)} θ(i+1) θ ( i + 1 ) = arg ⁡ max ⁡ θ Q ( θ , θ ( i ) ) \theta ^{(i+1)}=\mathop{\arg\max}_{\theta}Q(\theta ,\theta ^{(i)}) θ(i+1)=argmaxθQ(θ,θ(i))
(4) 重复第(2)步和第(3)步,直到收敛。

其中 Q ( θ , θ ( i ) ) Q(\theta ,\theta ^{(i)}) Q(θ,θ(i))是EM算法的核心,称为Q函数。此外,求期望在数学里就是求积分。可表示为 E z P ( X ) = ∫ z P ( z ) P ( X ) d z E_{z}P(X)=\int_{z}^{ }P(z)P(X)dz EzP(X)=zP(z)P(X)dz。是估计的下界。

算法的证明过程可以分成两种,一种是从 l o g P ( Y ∣ θ ) = l o g P ( X , Z ∣ θ ) − l o g P ( Z ∣ X , θ ) logP(Y|\theta )=logP(X,Z|\theta )-logP(Z|X,\theta ) logP(Yθ)=logP(X,Zθ)logP(ZX,θ)出发,两边同时求期望,得到 l o g P ( Y ∣ θ ) logP(Y|\theta ) logP(Yθ)的下界ELBO。ELBO变大, l o g P ( Y ∣ θ ) logP(Y|\theta ) logP(Yθ)也会变大,逐步将ELBO变大并求其最大值,可以让参数 θ \theta θ得到最优解。这里的ELBO就是Q函数。
另外一种证明方法是用Jensen不等式证明。Jensen不等式为 f ( E ) ≥ E [ f ] f(E)\geq E[f] f(E)E[f],先求期望,再求函数值 ≥ \geq 先求函数值,再求期望。用Jessen不等式证明过程相较于第一种方法更简单。

EM算法的变种
狭义上的EM算法是先求期望,再求最大值。广义上的EM算法是
E-step: q t + 1 = arg ⁡ max ⁡ q L ( q , θ ( t ) ) q^{t+1}=\mathop{\arg\max}_{q} L(q,\theta ^{(t)}) qt+1=argmaxqL(q,θ(t))
M-step: θ t + 1 = arg ⁡ max ⁡ θ L ( q t + 1 , θ ) \theta ^{t+1}=\mathop{\arg\max}_{\theta } L(q^{t+1},\theta ) θt+1=argmaxθL(qt+1,θ)
其中q为关于Z的概率分布。整个过程可以描述为固定 θ \theta θ,求q。固定q,求 θ \theta θ。优化的过程类似于坐标上升法(SMO),其核心思想也是固定一个或两个参数,再求其余参数。

EM算法的应用-混合高斯模型
混合高斯模型是描述多个高斯加权平均值的生成模型。其可以描述如下:
P ( X ) = ∑ k = 1 K α k N ( μ k , ∑ k ) , ∑ k = 1 K α k = 1 P(X)=\sum_{k=1}^{K}\alpha _{k}N(\mu_{k},\sum _{k}), \sum_{k=1}^{K}\alpha _{k}=1 P(X)=k=1KαkN(μk,k),k=1Kαk=1
直接使用MLE算法,无法求得参数的解析解。所以使用EM算法,求解参数值。具体的迭代公示,根据Q函数,结合GMM概率分布的特点可以得到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值