c语言em算法,EM算法

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

在 最大似然估计 这篇文章中,我们介绍了一种通过样本来估计模型参数的方法。现在,我们把问题变得复杂一些,假设 $lbrace x_1, x_2, …, x_n rbrace$ 来自两个不同的正态分布 $N(mu_1, sigma_1^2)$ 和 $N(mu_2, sigma_2^2)$,如果我们知道每一个样本来自哪个分布,那么估计参数是一件容易的事情,使用最大似然估计方法就可以了。但不幸的是,我们不知道每个样本来自哪个分布,也就是说,每个样本除了自身之外还有一个隐变量 $z_i$, $z_i(j) = 1$ 表示样本 $x_i$ 来自第 $j$ 个正态分布,否则 $z_i(j) = 0$。为了解决这个问题,我们可以使用EM算法。

EM算法

EM(Expectaion-Maximum)算法也称期望最大化算法,是机器学习领域非常重要的算法之一,常被用来解决存在隐含变量的优化问题。EM算法的思想就是,如果有两个参数A和B未知,但是如果知道了A就很容易估算B的值,同样知道了B的值也很容易估算A的值,那么可以考虑先赋予A某一个初始值,以此为基础估算B的值,并以B的值为基础重新估算A的值;如此重复,直到收敛为止。

回到上面的例子,我们希望找到一个参数 $theta$, 使得该序列发生的概率最大。我们可以先写出对数似然函数

与最大似然不同的是,这里多了隐变量 $z_i$。我们假设隐变量 $z_i$ 符合某种分布 $Q_i$, $Q_i(z_i) geq 0$ 且 $sum_{z_i} Q_i(z_i) = 1$。上述对数似然可以改写为

这一步可以看做是求了 $L(theta)$ 的一个下界,这个下界主要由 $Q_i(z_i)$ 和 $p(x_i,z_i vert theta)$ 确定。我们可以通过调整 $theta$ 来不断提高这个下界的值,直到等号成立。那么等号什么时候成立呢?根据Jensen不等式,等号成立的条件是 $frac{p(x_i, z_i vert theta)}{Q_i(z_i)}$ 为常数,即

由于 $sum_{z_i} Q_i(z_i) = 1$, 可以很容易得到

到这一步,我们解决了 $Q_i(z_i)$ 如何选择的问题,这一步就是E步,确定了 $L(theta)$ 的下界。接下来需要求解 $theta$ 以最大化这个下界,这一步就是M步。EM算法的过程总结如下:initialize $theta$

repeat until convergence $lbrace$E-step:M-step:

$rbrace$

在M步,由于 $Q_i(z_i)$ 已经确定,故优化目标可以简化为

EM算法收敛性思考

EM算法是一个迭代算法,算法是否收敛、能否收敛到最大值关系到算法是否正确。为了证明算法的收敛性,我们需要证明在迭代的过程中,对数似然函数的值一直在增大,即

上述两式相减有

由于 $theta^{j+1}$ 使得 $L(theta, theta^j)$ 极大,因此有

对于后一部分有

故有

从而证明EM算法是收敛的,但是并不能保证收敛到全局最大值,可能只是局部极大值,这点和梯度下降比较相似。当然如果优化目标 $L(theta, theta^j)$ 是凸函数,EM算法可以保证优化到全局最大值。

参考

[1]. https://www.cnblogs.com/pinard/p/6912636.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值