本文内容主要总结自coursera课程Bayesian Methods for Machine Learning
本文内容延续自《贝叶斯网络(1)- 基础概念》
https://blog.youkuaiyun.com/qq_36080693/article/details/80160852
一、基础知识
1、Expectation Maximization
鸡和蛋问题(以高斯混合分布为例)
(1)如果我们有了每一个高斯分布的参数,那么我们就可以计算出,训练集X最大概率属于哪一个分布
(2)如果我们知道训练集X分别属于哪一个分布,那么我们就可以计算出每一个高斯分布的参数
鸡和蛋的问题,让我想到了推荐算法,那么同样的,我们引入了协同算法
2、协同算法
协同算法的计算过程,总体来说是一个找到一个虚拟变量分布,逐渐拟合实际变量分布的某一部分特征的过程
(1)E-step:找到最佳的虚拟变量分布
在这一步,重点是通过已有的相关系数矩阵(虚拟变量和实际变量之间),以及原虚拟变量分布参数,计算出更合适的虚拟变量分布参数。(先计算X的分布概率q,再根据X的分布概率计算虚拟变量分布)
(2)M-step:找到最佳的相关系数矩阵
根据新的虚拟变量分布参数,计算出更合适的最佳相关系数矩阵。
3、相对熵
相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),对于连续的随机变量,定义为:相对熵是两个概率分布差别的非对称性的度量。
计算两个正态分布的相对熵,体会一下:
4、更普遍的版本
EM协同算法版本如下:
1、计算每一个X属于哪一个分布的概率;虚拟变量分布q为实际变量分布p的共轭分布
2、按图示公式计算得到相关系数矩阵
3、和GMM的对比
5、GMM代码实例
6、什么时候需要使用EM算法
1、各变量之间具有相关性
2、变量具有很多缺失值需要处理
3、可以在过程中拟合一些复杂的变量限制条件
4、PCA和Kmeans都属于特殊的EM计算