自然语言处理 | EM算法

图灵汇官网

吴军博士在其著作《数学之美》中将EM算法赞誉为“上帝的算法”。这一算法在机器学习领域应用广泛,特别是在K-Means聚类算法和鲍姆-韦尔奇算法等方面。

鲍姆-韦尔奇算法在自然语言处理和语音识别领域有着广泛应用。在许多实际场景中,我们只能观察到输出的序列,而无法直接观察到隐藏的状态序列。在这种情况下,我们需要利用鲍姆-韦尔奇算法来解决这一问题。

鲍姆-韦尔奇算法的核心思想是: 1. 初始化各个参数的值。这些参数的初始值并不重要,但必须能够生成所需的观测序列。 2. 使用这些参数,构建一个初步的隐马尔可夫模型。 3. 利用这个模型生成所有可能的观测序列及其概率。 4. 基于这些观测序列和概率,逐步迭代计算模型参数,直到模型收敛到一个局部最优解。

鲍姆-韦尔奇算法本质上是EM算法(期望最大化算法)的一种实现,而EM算法又是在极大似然估计法基础上发展而来。因此,我们先从极大似然估计法开始介绍。

极大似然估计法

极大似然估计法的基本原理是:当模型已经确定,但参数未知时,可以通过最大化似然函数来估计这些参数。具体来说,假设所有样本都是独立同分布的,那么似然函数可以表示为: [ L(theta) = prod{i=1}^{n} P(xi | theta) ]

为了简化计算,通常对似然函数取对数,得到对数似然函数: [ ln L(theta) = sum{i=1}^{n} ln P(xi | theta) ]

然后,通过对参数求导并令导数为零,求得最大似然估计值。

示例:抛硬币

假设我们抛10次硬币,得到的结果是:1101110011。我们可以利用极大似然估计法来估计硬币的正面向上的概率。

令 ( x ) 表示正面朝上的次数,则 ( n - x ) 表示反面朝上的次数。设硬币正面向上的概率为 ( p ),则似然函数为: [ L(p) = p^x (1-p)^{n-x} ]

对数似然函数为: [ ln L(p) = x ln p + (n-x) ln (1-p) ]

求导得: [ frac{d}{dp} ln L(p) = frac{x}{p} - frac{n-x}{1-p} ]

令导数等于零,解得: [ p = frac{x}{n} ]

这样我们就得到了硬币正面向上的概率。

EM算法

EM算法是一种迭代优化策略,它分为期望步(E步)和极大步(M步)。EM算法最初是为了处理数据缺失情况下的参数估计问题,其详细理论由Dempster、Laird和Rubin在1977年的论文中提出。

EM算法的基本思想是: 1. 根据现有的观测数据,估计出模型参数的初始值。 2. 根据这些参数值估计缺失数据的值。 3. 利用估计出的缺失数据和观测数据重新估计参数值。 4. 反复迭代,直到参数值收敛。

示例:抛硬币

假设我们有两枚硬币A和B,每次试验前随机选择一枚硬币,然后抛10次,重复5次。我们不知道每次试验选择A和B的概率,也不清楚这两枚硬币正面朝上的概率。EM算法可以解决这个问题。

  1. E步:根据当前参数估计每个硬币的选择概率和每枚硬币正面朝上的概率。
  2. M步:利用E步得到的估计值重新计算参数,直到参数值收敛。

EM算法的应用远不止于此,它在许多领域都有广泛的应用。对于感兴趣的研究者,可以进一步查阅相关资料。

参考资料: 1. 知乎,人人都懂EM算法。 https://zhuanlan.zhihu.com/p/36331115 2. 知乎,怎么通俗易懂地解释EM算法并且举个例子? https://www.zhihu.com/question/27976634/answer/153567695 3. 李航,《统计学习方法》 4. Do, C. B., & Batzoglou, S. (2008). What is the expectation maximization algorithm? Nature biotechnology, 26(8), 897.

本文来源: 图灵汇 文章作者: 无人机市场