———— 几孤风月,屡变星霜。

变分推断 (Variational Inference)

概率模型的应⽤中⼀个重要任务是在给定观测数据变量 [公式] 的条件下,计算潜在变量 [公式] 的后验概率分布 [公式] 以及这个概率分布的期望,模型也可能是⼀个贝叶斯模型,其中任何未知参数都有⼀个先验概率分布,并且被整合到了潜在变量 [公式] 中。在贝叶斯神经网络一节中,使用变分法的思路就是,把数据集 [公式] 看做观测数据,模型参数 [公式] 看做潜在变量,然后计算参数的后验概率分布 [公式] 。之所以要这样做,是因为对于实际应⽤中的许多模型来说,计算后验概率分布或者它的期望是不可⾏的,贝叶斯神经网络引入变分法就是因为,神经网络中的非线性变换使得似然分布的指数项不是均值参数的二次型,后验概率形式复杂,不能解析地求出,其他原因也有可能是潜在空间的维度太⾼不便于计算。

在这种情况下,就需要借助近似⽅法,本文介绍一些确定性近似方法,对于大规模数据很适⽤,我们称其为变分推断 (Variational Inference)。变分法很早就应用于一些物理问题,例如牛顿使用变分法解决最速下降曲线的的问题。这里就需要再提及泛函数的概念,泛函数也是一个函数映射,不同的是,它以⼀个已知的函数作为输⼊,通过泛函数映射后的值作为输出。比如信息熵 [公式] ,它的输⼊是⼀个概率分布 [公式] ,返回 [公式] 作为输出。

如果需要最优化的量是一个泛函,那我们就可以通过变分法寻找近似解。寻找近似解就是假设一个函数或分布,限制其可选择函数形式的范围,然后去逼近真实的函数或分布,在概率推断应用中,限制条件的形式是可分解的假设。我们在上一节最后讨论 EM 算法时也引入了变分的概念,这里考虑一种更一般地情况,即假设一个贝叶斯模型,每个参数都有一个先验概率分布,这个模型也可以有潜在变量参数,这里我们就把潜在变量和模型参数作为一个整体去考虑,记作 [公式] ,然后把观测变量即数据集记作 [公式] ,如果 [公式] 都是已知的,那么其联合概率分布 [公式] 也很容易得出,但是为了验证模型参数在数据集上的性能,我们更关心参数的后验概率分布 [公式] 以及在数据集上的表现 [公式] ,为了得到这些近似,就需要将对数边缘概率分解,使用一个近似分布 [公式] 逼近后验概率分布,可得

[公式]

同样地,我们通过关于概率分布 [公式] 的最优化来使下界 [公式] 达到最⼤值,这等价于最⼩化 KL 散度。如果允许任意选择 [公式] ,那么下界的最⼤值出现在 KL 散度等于零的时刻,此时 [公式] 等于后验概率分布 [公式] ,这一步又回到贝叶斯神经网络一节中的变分方法,我们的目的就是最小化近似概率分布 [公式] 与后验分布 [公式] 的 KL 散度。在这个过程中,需要假定对真实概率分布是不可操作的。

于是我们转⽽考虑概率分布 [公式] 的⼀个受限制的类别,然后寻找这个类别中使得 KL 散度达到最⼩值的概率分布。先充分限制 [公式] 可以取得的概率分布的范围,使得这个范围中的所有概率分布都是可处理的概率分布。同时还要保证这个范围充分广泛灵活,从⽽能够提供对真实后验概率分布的⼀个⾜够好的近似。施加限制条件的唯⼀⽬的是为了计算⽅便,并且在这个限制条件下,应使⽤尽可能丰富的近似概率分布。特别地,对于⾼度灵活的概率分布来说,没有 “过拟合” 现象,使⽤灵活的近似仅仅使得我们更好地近似真实的后验概率分布。

限制近似概率分布的范围的⼀种⽅法是使⽤参数概率分布 [公式] ,它由参数集合 [公式] 控制。 这样下界 [公式] 变成了 [公式] 的函数,例如在贝叶斯神经网络一节中,我们假设 [公式] 服从高斯分布,那么参数集合 [公式] 就是高斯分布的均值和方差。

分解近似 (Factorized Approximations)

1. 分解概率分布

这里考虑另一种分解近似 (factorized approximations) 方法,我们直接限制概率分布 [公式] 的范围,将 [公式] 的元素划分成 [公式] 个互不相交的组,记作 [公式] ,其中 [公式] ,然后假定 [公式] 分布关于这些分组可以进行分解,即

[公式]

在所有具有公式 (4) 的形式的概率分布 [公式] 中,我们现在寻找下界 [公式] 最⼤的概率分布。对 [公式] 关于所有的概率分布 [公式] 进⾏⼀个⾃由形式的变分优化,通过关于每个因⼦进⾏最优化来完成整体的最优化。⾸先将公式 (4) 代⼊公式 (2),然后分离出依赖于⼀个因⼦ [公式] 的项,记作 [公式] ,这样有

[公式]

其中 [公式] 为常数,现在假设保持 [公式] 固定,关于概率分布 [公式] 的所有可能的形式最⼤化公式 (5) 中的 [公式] 。因为公式 (5) 是 [公式]  [公式] 之间的 KL 散度负值。因此最⼤化公式 (5) 等价于最⼩化 KL 散度,且最⼩值出现在 [公式] 的位置。于是最优解 [公式] 的⼀般表达式形式为

[公式]

这是变分法应⽤的基础,这个解表明,为了得到因⼦ [公式] 的最优解的对数,我们只需考虑所有潜在变量和可见变量上的联合概率分布的对数,然后关于所有其他的因⼦ [公式] 取期望即可。

公式 (7) 中的常数通过对概率分布 [公式] 进行归一化的方式设定,取两侧指数

[公式]

关于公式 (7) 也可以使用 EM 算法,⾸先初始化所有因⼦ [公式] ,然后在各个因⼦上进⾏循环,每⼀轮⽤⼀个修正后的估计来替换当前因⼦。这个修正后的估计由公式 (7) 的右侧给出,计算时使⽤了当前对于所有其他因⼦的估计,算法保证收敛,因为下界关于每个因⼦ [公式] 是⼀个凸函数。

2. 分解近似的性质

变分推断是基于真实后验概率分布的分解近似,现在考虑⼀下使⽤分解概率分布的⽅式近似⼀个⼀般的概率分布。对于使⽤分解的⾼斯分布近似⼀个⾼斯分布的问题,考虑两个相关的变量 [公式] 上的⾼斯分布 [公式] ,其中均值和精度的元素为

[公式]

根据精度矩阵的对称性, [公式] ,现在使用一个分解的高斯分布 [公式] 来近似这个分布。⾸先使⽤公式 (7) 来寻找最优因⼦ [公式] 的表达式。在等式右侧只需要保留那些与 [公式] 有函数依赖关系的项即可,所有其他项都可以被整合到归⼀化常数中。因此有

[公式]

接下来观察到这个表达式的右侧是 [公式] 的⼆次函数,因此可以将 [公式] 看成⼀个⾼斯分布。我们不需要假设 [公式] 是⾼斯分布,但通过对所有可能的分布 [公式] 上的 KL 散度变分最优化也能推导出这个结果。使⽤配平⽅的⽅法,我们可以得到这个⾼斯分布的均值和⽅差,有

[公式]

根据对称性, [公式] 也是一个高斯分布,可以写成

[公式]

这些解是相互偶合的,即 [公式] 依赖于关于 [公式] 计算的期望,反之亦然。这些解的求解方式通常将变分解看成重估计⽅程,然后在变量之间循环,更新这些解,直到满⾜某个收敛准则。但是这⾥可以找到⼀个解析解,由于 [公式]  [公式] ,如果取 [公式]  [公式] ,那么这两个⽅程会得到满⾜。只要概率分布⾮奇异,那么这个解是唯⼀解。 这个结果下图所示,两种形式的 KL 散度的对⽐。绿⾊轮廓线对应于两个变量 [公式]  [公式] 上的相关⾼斯分布 [公式] 的 3 个标准差的位置,红⾊轮廓线表示相同变量上的近似分布 [公式] 的同样位置。(a) 图中,参数通过最⼩化 [公式] 的⽅式获得,(b) 图中参数通过最⼩化相反的 KL 散度 [公式] 获得。虽然 (a) 图均值被正确地描述了,但是 [公式] 的⽅差由 [公式] 的最⼩⽅差⽅向确定,沿着垂直⽅向的⽅差被强烈低估了,即分解变分近似对后验概率分布的近似倾向于紧凑。而 (b) 图中的 KL 散度被⽤于另⼀种近似推断的框架中,被称为期望传播 (expectation propagation)。

图片来自 Bishop PRML. Figure 10.2.

在期望传播中,我们一般考虑最⼩化 [公式] 的问题,KL 散度可以写成

[公式]

其中常数项就是 [公式] 的熵,因此不依赖于 [公式] 。现在可以关于每个因⼦ [公式] 进⾏最优化。使⽤拉格朗⽇乘数法,可得

[公式]

这种情况下 [公式] 的最优解等于对应的边缘概率分布 [公式] 

这两个结果的区别可以⽤下⾯的⽅式理解。 [公式] 空间中 [公式] 接近等于零的区域对于 KL 散度

[公式]

有⼀个⼤的正数的贡献,除⾮ [公式] 也接近零。因此最⼩化这种形式的 KL 散度会使得 [公式] 避开 [公式] 很⼩的区域。相反地,使得 [公式] 取得最⼩值的概率分布 [公式]  [公式] ⾮零的区域也是⾮零的。

3. 一元高斯分布

现在使⽤⼀元变量 [公式] 上的⾼斯分布来说明分解变分近似,在给定 [公式] 观测值的数据集 [公式] 的情况下,我们推断均值 [公式] 和精度 [公式] 的后验概率分布。假设数据独⽴地从⾼斯分布中采样,那么似然函数为

[公式]

现在引⼊ [公式]  [公式] 的共轭先验分布,形式为

[公式]

对于这个问题,后验概率可以求出精确解,并且形式还是⾼斯-Gamma 分布。考虑对后验概率分布的⼀个分解变分近似,形式为

[公式]

我们对变分近似的概率分布这样操作,但是真实后验概率分布不可以按照这种形式进⾏分解。最优因⼦ [公式]  [公式] 可以从公式 (7) 中得到。对于 [公式] ,有

[公式]

 [公式] 配平⽅,可以看到 [公式] 是⼀个⾼斯分布 [公式] ,其中,均值和⽅差为

[公式]

对于 [公式] ,就是最大似然的结果,其中 [公式] ,精度为无穷大。

因子 [公式] 的最优解为

[公式]

因此 [公式] 是⼀个 Gamma 分布。

与之前一样,我们不假设最优概率分布 [公式]  [公式] 的具体形式,它们从似然函数和对应共轭先验分布中⾃然地得到,因此得到了最优概率分布 [公式]  [公式] 的表达式,每个表达式依赖关于其他概率分布计算得到的矩。因此,⼀种寻找解的⽅法仍旧是 EM 算法的思路,首先对 [公式] 进⾏⼀个初始的猜测,然后使⽤这个猜测来重新计算概率分布 [公式] 。给定这个修正的概率分布之后,接下来计算所需的矩 [公式]  [公式] ,并且使⽤这些矩来重新计算概率分布 [公式] ,依次类推,直至收敛。