机器学习之EM算法

EM算法基本思想

最大期望算法(Expectation-Maximization),是一类通过迭代进行极大似然估计的优化算法,通常作为牛顿迭代法的替代,用于对包含隐变量或缺失数据的概率模型进行参数估计.
一般是两个步骤交替进行计算:

  • 第一步是计算期望(E),利用对隐变量的现有估计值,计算其最大似然估计值
  • 第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值.
  • M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行.

EM算法推导

对于 m m m 个样本观察数据 x = ( x 1 , x 2 , . . . , x m ) x=(x^{1},x^{2},...,x^{m}) x=(x1,x2,...,xm) ,现在想找出样本的模型参数 θ \theta θ ,其极大
化模型分布的对数似然函数为:
在这里插入图片描述
如果得到的观察数据有未观察到的隐含数据 z = ( z ( 1 ) , z ( 2 ) , . . . z ( m ) ) z=(z^{(1)},z^{(2)},...z^{(m)}) z=(z(1),z(2),...z(m)) ,极大化模型分布的对数似然函数则为:
在这里插入图片描述
由于上式不能直接求出 θ \theta θ ,采用缩放技巧:
在这里插入图片描述
上式用到了 Jensen 不等式:
在这里插入图片描述
并且引入了一个未知的新分布 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i))
此时,如果需要满足 Jensen 不等式中的等号,所以有:
在这里插入图片描述
由于 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i)) 是一个分布,所以满足
在这里插入图片描述
综上,可得:
在这里插入图片描述

如果  Q i ( z ( i ) ) = P ( z ( i ) ∣ x ( i ) ; θ ) Q_i(z^{(i)}) = P( z^{(i)}|x^{(i)};\theta) Qi(z(i))=P(z(i)x(i);θ) 则第 (1) 式是我们的包含隐藏数据的对数似然的一个下界。如果我们能极大化这个下界,则也在尝试极大化我们的对数似然。即我们需要最大化下式:
在这里插入图片描述
简化得:(去掉分母中不含参数 θ \theta θ的部分)
在这里插入图片描述
以上即为 EM 算法的 M 步, ∑ z ( i ) Q i ( z ( i ) ) l o g P ( x ( i ) , z ( i ) ; θ ) \sum\limits_{z^{(i)}}Q_i(z^{(i)})log{P(x^{(i)}, z^{(i)};\theta)} z(i)Qi(z(i))logP(x(i),z(i);θ) 可理解为  l o g P ( x ( i ) , z ( i ) ; θ ) logP(x^{(i)}, z^{(i)};\theta) logP(x(i),z(i);θ) 基于条件概率分布  Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i)) 的期望.以上即为 EM 算法中 E 步和 M 步的具体数学含义。

图解EM算法

考虑上一节中的( a )式,表达式中存在隐变量,直接找到参数估计比较困难,通过 EM 算法迭代求解
下界的最大值到收敛为止。
在这里插入图片描述
图片中的紫色部分是我们的目标模型 p ( x ∣ θ ) p(x|\theta) p(xθ) ,该模型复杂,难以求解析解,为了消除隐变量的影响,我们可以选择一个不包含 z ( i ) z^{(i)} z(i) 的模型 r ( x ∣ θ ) r(x|\theta) r(xθ) ,使其满足条件 r ( x ∣ θ ) ⩽ p ( x ∣ θ ) r(x|\theta)\leqslant p(x|\theta) r(xθ)p(xθ) 
求解步骤如下:

  • 选取 θ 1 \theta_1 θ1 ,使得 r ( x ∣ θ 1 ) = p ( x ∣ θ 1 ) r(x|\theta_1) = p(x|\theta_1) r(xθ1)=p(xθ1) ,然后对此时的 r r r 求取最大值,得到极值点 θ 2 \theta_2 θ2 ,实现参数的更新。
  • 重复以上过程到收敛为止,在更新过程中始终满足 r ⩽ p r \leqslant p rp.

EM算法流程

输入:观察数据 x = ( x ( 1 ) , x ( 2 ) , . . . x ( m ) ) x=(x^{(1)},x^{(2)},...x^{(m)}) x=(x(1),x(2),...x(m)) ,联合分布 p ( x , z ; θ ) p(x,z ;\theta) p(x,z;θ) ,条件分布 p ( z ∣ x ; θ ) p(z|x; \theta) p(zx;θ) ,最大迭代次数 J J J

  • 随机初始化模型参数 θ \theta θ 的初值 θ 0 \theta^0 θ0
  • f o r   j   f r o m   1   t o   j for \ j \ from \ 1 \ to \ j for j from 1 to j :
    • a) E 步。计算联合分布的条件概率期望:
      在这里插入图片描述
    • b) M 步。极大化 L ( θ , θ j ) L(\theta, \theta^{j}) L(θ,θj) ,得到 θ j + 1 \theta^{j+1} θj+1:
      在这里插入图片描述
    • 如果 θ j + 1 \theta^{j+1} θj+1 收敛,则算法结束。否则继续回到步骤 a )进行 E 步迭代。

输出:模型参数 θ \theta θ

Jensen不等式

定义

设 f 是定义域为实数的函数,如果对所有的实数 x ,f(x) 的二阶导数都大于0,那么 f 是凸函数。

Jensen不等式定义如下
如果 f 是凸函数,X是随机变量,那么: E [ f ( X ) ] ≥ f ( E [ X ] ) E[f(X)] \geq f(E[X]) E[f(X)]f(E[X]) 。当且仅当 X 是常量时,该式取等号。其中,E(X)表示X的数学期望。

注:Jensen不等式应用于凹函数时,不等号方向反向。当且仅当 x 是常量时,该不等式取等号。
在这里插入图片描述
实线f表示凸函数,X是随机变量,有0.5的概率是a,有0.5的概率是b。X的期望值就是a和b的中值,从图中可以看到 E [ f ( X ) ] ≥ f ( E [ X ] ) E[f(X)] \geq f(E[X]) E[f(X)]f(E[X]) 成立。

EM算法是否一定收敛?

结论:EM算法可以保证收敛到一个稳定点,即EM算法是一定收敛的。
证明参考

如果EM算法收敛,能否保证收敛到全局最大值?

结论:EM算法可以保证收敛到一个稳定点,但是却不能保证收敛到全局的极大值点,因此它是局部最优的算法,当然,如果我们的优化目标是凸的,则EM算法可以保证收敛到全局最大值,这点和梯度下降法这样的迭代算法相同。

对EM算法总结

EM算法是迭代求解最大值的算法,同时算法在每一次迭代时分为两步,E步和M步。一轮轮迭代更新隐含数据和模型分布参数,直到收敛,即得到我们需要的模型参数。

一个最直观了解EM算法思路的是K-Means算法。在K-Means聚类时,每个聚类簇的质心是隐含数据。我们会假设K个初始化质心,即EM算法的E步;然后计算得到每个样本最近的质心,并把样本聚类到最近的这个质心,即EM算法的M步。重复这个E步和M步,直到质心不再变化为止,这样就完成了K-Means聚类。当然,K-Means算法是比较简单的,高斯混合模型(GMM)也是EM算法的一个应用。

参考文献1
参考文献2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值