文章目录
- 5. EM 算法
- EM算法简介
- EM算法流程
- 部分常见问题
- EM算法收敛程度取决于什么?
- EM算法是否一定收敛?
- 如果EM算法收敛,能否保证收敛到全局最大值?
- EM算法应用
5. EM 算法
EM算法简介
EM(Expectation-Maximum)算法,也称为期望最大化算法。
EM算法是最常见的隐变量估计方法,在机器学习中有极广泛的用途,例如常被用用来学习:高斯混合模型(GMM)的参数;隐式马尔科夫算法(HMM);LDA主题模型的主分推断等。
EM算法是一种迭代优化策略,由于它的计算方法中每一次迭代都分两步,一个为期望步(E步),一个为极大步(M步),所以算法被称为EM算法。
EM算法受缺失思想的影响,最初是为了解决数据缺失情况下的参数估计问题。
其基本思想是:
- 首先根据已经给出的观测数据,估计出模型参数的值;
- 然后再依据上一步估计出的参数值,估计缺失数据的值;
- 再根据估计出的缺失数据,加上之前已经观测到的数据,重新再对参数值进行估计;
- 最后反复迭代,直到最后收敛,迭代结束。
EM算法流程
输入: 观察到的数据,联合分布
,条件分布
,最大迭代次数
。
输出: 模型参数
算法步骤:
(1) 随机初始化模型参数的初值
。
(2)
- E步:计算联合分布的条件概率期望:
- M步:极大化
,得到
- 如果
已经收敛,则算法结束。否则将继续进行E步和M步进行迭代。
部分常见问题
EM算法收敛程度取决于什么?
EM算法对初始值敏感,聚类结果随不同的初始值而波动较大。总的来说,EM算法收敛的优劣成都很大程度上取决于其初始参数。
EM算法是否一定收敛?
EM算法可以保证收敛到一个稳定点,即EM算法一定是收敛的。
如果EM算法收敛,能否保证收敛到全局最大值?
EM算法可以保证收敛到一个稳定点,但是不能保证收敛到全局的极大值点,因为它是局部最优的算法。
当然,如果我们的优化函数是凸的,则EM算法可以保证收敛到全局最大值,这点和梯度下降这样的迭代算法相同。
EM算法应用
- K-Means聚类:
- K-Means聚类时,每个聚类簇的质心是隐含数据。
- 假设K个初始化质心,即EM算法的E步
- 计算得到每个样本最近的质心,并把样本聚类到最近的这个质心,即EM算法的M步。
- 重复这个E步和M步,直到质心不再变化为止。
- 高斯混合模型(GMM)