【机器学习】期望最大化(EM)算法及其应用

【背景】
当拥有缺失数据的时候,可以迭代地做参数估计,例如高斯混合模型(GMM)。
【机器学习】期望最大化(EM)算法及其应用
如图所示,我们要求对高斯混合模型的参数的最大似然估计。对于每一个数据点,它是由两个均值和方差未知的高斯分布来衡量的,并且该数据点分别以不同的未知的概率服从于这两个高斯分布。我们的目标就是估计每一个高斯分布的参数和每一个数据点以多大的概率服从于该高斯分布。

【EM算法的直观解释】
对于上面陈述的问题,如果我们知道每一个数据点属于第一个高斯分布还是第二个高斯分布,问题就会变得比较简单。所以先假定对每个数据点引入标签z,也就是假定该数据点是属于第一个高斯组件还是第二个高斯组件,该标签被叫做隐变量,也叫做未观察或者缺失变量。知道了属于每一个高斯组件的数据点以后,就可以估计出每一个高斯组件的均值和方差。估计出每一个高斯分布的均值和方差以后,就可以再去看每一个数据点到底应该在第一个高斯组件还是第二个高斯组件,并重新分配调整。然后再估计参数,再调整,一步步地迭代。当然,这里的某一个数据点属于某一个高斯组件是有一定概率的,我们为了方便描述和理解,所以做出了上述的假设和阐述。
总的来说,E步就是用当前的参数去计算一个数据点标签的分布,M步就是用当前标签分布的猜测去升级参数。

【EM算法推导】

假设有m个数据点,对每个数据点引入标签z,p(x,z;θ)代表该数据点在标签为z=i下的似然估计,其中,i=1,2,…,C,C为总的高斯组件的个数。
【机器学习】期望最大化(EM)算法及其应用
这里推出的不等式是根据杰森(Jensen)不等式的性质得出的:
【机器学习】期望最大化(EM)算法及其应用
上式可以自己画图理解,也就是求和再log的值大于log再求和的值。
然后,有:
【机器学习】期望最大化(EM)算法及其应用
【机器学习】期望最大化(EM)算法及其应用

【EM算法的优点】

  • 没有设置优化步长的问题,比如随机梯度下降的最优解和步长的设置有关,而EM算法不涉及步长
  • 直接在参数空间中工作,因此参数的约束就直接满足
  • 一般训练速度很快

【EM算法的缺点】

  • 不能确定模型的结构(组件的个数、图结构)
  • 不能找到全局最优解,由于可能有多个高斯组件,所以并不是单峰的,能否找到全局最优解与初始化状态有很大的关系
  • 不能总是有很好的升级形式
  • 不能避免计算问题,计算期望时的采样方法计算量非常大

【实践问题】

  1. 初始化:可以使用数据的平均值+随机,也可以使用k-means聚类的结果作为初始值。

  2. 终止条件:可以设置最大迭代次数,也可以根据对数似然估计的变化情况或者参数的变化情况来决定是否终止

  3. 在协方差矩阵中注入噪音,可以阻止崩溃

上一篇:EM算法实践


下一篇:最大熵和EM算法(机器学习)