前言
近似推断是统计学和机器学习中一个至关重要的领域,尤其在处理复杂模型和不完全数据时显得尤为重要。期望最大化( Expectation Maximization \text{Expectation Maximization} Expectation Maximization,简称 EM \text{EM} EM)算法是近似推断中的一种重要方法,它专门用于解决含有隐变量的参数估计问题。在实际应用中,我们常常面临数据不完整或属性缺失的情况,这时传统的参数估计方法便显得力不从心。而 EM \text{EM} EM算法通过迭代的方式,巧妙地利用现有数据对隐变量进行估计,并据此优化模型参数,从而为我们提供了一种有效的解决方案。
序言
EM \text{EM} EM算法的核心思想在于其两个交替进行的步骤: E-step \text{E-step} E-step(期望步骤)和 M-step \text{M-step} M-step(最大化步骤)。在 E-step \text{E-step} E-step中,我们根据当前的参数估计值,计算出隐变量的期望值;而在 M-step \text{M-step} M-step中,我们则利用这些期望值来重新估计模型参数,以最大化似然函数。这两个步骤不断迭代,直至收敛至最优解。这种迭代优化的方式使得 EM \text{EM} EM算法在处理复杂模型和不完全数据时具有显著的优势。
期望最大化
-
我们介绍的第一个最大化下界 L \mathcal{L} L 的算法是期望最大化 ( expectation maximization, EM \text{expectation maximization, EM} expectation maximization, EM) 算法。
- 在潜变量模型中,这是一个非常热门的训练算法。
- 在这里我们描述 Neal and Hinton (1999) \text{Neal and Hinton (1999)} Neal and Hinton (1999) 所提出的 EM \text{EM} EM算法。
- 与大多数我们在本章中介绍的其他算法不同的是, EM \text{EM} EM并不是一个近似推断算法,但是是一种能够学到近似后验的算法。
-
EM \text{EM} EM算法包含了交替进行两步运算直到收敛的过程:
- E \textbf{E} E步 ( expectation step \text{expectation step} expectation step):
- 令 θ ( 0 ) \boldsymbol{\theta}^{(0)} θ(0) 表示在这一步开始时的参数值。
- 对任何我们想要训练的(对所有的或者 minibatch \text{minibatch} minibatch数据均成立)索引为 i i i 的训练样本 v ( i ) \boldsymbol{v}^{(i)} v(i) 令 q ( h ( i ) ∣ v ) = p ( h ( i ) ∣ v ( i ) ; θ ( 0 ) ) q(\boldsymbol{h}^{(i)} \mid \boldsymbol{v}) = p(\boldsymbol{h}^{(i)} \mid \boldsymbol{v}^{(i)}; \boldsymbol{\theta}^{(0)}) q(h(i)∣v)=p(h(i)∣v(i);θ(0))。
- 通过这个定义,我们认为 q q q 在当前参数 θ ( 0 ) \boldsymbol{\theta}^{(0)} θ(0) 下定义。
- 如果我们改变 θ \boldsymbol{\theta} θ,那么 p ( h ∣ v ; θ ) p(\boldsymbol{h} \mid \boldsymbol{v}; \boldsymbol{\theta}) p(h∣v;θ) 将会相应的变化,但是 q ( h ∣ v ) q(\boldsymbol{h} \mid \boldsymbol{v}) q(h∣v) 还是不变并且等于 p ( h ∣ v ; θ ( 0 ) ) p(\boldsymbol{h} \mid \boldsymbol{v}; \boldsymbol{\theta}^{(0)}) p(h∣v;θ(0))。
- M \textbf{M} M步 ( maximization step \text{maximization step} maximization step):
- 使用选择的优化算法完全地或者部分地最大化关于 θ \boldsymbol{\theta} θ 的:
∑ i L ( v i , θ , q ) \sum\limits_i\mathcal{L}(\boldsymbol{v}^{i},\boldsymbol{\theta},q) i∑L(vi,θ,q) — 公式1 \quad\textbf{---\footnotesize{公式1}} —公式1
- 使用选择的优化算法完全地或者部分地最大化关于 θ \boldsymbol{\theta} θ 的:
- E \textbf{E} E步 ( expectation step \text{expectation step} expectation step):
-
这可以被看做通过坐标上升算法来最大化 L \mathcal{L} L。在第一步中,我们更新 q q q 来最大化 L \mathcal{L} L,而另一步中,我们更新 θ \boldsymbol{\theta} θ 来最大化 L \mathcal{L} L。
-
基于潜变量模型的随机梯度上升可以被看做是一个 EM \text{EM} EM算法的特例,其中 M \textbf{M} M步包括了单次梯度操作。
- EM \text{EM} EM算法的其他变种可以实现多次梯度操作。
- 对一些模型族来说, M \textbf{M} M步甚至可以通过推出解析解直接完成,不同于其他方法,在给定当前 q q q 的情况下直接求出最优解。
-
即使 E \textbf{E} E 步采用的是精确推断,我们仍然可以将 EM \text{EM} EM算法视作是某种程度上的近似推断。
- 具体地说, M \textbf{M} M步假设了一个 q q q 分布可以被所有的 θ \boldsymbol{\theta} θ 值分享。
- 当 M \textbf{M} M步越来越远离 E \textbf{E} E步中的 θ ( 0 ) \boldsymbol{\theta}^{(0)} θ(0) 时,这将会导致 L \mathcal{L} L 和真实的 log p ( v ) \log p(\boldsymbol{v}) logp(v) 的差距。
- 幸运的事,当下一个循环时, E \textbf{E} E 步把这种差距又降到了 0 0 0。
-
EM \text{EM} EM算法包含了一些不同的解释。
- 首先,学习过程的一个基本思路就是,我们通过更新模型参数来提高整个数据集的似然,其中缺失变量的值是通过后验分布来估计的。
- 这种特定的性质并不仅仅适用于 EM \text{EM} EM算法。
- 例如,使用梯度下降来最大化似然函数的对数这种方法也利用了相同的性质。
- 计算对数似然函数的梯度需要对隐藏单元的后验分布来求期望。
- EM \text{EM} EM算法另一个关键的性质是当我们移动到另一个 M \textbf{M} M 时候,我们仍然可以使用旧的 q q q。
- 在传统机器学习中,这种特有的性质在推导大 M \textbf{M} M步更新时候得到了广泛的应用。
- 在深度学习中,大多数模型太过于复杂以致于在最优大 M \textbf{M} M步更新中很难得到一个简单的解。
- 所以 EM \text{EM} EM算法的第二个特质,更多为其所独有,较少被使用。
总结
期望最大化算法作为近似推断中的一种重要工具,为我们提供了一种有效的处理不完全数据和隐变量问题的解决方案。通过迭代优化的方式, EM \text{EM} EM算法能够逐步逼近最优解,从而实现对模型参数的准确估计。无论是在科学研究、社会调查,还是在经济学、医学等领域的实际应用中, EM \text{EM} EM算法都展现出了其强大的实用性和灵活性。因此,深入理解和掌握EM算法的原理和应用,对于我们提高数据处理和模型优化的能力具有重要意义。