简述下EM算法的流程 - 知乎

10/18 09:48
阅读数 11

问题引入

大家都知道Kmeans算法,可大家不知道的是其核心的思想其实和EM的求解思路是等价的。这里我们回顾喜下EM算法,这个算法的求解过程一般是怎么样的呢?

问题解答

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

1)随机初始化模型参数\theta的初值\theta^0

2)for \ j  \ from \ 1  \ to  \ j

​ a) E步。计算联合分布的条件概率期望:

Q_i(z^{(i)}) = P( z^{(i)}|x^{(i)}, \theta^{j}) \\L(\theta, \theta^{j}) = \sum\limits_{i=1}^m\sum\limits_{z^{(i)}}P( z^{(i)}|x^{(i)}, \theta^{j})log{P(x^{(i)}, z^{(i)};\theta)} \\

​ b) M步。极大化L(\theta, \theta^{j}),得到\theta^{j+1}:

\theta^{j+1} = \mathop{\arg\max}_\theta L(\theta, \theta^{j}) \\

​ c) 如果\theta^{j+1}收敛,则算法结束。否则继续回到步骤a)进行E步迭代。

输出:模型参数\theta​

欢迎关注我的公众号,第一时间追踪相关面试题和总结:百面机器学习。回复干货获取相关资料和面试题总结(定期更新)。

参考

[1] EM算法原理 - coshaho - 博客园
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部