作者:禅与计算机程序设计艺术
1.简介
最近几年无监督机器学习领域的研究非常火爆,这其中包括聚类、生成模型、密度估计等多种方法。而最为经典的无监督学习方法之一是Expectation-Maximization(EM)算法。在实际应用中,EM算法是一种快速且有效的推理算法,被广泛用于很多领域,如混合高斯模型、语音识别、图像分割、神经网络参数初始化等方面。因此,了解一下EM算法的原理及其工作方式对于理解和运用这一方法十分重要。同时,掌握相关算法的细节还可以帮助我们更好地理解应用场景并进行改进。本文将对EM算法及其衍生算法在自然语言处理、文本聚类、主题模型和推荐系统等多个领域的发展状况做一个简单的介绍,并尝试从应用角度讨论一些关键问题。最后,本文也会给出一些已有的开源实现或论文给大家参考。
一、EM算法概述
EM算法(Expectation-Maximization algorithm)是20世纪统计学的一个重要分支,是一种迭代算法,用来寻找极值点。其基本思想是:首先,假设模型参数服从先验分布;然后,利用该模型进行E步计算期望;最后,利用极大似然估计或梯度下降法优化参数,使得模型参数逼近真实参数。由于计算量小,收敛速度快,所以EM算法在很多实际问题上都得到了广泛的应用。例如,混合高斯模型就是通过EM算法估计混合成分个数以及相应的权重、均值和协方差矩阵。
(1)基本公式
EM算法的算法流程可以总结如下:
- 初始化:根据已知的样本点集,确定模型的参数,即可以直接使用样本数据进行初始化;也可以选择某些先验知识来作为初始化。
- E步: