PRML学习笔记(十)

第十章 近似推断

Posted by Pelhans on December 5, 2018

PRML 和 ESL 的学习基本上是学十得一。稳扎稳打再来一次

近似推断

对于实际应用中的许多模型来说,计算后验概率分布或者计算关于这个后验概率分布的期望是不可行的。这可能由于潜在空间的维度太高无法直接计算,或者后验概率分布的形式特别复杂,无法直接计算。此时需要借助近似方法。近似方法分为两大类,一类是随机方法,如11章的马尔科夫链蒙特卡洛方法,这类方法在给定无限多的计算资源时,他们可以生成相当精确的结果,近似的来源是使用了有限的处理时间。另一类是确定性近似方法,这些方法基于对后验概率分布的解析近似,例如通过假设后验概率分布可以通过一种特定的方式分解,或者假设后验概率分布有一个具体的参数形式,该方法永远无法生成精确地解。

10.1 变分推断

我们可以简单地将泛函作为一个映射,它以有一个函数作为输入,返回泛函的值作为输出。传统微积分中一个常见的问题是找到一个x使得y(x)取得最大值或最小值。类似地,变分法中,我们寻找一个函数y(x)来最大化或最小化泛函F[y]。即,对于所有可能的函数y(x),我们想找到一个特定的函数,使得F[y]达到最大值或者最小值。

虽然变分法本质上并没有任何近似的东西,但它们通常会被用于寻找近似解。寻找近似解可以通过限制需要最优化算法搜索的函数的范围来完成。在概率推断的应用中,限制条件的形式可以是可分解的假设。

现在我们讨论变分最优化的概念如何应用于推断问题。假设我们有一个纯粹的贝叶斯模型,其中每个参数都有一个先验概率分布。所有潜在变量和参数的集合记做Z,观测变量的集合记做X。概率模型确定了联合分布p(X, Z),我们的目标是找到对后验概率分布 $p(Z | X) $ 以及模型证据p(X)的近似。

类似于EM,将对数边缘概率分解,有:

与之前一样,我们可以通过关于概率分布q(Z)的最优化来使得$\mathcal{L}}(q)达到最大值,这等价于最小化KL散度。现在假设在需要处理的模型中,对真实的概率分布进行操作是不可行的。于是,我们转而考虑概率分布q(Z)的一个受限制的类别,然后寻找这个类别中使得KL散度达到最小值的概率分布。我们的目标是充分限制q(Z)可以取得的概率分布的类别范围,使得这个范围中的所有概率分布都是可以处理的概率分布。同事还要使得这个范围充分大、充分灵活,从而它能够提供对真是后验概率分布的一个足够好的近似。

10.1.1 分解概率分布

现在,我们限制概率分布q(Z)的范围,假设我们将Z的元素划分为若干个互不相交的组,记做$Z_{i}$,其中每个参数都有一个先验概率分布$i=1,\dots,M$、然后,我们假定q分布关于这些分组可以进行分解,即:

变分推断的这个分解的形式对应于物理学中的一个近似框架,叫平均场理论。

在所有具有上式的形式的概率分布q(Z)中,我们现在寻找下界$\mathcal{L}(q)$最大的概率分布。于是,我们希望对$\mathcal{L}(q)$关于所有的概率分布$q_{i}(Z_{i})$进行一个自由行是的(变分)最优化,我们将通过每个因子进行最优化来完成整体的最优化过程。为此我们分理出依赖于一个因子$q_{j}(Z_{j})$的项:

其中$E_{i\neq j}[\dots]$表示关于定义在所有$z_{i}(i\neq j)$上的q概率分布的期望,即:

假设我们保持${q_{i\neq j} }$固定,关于概率$q_{j}(Z_{j})$的所有可能的形最大化$\mathcal{L}(q)$。这很容易做,因为最大化$\mathcal{L}(q)$等加入最小化KL散度,且最小值出现在$q_{j}(Z_{j}) = \tilde{p}(X, Z_{j})$的位置,于是,我们得到了最优解$q^{*}(Z_{j})$的一般表达式:

上式很重要,它是变分方法应用的基础。这个解表明,为了得到因子$q_{j}$的最优解的对数,我们只需要考虑所有隐含变量和课件变量上的联合概率分布的对数,然后关于所有其他的因子${q_{i} }$取期望即可,其中$i\neq j$。在实际应用中,我们发现直接对上式进行操作,而后在必要的时候通过观察的方式恢复出归一化系数是较为方便的做法。

10.2 例子:高斯的变分混合

和前面的记号一致,$\pi$为混合系数,对于每个观测$x_{n}$有对应的潜在变量$z_{n}$,它是一个”1-of-K”的二值向量,观测数据集记做X,因此,Z的条件概率分布为:

类似地,观测数据向量的条件概率分布为:

需要注意的是我们使用的是精度矩阵而非协方差矩阵。接下来,我们引入参数$\mu,\Lambda, \pi$上的先验概率分布,这里我们采用共轭先验。因此对于参数$\pi$:

为了对称性,为每一个分量选择相同的参数。

对于均值和精度:

10.2.1 变分分布

高斯模型的贝叶斯混合的有向图如下图所示:

因此,所有随机变量的联合分布为:

现在考虑一个变分分布,它可以在潜在变量与参数之间进行分解,即:

经过上述假设得到的分解,因子q(Z)和$q(\pi, \mu, \Lambda)$的函数形式会在变分分布的最优化过程中自动确定。

首先让我们求解因子$q(Z)$的更新方程,根据前面的公式,最有因子的对数为:

保留右侧与Z有关的项,则:

带入相关分布,去掉与Z无关的项则有:

其中:

我们要求这个概率分布是归一化的,并且对于每个n值,$z_{nk}$是二值的,且加和为1.则:

对于离散概率分布$q^{*}(Z)$,我们有标准的结果:

可以看到,$r_{nk}$扮演着“责任”的角色。同时,$q^{*}$的最优解依赖于关于其他变量计算得到的矩,因此与之前一样,变分更新方程是耦合的,必须用迭代的方式求解。

同理,对于变分后验概率分布中的因子q(\pi, \mu, \Lambda)$:

我们发现$\pi$和其他两个没有耦合,因此可以得到对应的解:

其中 $\alpha$ 的元素为 $\alpha_{k}$,形式为:

对于变分后验概率分布$q^{*}(\mu_{k}, \Lambda_{k})$无法分解成边缘概率分布的乘积,但我们可以将其分解为:

观察对应的项,可得$\mu_{k}$和 $\Lambda_{k}$。结果是一个高斯-Wishart分布,形式为:

其中:

可以看到,更新方程类似于EM的M步骤。

因此变分后验概率分布的最优化涉及到在两个阶段之间进行循环,这两个阶段类似于最大化似然的E步骤和M步骤。在变分推断与E步骤等价的步骤中,我们使用当前状态下模型参数上的概率分布来计算关于变分分布的参数的期望中的各阶矩,从而计算$E[z_{nk}]=r_{nk}$然后,在接下来的M步骤等价的步骤中,我们令这些“责任”保持不变,然后使用它们通过变分推断得到的$q^{*}(\pi)$和$q^{*}(\mu_{k}, \Lambda_{k})$ 重新计算参数上的变分分布。

10.2.2 变分下界

对于高斯分布的变分混合,下界为:

将其进行变分分解并对每项进行分别计算即可。值得注意的是,下界提供了另一种推导变分重估计方程的方法,即将下界作为概率分布的参数的函数,关于这些参数的最大化下界就会得到所需的重估计方程。

10.2.3 预测概率密度

我们通常对观测变量的新值$\hat{x}$的预测概率密度感兴趣,与这个观测相关联的有一个潜在变量$\hat{z}$,从而预测概率分布为:

对真是后验概率分布 $p(\pi, \mu, \Lambda | X)$用它的变分近似$q(\pi)q(\mu, \Lambda) $ 替换的方式来近似预测概率分布,从而得到近似解。

10.5 局部变分方法

前面的方法可以看做是“全局”的方法,因为它直接寻找所有随机变量上的完整的后验概率分布的近似。另一种相对的“局部”的方法涉及到寻找模型中的单独的随机变量或者变量组上定义的函数的界限。以此简化最终得到的后验概率分布。这个拒不近似可以应用于多个变量,直到得到一个可以处理的近似。

现在让我们引入图对偶的框架来形式化描述求上下界问题。假设函数f(x)为凸函数,函数$\eta x$是它的一个下界,但斜率$\eta$给出的下界不是最紧致的,让我们将斜率为$\eta$的方程写成$\eta x - g(\eta)$,其中 $g(\eta)$ 为斜率的负值。为了确定截距,我们必须移动这条线,移动的距离为直线和函数之间最小的垂直距离,如下图左侧所示,则有:

现在我们不去固定$\eta$改变x,而是考虑一个特定的x的值,然后调节$\eta$,直到切平面在这个特定的x处与函数f(x)相切,此时:

我们看到函数f(x) 与 $g(\eta)$是对偶的。对于函数f(x)为凹函数的情况,我们将最大化运算替换为最小化运算即可得到上界:

比如 logistic sigmoid 函数,其定义为:

它既不是凹函数也不是凸函数。然而,我们对其取对数,那么我们就得到了一个凹函数。而后就可以应用上式得到它的上界:

对于它的下界,我们采用jaakkola and jordan(2000) 的方法,将输入变量和函数本身都进行变换,得到 sigmoid函数的下界:

其中 $\xi$为变分参数,:

那么上面的界限如何使用呢?假设我们想计算一个形式如下的积分:

其中p(a)是高斯概率密度。当我们计算贝叶斯模型中的预测分布时,这种积分会经常出现,此时p(a)表示一个后验参数分布。由于积分是无法直接计算的,因此我们使用变分界限将其写为$\sigma(a)\geq f(a, \xi)$,其中$\xi$是一个变分参数。积分现在变成了两个指数-二次函数的乘积,因此可以解析地求出积分,给出I的界限:

我们可以自由地选择变分参数$\xi$,这里我们选择最大化函数$F(\xi)$的值$\xi^{*}$。得到的$F(\xi^{*})$表示在所有的界限中最紧致的界限,可以用来近似I。

10.6 变分 logistic 回归

10.6.1 变分后验概率分布

这里,我们会使用一种基于上节介绍的拒不接线的变分方法,使得logistic 回归的似然函数可以有指数的二次形式的近似。

在变分的框架上,我们寻找边缘似然函数的下界的最大值,对于贝叶斯 logistic回归模型,边缘似然函数的形式为:

我们知道:

应用下界公式,我们有:

乘以先验概率分布,我们可以得到t和w的联合概率分布:

对右侧取对数,观察得到后验概率分布对应的变分近似,这是一个高斯变分后验概率,形式为:

现阶段,我们将参数$m_{0}$ 和 $S_{0}$ 看成固定的常数,也可以扩展到超参数未知的情形。

10.6.2 最优化变分参数

通过最大化边缘似然函数的下界,确定变分参数${\xi_{n}} $。边缘似然函数公式为:

有两种方法确定$\xi_{n}$,第一种是将w看成一个潜在变量,然后使用EM算法。第二种是解析地对w积分,然后直接关于$\xi$进行最大化。

10.7 期望传播

期望传播(Expectation propagation, EP) 基于 Kullback-Leibler 散度的最小化,但是形式相反,从而得到了性质相当不同的近似结果。下面给出实际使用中EP的总结。

给定观测数据集D和随机变量$\theta$上的联合概率分布,用因子的乘积的形式表示:

我们希望使用下面形式的分布:

来近似后验概率分布 $p(\theta | D)$。我们也希望近似模型证据 p(D)。下面给出流程:

  • 初始化所有的近似因子$\tilde{f}_{i}(\theta)$。
  • 通过设置 $q(\theta) \propto \prod_{i}\tilde{f}_{i}(\theta) $ 初始化后验近似。
  • 直到收敛:
    • 选择一个因子$\tilde{f}_{j}(\theta)$进行优化。
    • 通过下面的除法 从后验概率分布中移除 $\tilde{f}_{j}(\theta) $。
    • 计算新的后验概率分布,方法为:令 $q^{新}(\theta)$ 的充分统计量(矩)等于 的充分统计量(矩),包括计算归一化系数 $Z_{j} = \int q^{\j}(\theta)f_{j}(\theta) d\theta $。
    • 计算和存储新的因子
  • 计算模型证据的近似: $p(\mathcal{D}) \simeq \int\prod_{i}\tilde{f}_{i}(\theta) d\theta $。

EP的一个缺点是,它不保证迭代会收敛。EP的一个特别的情况被称为假定密度过滤(ADF)或者矩匹配,它对除了第一个因子以外的所有近似因子初始化为1,然后在所有因子之间进行一次迭代,每次更新引资中的每一个。ADF对于在线学习很适用,然而相比于批处理,精度低一些,并且结果会依赖于处理顺序。

10.7.2 图的期望传播

现在我们考虑因子只依赖于变量的一个子集的情况,这就可以很方便地使用图模型。这里我们使用因子图,并且将注意力集中于近似概率分布完全分解的情形,在这种情况下,期望传播会简化为循环置信传播。

对于一个一般的因子图,它对应于下面的概率分布:

其中 $\theta_{i}$ 表示与因子$f_{i}$关联的变量的子集。我们使用一个完全分解的概率分布来近似它,形式为:

其中$\theta_{k}$对应于一个单独的变量节点。假设我们希望优化特定的项$f_{jl}(\theta_{l}) $,保持其他所有的项不变。首先,我们从$q(\theta)$中移除项$f_{j}(\theta_{j})$,可得:

然后乘以精确因子$f_{j}(\theta_{j})$。为了确定优化项,我们只需考虑对$\theta_{l}$的函数依赖,因此我们只需寻找 对应的边缘概率分布。忽略一个可以做乘法的常数,这涉及到对$f_{j}(\theta_{j})$与热议来自中的属于$\theta_{j}$中任意变量的函数的项进行相乘得到的结果求边缘概率分布。当我们接下来除以时,对应于$i\neq j$的其他因子的项会在分子和分母之间消去。因此有:

我们可以将这个式子看作是加和-乘积规则的形式,其中从变量结点到因子结点的信息被消除。对应于信息,为因子节点j向变量结点m发送信息。