文章目录

  • 5. EM 算法
  • EM算法简介
  • EM算法流程
  • 部分常见问题
  • EM算法收敛程度取决于什么?
  • EM算法是否一定收敛?
  • 如果EM算法收敛,能否保证收敛到全局最大值?
  • EM算法应用


5. EM 算法

EM算法简介

EM(Expectation-Maximum)算法,也称为期望最大化算法

EM算法是最常见的隐变量估计方法,在机器学习中有极广泛的用途,例如常被用用来学习:高斯混合模型(GMM)的参数;隐式马尔科夫算法(HMM);LDA主题模型的主分推断等。

EM算法是一种迭代优化策略,由于它的计算方法中每一次迭代都分两步,一个为期望步(E步),一个为极大步(M步),所以算法被称为EM算法。

EM算法受缺失思想的影响,最初是为了解决数据缺失情况下的参数估计问题。

基本思想是:

  • 首先根据已经给出的观测数据,估计出模型参数的值;
  • 然后再依据上一步估计出的参数值,估计缺失数据的值;
  • 再根据估计出的缺失数据,加上之前已经观测到的数据,重新再对参数值进行估计;
  • 最后反复迭代,直到最后收敛,迭代结束。

EM算法流程

输入: 观察到的数据em 数据挖掘算法 em算法的用途_概率论,联合分布em 数据挖掘算法 em算法的用途_算法_02,条件分布em 数据挖掘算法 em算法的用途_算法_03,最大迭代次数em 数据挖掘算法 em算法的用途_概率论_04

输出: 模型参数em 数据挖掘算法 em算法的用途_迭代_05

算法步骤:

(1) 随机初始化模型参数em 数据挖掘算法 em算法的用途_迭代_05的初值em 数据挖掘算法 em算法的用途_算法_07

(2) em 数据挖掘算法 em算法的用途_概率论_08

  • E步:计算联合分布的条件概率期望:

em 数据挖掘算法 em算法的用途_迭代_09

em 数据挖掘算法 em算法的用途_算法_10

  • M步:极大化em 数据挖掘算法 em算法的用途_机器学习_11,得到em 数据挖掘算法 em算法的用途_算法_12

em 数据挖掘算法 em算法的用途_算法_13

  • 如果em 数据挖掘算法 em算法的用途_算法_14已经收敛,则算法结束否则继续进行E步和M步进行迭代。

部分常见问题

EM算法收敛程度取决于什么?

EM算法对初始值敏感,聚类结果随不同的初始值而波动较大。总的来说,EM算法收敛的优劣成都很大程度上取决于其初始参数

EM算法是否一定收敛?

EM算法可以保证收敛到一个稳定点,即EM算法一定是收敛的

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

EM算法可以保证收敛到一个稳定点,但是不能保证收敛到全局的极大值点,因为它是局部最优的算法。

当然,如果我们的优化函数em 数据挖掘算法 em算法的用途_机器学习_15是凸的,则EM算法可以保证收敛到全局最大值,这点和梯度下降这样的迭代算法相同。

EM算法应用

  • K-Means聚类:
  • K-Means聚类时,每个聚类簇的质心是隐含数据。
  • 假设K个初始化质心,即EM算法的E步
  • 计算得到每个样本最近的质心,并把样本聚类到最近的这个质心,即EM算法的M步。
  • 重复这个E步和M步,直到质心不再变化为止。
  • 高斯混合模型(GMM)