NO.33.tip: 边界优化

背景

我们将讨论一类称为边界优化(bound optimization)或者 MM 的算法。在最小化的上下文中,MM 代表多数化最小化(majorize–minimize)。在最大化的上下文中,MM 代表少数化最大化(minorize–maximize)。MM 算法有很多例子,例如期望最大化算法、近端梯度法、聚类的均值偏移算法等。

通用算法

我们假设目标是最大化某个函数的相对于其参数 。MM 算法的基本方法是构造一个代理函数(surrogate function),代理函数是 的紧下界。

使得 并且 。如果满足这些条件,我们称 最小化 。然后,我们在每个步骤执行以下更新:

这保证了我们在原始目标中单调增加:

其中,第一个不等式成立,因为 是任何 的下界;第二个不等式由式 (1) 得出;最后的等式遵循紧密性性质。基于这个结果,如果没有观察到目标的单调增加,那么所采用的数学和/或代码一定存在错误。这是一个功能强大的调试工具。

示例:逻辑回归

如果 是我们想要最大化的凹函数,那么获得有效下界的一种方法是在其黑塞矩阵上使用一个界,即找到一个负定矩阵 ,使得 。在这种情况下,可以证明:

其中,。因此,以下函数是一个有效的下界:

对应的更新变为:

这类似于牛顿更新,区别在于我们使用 而不是 是一个固定矩阵,这个固定矩阵在每次迭代时都会变化。这种方法可以在较低的计算成本下为我们提供二阶方法的一些优势。

例如,让我们使用 MM 拟合一个多类别逻辑回归模型。样例 属于类别 的概率为:

由于归一化条件 ,我们可以设置 。(例如,在二元逻辑回归中,其中 ,我们只学习单个权重向量。)因此,参数 对应于大小为 的权重矩阵 ,其中

如果我们设 以及 ,那么可以将似然记作:

梯度由以下公式给出:

其中, 表示 Kronecker 乘积(在这种情况下,该乘积只是两个向量的外积)。黑塞矩阵由以下公式给出:

我们可以在黑塞矩阵上构造一个下界:

其中, 维单位矩阵, 是取值全为 维向量。在二元的情况下,这变成:

这也遵循以下结论:由于 ,因此

我们可以使用这个下界来构造一个 MM 算法,以查找最大似然估计。公式更新为:

例如,让我们考虑二元的情况,因此 ,其中 。公式更新为:

上述算法(每一步)比 IRLS(Iteratively Reweighted Least Squares,迭代重加权最小二乘法)算法(即牛顿法)更快,后者是拟合广义线性模型的标准方法。为了理解这一点,请注意牛顿更新具有以下形式:

其中,。可以看出,式 (13) 的计算速度更快,因为我们可以预先计算常数矩阵

源与流

期望最大化算法

我们将讨论期望最大化(Expectation Maximization, EM)算法。该算法针对具有缺失数据和/或隐藏变量的概率模型,用于计算最大似然估计或最大后验参数估计,是 MM 算法的一个特例。

期望最大化算法背后的基本思想是在期望步骤(E 步骤)期间估计隐藏变量(或缺失值),然后在最大化步骤(M 步骤)期间使用完全观察到的数据来计算最大似然估计。当然,我们需要迭代这个过程,因为期望值取决于参数,但参数取决于期望值。

我们将证明期望最大化算法是一个边界优化算法,这意味着该迭代过程将收敛到对数似然的局部最大值。收敛速度取决于缺失数据的数量,这会影响边界的紧密性。

接下来,我们将描述一个通用模型的期望最大化算法。设 是样例 的可见数据,而 是隐藏数据。

下界

期望最大化算法的目标是最大化所观测数据的对数似然:

其中, 是可见变量, 是隐藏变量。遗憾的是,这很难优化,因为无法将 (对数)推入求和中。

期望最大化算法通过以下方式解决了这个问题。首先,考虑每个隐藏变量 上的一组任意分布 。观测数据对数似然可以记作:

使用詹森不等式,我们可以将 (这是一个凹函数)推入期望内,以获得以下对数似然的下界:

其中, 是概率分布 的熵,,被称为证据下界,因为该值是对数边缘似然 (也称为证据)的下界。优化这个下界是变分推理的基础。

期望步骤

我们看到下界是 个项的和,每个项都具有以下形式:

其中, 是概率分布 之间的 KL 散度。这里我们需要的关键性质是 ,当且仅当 时,。因此,我们可以通过将每个值设置为 来最大化相对于 的下界 。这被称为期望步骤。这确保了证据下界是一个紧下界:

为了了解这与绑定优化之间的联系,让我们定义:

于是,我们有 ,这符合要求。

然而,如果不能精确地计算后验 ,我们仍然可以使用近似分布 。这将产生对数似然性的非紧下界。期望最大化算法的这种广义形式被称为变分期望最大化

最大化步骤

在最大化步骤中,我们需要最大化相对于 ,其中 是在迭代 的期望步骤中计算的分布。由于熵项 是相对于 的常数,我们可以在最大化步骤中省略这些常数。因此,只剩下:

这被称为期望的完全数据对数似然(expected complete data log likelihood)。如果联合概率在指数族中,我们可以将其重写为:

其中, 被称为期望的充分统计量

在最大化步骤中,我们最大化期望的完全数据对数似然,以获得:

在指数族的情况下,最大化可以通过匹配期望充分统计量的矩以闭合形式求解。

从上面的讨论可以看出,期望步骤实际上不需要返回后验分布 的完整集合,而是可以只返回期望的充分统计量的总和

期望最大化算法的一个常见应用是对混合物模型进行拟合。

示例:缺失数据多元正态分布的期望最大化算法

当我们有一个完整观察到的数据矩阵时,很容易计算多元正态分布的最大似然估计:我们只计算样本的均值和协方差。在本节中,我们将考虑缺失数据部分观测(partially observed data)到的数据情况。例如,我们可以将 的条目视为调查问卷的答案,其中一些答案可能是未知的。存在许多类型的缺失数据。在本节中,为了简单起见,我们做出了随机缺失(Missing At Random, MAR)假设。在随机缺失的假设下,可见数据的对数似然具有以下形式:

其中, 是样例 中的可见变量, 是隐藏变量, 是所有变量。遗憾的是,这个目标很难最大化。因为我们无法将对数运算移动到期望值内。幸运的是,我们可以很容易地应用期望最大化运算,接下来将展开阐述。

期望步骤

假设我们有来自上一次迭代的参数 ,那么,我们可以计算第 次迭代的期望完全数据对数似然,如下所示:

其中:

(为了简洁起见,我们省略对 的期望条件。)我们发现,需要计算 ;这些都是期望的充分统计量。

于是:

其中,我们基于隐藏和可见索引 划分为块。因此,期望的充分统计量为:

为了计算 ,我们使用结论 。因此:

最大化步骤

通过求解 ,我们可以证明最大化步骤等效于将这些期望的充分统计量插入通常的最大似然估计方程中,从而得到:

因此,我们看到期望最大化并不等同于简单地使用变量的期望值替换变量并应用标准最大似然估计公式,这将忽略后验方差并且将导致不正确的估计。相反,我们必须计算充分统计量的期望值,并将其插入最大似然估计的一般公式中。

初始化

为了启动算法,我们可以根据数据矩阵中完整观察到的行来计算最大似然估计。如果不存在这样的行,我们可以使用观察到的边缘统计量来估计 的对角项。然后我们准备启动期望最大化算法。

作为该程序的一个例子,让我们考虑一个缺失值插值问题,其中有 维数据样例,假设这些样例来自高斯分布。在我们生成的合成数据中, 的观测值是随机缺失的。首先,我们使用期望最大化算法拟合参数。将得到的参数称为 。现在可以使用我们的模型通过计算 来进行预测。使用学习参数获得的结果几乎与使用真实参数一样好。理所当然地,性能会随着数据的增加而提高,或者随着缺失数据的减少而提高。

示例:使用学生似然的稳健线性回归

我们将讨论如何使用期望最大化算法来拟合线性回归模型,为了实现鲁棒性,该模型使用学生分布来表示其似然,而不是更常见的高斯分布。更准确地说,似然为:

乍一看,实现方法可能并不直观,因为没有缺失数据,也没有隐藏变量。然而,事实证明,我们可以引入“人为的”隐藏变量,使问题更容易解决。这是一个常见的处理技巧。其中的关键是,我们可以将学生分布表示为高斯缩放的混合模型。

可以将学生分布的高斯缩放混合模型应用于我们的问题,方法是将潜在缩放 与每个样例联系起来。因此,完全的数据对数似然由下式给出:

忽略不涉及 的项,并考虑期望值,我们有:

其中,。我们发现,这是一个加权最小二乘目标,每个数据点的权重为

我们现在讨论如何计算这些权重。可以证明:

其中, 是标准化残差。因此:

所以,如果残差 很大,则该点将被赋予低权重 ,这是显而易见的,因为这个点可能是一个异常值。

期望最大化算法的扩展

期望最大化算法有许多变体和扩展。接下来,我们将讨论其中的一些扩展。

变分期望最大化算法

假设在期望步骤中,我们选择 。因为我们在函数空间上进行优化,所以这被称为变分推理(见 10.1 节)。如果分布族 足够丰富,足以包含真正的后验,,那么我们可以使 KL 散度为零。但一般来说,出于计算原因,我们可能会选择一个限制性更强的类别。例如,即使真正的后验是相关的,我们也可以使用

在期望最大化算法的期望步骤中,使用受限后验分布族 称为变分期望最大化(variational EM)算法。与常规期望最大化算法不同,变分期望最大化算法本身不能保证增加实际对数似然,但算法确实单调增加了变分下界。我们可以通过改变变分分布族 来控制这个下界的紧密性。在 的极限中,对应于精确推理,我们化简为与正则期望最大化算法相同的行为。

硬期望最大化算法

假设我们在变分期望最大化算法的背景下使用退化后验分布近似,对应于点估计,,其中 。这相当于硬期望最大化(hard EM)算法,我们在期望步骤中忽略了 的不确定性。

这种退化方法的问题是非常容易过拟合,因为潜在变量的数量与数据样例的数量成比例。

蒙特卡罗期望最大化算法

处理棘手的期望步骤的另一种方法是对期望的充分统计量使用蒙特卡罗近似。也就是说,我们从后验分布 抽取样本,然后计算每个完整向量 的充分统计量,最后对结果进行平均。这被称为蒙特卡罗期望最大化(Monte Carlo EM, MCEM)算法 [WT90; Nea12]。

抽取样本的一种方法是使用马尔可夫链蒙特卡罗(Markov Chain Monte Carlo, MCMC)近似方法。然而,如果我们必须等待马尔可夫链蒙特卡罗在每个期望步骤内收敛,则该方法会变得非常缓慢。另一种可替代的方法是使用随机近似,只在期望步骤中执行“简洁”采样,然后进行部分参数更新。这被称为随机近似期望最大化(stochastic approximation EM)算法,并且往往比蒙特卡罗期望最大化算法工作得更好。

广义期望最大化算法

有时我们可以精确地执行期望步骤,但不能精确地执行最大化步骤。然而,我们仍然可以通过执行“部分”最大化步骤来单调增加对数似然,在该步骤中,我们只增加期望的完全数据对数似然而不是最大化该似然。例如,我们可以遵循几个梯度步骤。这被称为广义期望最大化(Generalized EM, GEM)算法。我们可以执行一个牛顿–拉弗森步骤:

其中,$0 < \eta_t \le 1$ 是步长,并且

如果 ,我们称之为梯度期望最大化(gradient EM algorithm)算法。然而,可以使用更大的步长来加快算法,我们提出的拟牛顿期望最大化(quasi-Newton EM algorithm)算法。该方法还用 BFGS 近似代替了式 (50) 中的黑塞矩阵,该项可能不是负定的(对于非指数族模型)。这确保了整个算法是上升算法。然而,请注意,当最大化步长不能以闭合形式计算时,期望最大化算法在使用基于梯度的求解器直接优化边缘似然方面失去了一些吸引力。

ECM算法

ECM 算法代表“期望条件最大化”(Expectation Conditional Maximization)指的是在最大化步骤中,如果各个参数是相关的,则按顺序对这些参数进行优化。ECME 算法代表“期望条件最大化选择其一”(ECM Either,是 ECM 的一种变体,在一个或多个条件最大化步骤中,我们像通常一样最大化期望的完全数据对数似然(Q 函数),或者最大化观测的数据对数似然。对观测的数据对数似然进行最大化可能运算速度更快,因为这种方法忽略了期望步骤的结果,并直接优化了感兴趣的目标。这方面的一个标准示例是拟合学生分布。对于固定的 ,我们可以像往常一样更新 ,但为了更新 ,我们将形式为 的标准更新替换为

在线期望最大化算法

当处理大型或者流式数据集时,能够在线学习很重要,有两种主要的在线期望最大化(online EM)算法方法。第一种方法称为增量期望最大化(incremental EM)算法,优化下界 ,每次一个 。然而,这需要为每个数据样例存储期望的充分统计量。

第二种方法称为逐步期望最大化(stepwise EM)算法,基于随机梯度下降。这种方法优化了每个步骤中 的局部上界。