黑盒变分推断
【摘要】 变分推断已经成为一种广泛使用的方法,用于近似隐变量的复杂后验分布。 然而,传统方法推导出一个变分推断算法需要进行大量的特定模型分析。 这可能会阻碍我们快速开发和探索解决问题的模型。 本文中提出了一种黑盒变分推断算法,该算法可以快速应用于许多模型,几乎不需要额外的推导。我们采用的方法是基于变分目标做随机优化,其中噪声梯度由变分分布的蒙特卡洛样本计算得出,进而避免了对梯度解析形式的推导。考虑到随机优化存在方差变大的问题, 我们同时开发了一些减少梯度方差的方法,并始终保持了避免推导的简易性。 我们将本方法与相应的黑盒采样方法进行对比评估,发现本方法相比于采样方法,能更快达到较好的预测似然。 最后,通过快速构建和评估医疗数据中的几个模型,我们证明了黑盒变分推断法可以轻松探索更为广阔的模型空间。
【原文】Ranganath, R., Gerrish, S., and Blei, D. M. (2014). Black box variational inference. In Artificial Intelligence and Statistics, Vol 37.
1 问题提出
具有隐变量的概率模型已成为现代机器学习应用的中流砥柱。通过隐变量模型,我们假设了一个丰富的潜在结构来控制观测结果,从大数据集中推断该结构,并使用推断来总结观察,得出关于当前数据的结论,并对新数据进行预测。使用隐变量模型的核心是计算潜在结构的后验分布的问题。对于许多有趣的模型,精确计算后验是非常棘手的,从业者必须求助于近似方法。
变分推断是最广泛使用的近似估计方法之一(Wain-wright 和 Jordan,2008 年;Jordan 等人,1999 年)。变分推断试图在 散度中找到最接近真实后验分布的简单概率分布族成员,并且主要用封闭形式的坐标上升算法(Ghahramani 和 Beal,2001)进行优化求解。
但是,对于通用模型和任意变分族而言,大多数并没有封闭形式的解,计算表达式中的期望值变得非常棘手。在此情况下,业内转而寻求特定于模型的算法(Jaakkola 和 Jordan,1996;Blei 和 Lafferty,2007;Braun 和 Mc Auliffe,2007)或需要专用于某类模型计算的通用算法(Knowles 和 Minka,2011;Wang 和 Blei ,2013 年;Paisley et al.,2012 年)。
逐个模型地推导这些算法是一项乏味的工作,它阻碍了我们在解决问题时快速地探索模型假设,并使变分方法在遇到复杂分布时变得不切实际。本文的目标是开发一种经过少量调整即可快速应用于几乎任何模型的黑盒变分推断算法。本方法允许从业者快速设计、应用和修改其数据模型,而无需在每次调整模型时进行痛苦的推导。
众所周知,变分推断方法将后验估计问题转变为一个优化问题,其中待优化的参数被称为变分参数,它将变分分布逐步调整到与真实后验相似。我们方法的基本思路是:重写目标函数的梯度公式,将其改写为关于隐变量 和观测变量 的某个(易于实现的)函数 的期望,如果用变分分布来代替真实后验分布的话,则该期望可以用变分分布 上的加权平均来近似。也就是说,我们利用从变分分布中抽取的样本来计算和评估函数 的期望,并基于期望形成目标函数梯度的蒙特卡罗估计。然后在随机优化算法中使用这些含噪声的梯度来优化变分参数。
从业务用户的视角来看,本方法只需要他编写用于评估模型对数似然的函数。其余的计算(变分分布的属性、对蒙特卡罗估计的评估等)可以很容易放入一个可以在模型之间共享的公共库中,也意味着本方法可以快速应用于新的模型设置。
我们将证明减少梯度估计器的方差对本算法的收敛速度有至关重要的影响。为此,我们开发了几种控制方差的策略。第一个基于 Rao-Blackwellization(Casella 和 Robert,1996),它利用了变分分布的因子分解。第二种是基于控制变量 (Ross, 2002; Paisley et al., 2012),使用变分分布的对数概率梯度。需要强调的是,这些减少方差的方法并未破坏黑盒推断的初衷,因为它们不需要特定于模型的计算。
最后,我们展示了如何使用变分推断和随机优化方面的最新成果来扩展和加速我们的算法。首先,使用自适应学习率 (Duchi et al., 2011) 来设置随机优化的步长。其次,开发了通用随机变分推断(Hoffman 等人,2013 年),其中我们额外从数据中做了子采样,以便更廉价地计算噪声梯度。这是对 Hoffman 等人算法的创新,因为他们的方法需要封闭形式的坐标更新法来计算含噪声的自然梯度。
我们用两种方式做了算法展示。首先,与 Metropolis-Hastings-in-Gibbs (Bishop, 2006) 进行比较,发现我们的方法比采样方法更快地达到了更优的预测似然。其次,我们还快速构建和评估了医疗患者数据的多个模型,表明我们的方法可以轻松地应对在传统变分方法领域之外的模型。
2 相关工作
当前已经有一些工作使用采样方法来近似变分推断中的梯度。
-
[Wingate 和 Weber, 2013] 考虑了一个与我们类似的方法,其中梯度被构造为期望,并采用随机优化方法来优化 KL 散度。其方法中 也包含一个减少方差的项,但没有解释如何设置它。我们利用 Rao-Blackwellization 对他们的方法做了创新,设计了控制变量、自适应学习率和数据子采样等方法。
-
[Salimans 和 Knowles, 2012] 提供了一个基于随机线性回归的框架。但他们的方法不能推广到任意近似分布族,并且需要对矩阵求逆,这在高维设置时变得不切实际。
-
[Kingma 和 Welling, 2013] 通过对变分分布进行重参数化,提供了一种用于变分推断的替代方法。但他们的算法仅限于连续型的隐变量。
-
[ Carbonetto等人, 2009] 提出了一种基于变分目标的特定形式的矩估计的随机优化方案,当模型和近似族都在同一指数族中时。这不同于我们更一般的建模设置,其中隐变量可能在指数族之外。
-
[Paisley et al. , 2012] 对变分目标中的困难项使用蒙特卡罗梯度,并使用控制变量来减少方差。但他们的方法不是黑盒方法,其中提出的目标函数和控制变量都需要特定于模型的推导。
3 黑盒变分推断(Black Box Variational Inference,BBVI)
变分推断将近似条件分布的问题转化为优化问题(Jordan 等,1999;Bishop,2006;Wainwright 和 Jordan,2008)。这个想法是在隐变量上设定一个简单的分布族,并找到在 KL 散度中最接近条件分布的族成员。
在一个概率模型中,令 是观测变量, 是隐变量, 是变分分布 ) 的自由参数,则我们的目标是基于自由参数 近似 。在变分推断中,通常采用优化证据下界( )的方式:
最大化 等效于最小化 KL 散度(Jordan 等人,1999 年;Bishop,2006 年)。直观地说,上式中第一项奖励变分分布,这些分布将更多概率质量配置在能够解释观测的隐变量上;第二项奖励具有熵的变分分布,即通过将概率质量分布在更多配置上来最大化不确定性。
从业者通过扩展公式( 1 )中的期望和计算在优化过程中使用的梯度,来最大化变分参数上的 。闭式的坐标上升更新方法被用于条件共轭指数族模型(Ghahramani 和 Beal,2001 年),其中,对于一小部分变分族,其给定马尔科夫毯的每个隐变量,均服从先验分布的同一分布族。然而,这些更新方法需要对每个新模型的期望进行分析计算,特别是当变分族落在该集合外时,问题会加剧,并影响新模型的开发。
公式( 1 )中的期望是关于一个参数已知的分布的。因此,我们将使用随机优化来最大化 。我们在随机优化过程中,使用其梯度的含噪声估计来最大化函数(Robbins 和 Monro,1951;Kushner 和 Yin,1997;Bottou 和 LeCun,2004)。我们将目标的导数转换为关于变分近似的期望,然后从变分近似中采样以获得含噪声的无偏梯度,并进一步利用这些梯度来更新变分参数。
对于每个样本,我们的含噪声梯度需要评估观测变量和采样变量的未归一化联合分布、变分分布以及变分分布的对数梯度。这是一种黑盒方法,因为变分分布的对数梯度以及采样方法可以为每种变分分布导出一次,并重复用于许多模型和应用程序。
(1)随机优化
现在让我们回顾一下随机优化。设 是一个需要最大化的函数, 是随机变量 的一次实现,其期望是 的梯度,令 是一个非负的标量。则随机优化在第 次迭代时更新 为:
当学习率 遵循 Robbins-Monro 条件时,这将收敛到 的最大值。
随机优化由于其简洁性被广泛地应用于统计和机器学习中。
(2) 的含噪声梯度
为了使用随机优化来优化 ,我们需要开发其梯度的无偏估计器,该估计器可以从变分分布的样本中计算出来。为此,我们将 的梯度写为对变分分布的期望:
公式( 2 )的推导见附录。请注意,在统计学中,概率分布的对数梯度 被称为评分函数(Cox 和 Hinkley,1979)。联合概率 可以用其非规范化版本替换(详见附录)。在后续部分中,任何出现 的地方都可以由非规范化版本替换。
有了这个公式,我们就可以用来自变分分布的蒙特卡罗样本计算 的含噪声无偏梯度。
其中, 。
基本算法总结在算法 (1) 中。我们注意到评分函数和采样算法仅取决于变分分布,而不取决于基础模型。因此,可以为各种变分近似构建这些函数的集合,并将它们重用在一个包中以用于广泛的模型类别。此外,我们没有对模型的形式做任何假设,只是需要从业者可以计算联合概率 的对数。该算法显著减少了在各种模型中实现变分推断所需的工作量。
4 控制方差
我们可以使用算法 1来最大化 ,但是估计出来的梯度(在公式( 3 )中的蒙特卡罗估计下)可能方差太大而无法使用。在实践中,高方差的梯度需要非常小的步长,这会导致收敛缓慢。我们现在展示如何通过 和易于实现的控制变量两种方式减少这种方差。我们不需要特定于模型的推导,这保留了最初考虑黑盒变分推断的目标。
4.1 Rao-Blackwellization
Rao-Blackwellization(Casella 和 Robert,1996 年)通过将随机变量替换为关于其子集的条件期望的方式来减少方差。请注意,一个随机变量的条件期望是一个相对于条件集合的随机变量。这通常需要解析地计算特定于问题的积分。在这里,我们展示了如何在不需要计算特定于模型的积分的情况下,对梯度的每个分量进行 估计。
在最简单的设置中, 用两个变量的条件期望替换关于它们的函数。考虑两个随机变量 和 ,以及一个函数 。我们的目标是根据 和 的联合分布计算其期望 。
定义 ,注意 。这意味着在 的蒙特卡罗近似中,可以使用 代替 。 的方差为:
因此, 的方差比 低。
我们回到估计 梯度的问题。假设有 个隐变量 并且我们正在使用平均场变分族,其中每个随机变量 是独立的,并受其自己的变分分布控制,
其中 是表征变分族成员的 个变分参数。考虑梯度的第 个分量。令 是模型中依赖于第 个变量的分布,即 和 的马尔可夫毯;并让 是这些变量联合分布中的项。我们可以将关于 的梯度写为迭代的条件期望,简化为:
公式( 5 )的推导可以在附录中找到。该公式表示,我们可以相对于马尔可夫毯之外的变量对梯度的各分量进行 ,而无需计算特定于模型的条件期望。
我们使用来自变分分布的样本构建一个有关 梯度的蒙特卡罗估计量:
其中 。
这些含噪声的梯度可用于最大化 。在我们的实证研究中(见图 2),我们绘制了这个估计量的方差以及公式( 3 )的方差。
4.2 控制变量
正如在上面看到的,减少方差的方法的工作原理是:用另一个具有相同期望但方差较小的函数,来替换期望值被蒙特卡洛近似的函数。也就是说,为了通过蒙特卡罗估计 ,我们计算 的经验平均值,其中选择 以便 和
一个控制变量 (Ross, 2002) 是具有等效期望的一个函数族。最近,控制变量在变分推断(Paisley 等人,2012 年)和机器学习的一般优化问题(Wang 等人,2013 年)中引起了人们的兴趣。
考虑一个函数 ,它有一个有限的一阶矩和一个标量 。定义 为
这是一个函数族,由 索引,并注意 是必需的。给定一个特定的函数 ,我们可以选择 来最小化 的方差。首先我们注意到 的方差可以写成
这个公式意味着好的控制变量与正在计算期望的函数有很高的协方差.
取 相对于 的导数并将其设置为零,我们得到了最小化方差的 值,
我们现在将此方法应用于黑盒变分推断。为了保持算法的通用性,我们希望选择一个仅取决于变分分布的控制变量,并且可以轻松计算其期望。为了满足这些标准,我们选择 作为变分近似值 的得分函数,它的期望总是为零。 (见附录)
我们应用控制变量来估计 梯度的每个条目。更正式地说,在上面的符号中,当第 个条目属于第 个因子时,梯度的第 个条目的控制变量是:
控制变量的最佳尺度由公式( 8 )给出。我们基于少量样本估计必要的方差和协方差。给定估计的尺度 ,使用 个样本获得的梯度的控制变量蒙特卡洛估计为:
该估计器同时使用 和控制变量。我们在实证研究中表明,这种通用控制变量进一步降低了估计量的方差。
4.3 黑盒变分推断( II )
将含噪声梯度、 和控制变量放在一起,我们提出了黑盒变分推断 (II)。它从变分近似中获取样本以使用公式( 9 )计算噪声梯度。然后将这些噪声梯度用于随机优化程序以最大化 。
我们总结出了算法( 2 )中的过程,该算法很容易扩展到更多模型。它只需要来自变分分布的样本、关于变分分布的计算、以及关于模型的简单计算。
5 扩展
我们以两种方式扩展了核心算法。首先,解决了步长设置问题。其次,我们通过对观测的子采样解决可扩展性问题。
5.1 AdaGrad
随机优化技术的一项挑战是设置学习率。直觉上,当梯度方差很大时,我们希望学习率很小,反之亦然。此外,在像我们这样具有不同 scale 的问题中,固定的学习率就需要照顾最小的 scale,从而影响了优化效率。为了解决此问题,我们使用了 优化算法 (Duchi et al., 2011)。令 为一个矩阵,其中包含了前 次迭代中梯度外积的总和。 将学习率定义为:
这是逐组件的学习率,因为 与梯度具有相同的维度。请注意,由于 仅使用 的对角线,因此这些是我们唯一需要计算的元素。 通过噪声梯度的平方捕获噪声和变化的长度 scale ,并从标准的两参数 学习率中减少了我们算法的参数数量。
5.2 分层贝叶斯模型中的随机推断
随机优化也被用于将分层贝叶斯模型中的变分推断扩展到大数据(Hoffman 等,2013)。其基本思想是对观测进行子采样以计算含噪声梯度,类似的思想可以扩展到我们的方法中。
在分层贝叶斯模型中,我们有一个超参数 、全局隐变量 、局部隐变量 ,观测值 具有对数联合分布:
这与 Hoffman (2013)等人的定义相同,但他们对分布的形式和完全条件做了进一步的限制。在平均场近似族下,应用公式( 9 ) 构建 的含噪声梯度需要迭代每个数据点。与之相反,我们的方法使用来自观测的子采样和来自变分分布的样本来计算噪声梯度,读者可以在附录中找到带方差减少的公式推导。
6 实验研究
我们使用黑盒变分推断来快速构建和评估了医学数据中的多个模型,并且证明了方差减少方法的有效性,同时将我们的算法速度和预测似然与采样方法进行了比较。我们使用预测似然评估了各种模型,证明可以探索多个模型的难易程度。
6.1 医疗数据
我们的数据包括来自 一家诊所的 名被诊断患有慢性肾病的患者的纵向数据( 个训练样本, 个测试样本)。数据是在 协议下从 获得的。这些患者总共就诊了 次。在每次访问期间,大约有 条经过医生确定的测量数据子集被收集。
数据是可观测的,包括在患者进行检查时由医生自行决定的测量值(化验室值)。这意味着每个时间步骤的实验室都很稀少,而且患者就诊之间的时间非常不规律。化验室值都是正的,因为化验室测量的是特定数值的量,例如血液中的钠浓度。
我们的建模目标是:在每次就诊时,对患者的实验室结果进行低维总结,找到将每次访问总结为正随机变量的潜在因子。在医疗数据应用中,我们希望这些因子能够成为患者健康的潜在指标。
我们使用预测似然评估我们的模型。为了计算预测似然,我们需要全局参数和每次访问参数的近似后验。我们在全局参数上使用近似后验,并在测试集中75%的数据上计算局部参数上的近似后验。然后我们使用来自近似后验的蒙特卡罗样本计算验证集中其他 25% 数据的预测似然
我们做随机地初始化,并选择完全因子分解的变分族,其中正变量采用伽马分布、实值变量采用正态分布。我们在基本算法基础上,同时使用 和双随机扩展。我们使用 个样本来估计梯度,并使用 个样本来估计控制变量 Scaling ,并将所有实验的批量大小设置为 。
6.2 模型
为了实现我们的目标,我们构建了 时间序列(Gamma-Normal-TS) 模型 。我们使用从一个正态分布中抽取权重,并从另一个正态分布中抽取观测值对数据进行建模,允许每个因子对每个实验产生正和负影响,同时让因子表示实验室测量值。该模型在超参数 下的生成过程可以表示为:
我们设置 ,, 为 1,并设置 为 0.01。在我们的模型中, 是(L 维)伽马分布的期望/方差参数。(此参数与标准参数之间的映射关系可以在附录中找到。)
图 1:吉布斯与黑盒变分推断中的 Metropolis-Hastings 在 Gamma-Normal-TS 模型上的比较。 轴是时间, 轴是保留数据集的对数预测似然。黑盒变分推断比吉布斯采样更快地达到了预测似然。变分推断在 20 小时周期内存在略微的过拟合,而吉布斯采样器在 5 小时后进展明显减慢。
黑盒变分推断使我们能够将非标准参数用于更容易推断的分布。这是一个重要的观察结果,因为变分推断中使用的标准分布族集合相当有限。在这种情况下,伽马分布的期望参数允许使用先前访问的因子来定义当前访问因子的期望。最后,我们强调坐标上升变分推理方法和吉布斯采样不适用于此算法,因为所需的条件分布没有封闭形式。
6.3 采样方法
我们将黑盒变分推断与基于标准采样技术的 Metropolis-Hastings(Bishop,2006)进行比较,后者也只需要联合分布。
Metropolis-Hastings 通过从提议分布中采样,并根据似然接受或拒绝样本来工作。标准 Metropolis-Hasting 扫描在高维模型中效果不佳。我们发现它对于 Gamma-Normal-TS 模型失败了。相反,我们与使用 Metropolis-Hastings 从完整条件中进行采样的吉布斯采样方法进行比较。使用与上一节相同的提议分布,均值等于前一个参数的值。
我们使用由 MCMC 方法生成的后验样本对测试集中的保留数据计算预测似然。
我们将我们的方法与 模型上的吉布斯 Metropolis-Hastings 进行了比较。我们使用了 小时的固定计算预算。图 1 绘制了两种方法在保留集上的预测似然与时间的关系图。我们发现两种方法的随机初始化不同,结果相似。 黑盒变分推断提供了更好的预测似然并更快地获得它们。
6.4 方差减少
我们接下来研究了我们的方差减少方法减少了多少方差。在图 2 中,我们绘制了患者时间序列中某个因子的变分近似梯度的各种估计量与迭代次数的方差。我们比较了 Monte Carlo 梯度(方程 3)与 梯度(方程 6)的方差以及使用 和控制变量(方程 9)的梯度的方差。我们允许没有控制变量的估计器利用控制变量估计器使用的样本来估计缩放。我们发现 将方差减少了几个数量级。应用控制变量进一步减少了方差。这种方差的减少极大地提高了黑盒变分推理收敛的速度。事实上,在分配的时间内,算法 1——没有方差减少的算法——没有取得太大进展。
图 2:随机患者的第一个分量在以下估计量上的方差比较: 等式。 3、Rao-Blackwellized 估计量方程。 6,以及 Rao-Blackwellized 控制变量估计方程。 9. 我们发现Rao-Blackwellizing naive estimator 将方差减少了几个数量级。添加控制变量进一步降低了方差。
6.5 探索模型
我们开发了黑盒变分推理,以便更轻松地快速探索许多新模型并将其拟合到数据集。我们通过为我们的数据考虑三个其他模型的序列来证明这一点:Gamma、Gamma-TS 和 Gamma-Normal
(1)Gamma
We model the latent factors that summarize each visit in our models as positive random variables; as noted above, we expect these to be indicative of patient health. The Gamma model is a positive-value factor model where all of the factors, weights,and observations have positive values. The generative process for this model is
我们将模型中总结每次访问的潜在因素建模为正随机变量;如上所述,我们希望这些能够表明患者的健康状况。 Gamma 模型是一个正值因子模型,其中所有因子、权重和观测值都为正值。这个模型的生成过程是
我们将所有超参数 saveo 设置为 1。与之前的模型一样,ois 设置为 0.01。
(2)Gamma-TS
我们可以通过时间使用伽马分布的期望参数化来链接这些因素。 (请注意,对于通常的伽马自然参数化,这更难。)这将更改 xpv 分布为 GammaE.xpv1;v/。我们如上绘制xp1。在该模型中,下次访问时因子的期望值与当前访问时的值相同。这使我们能够通过时间传播患者状态
(3)Gamma-Normal
与上面类似,我们可以将时间序列 Gamma-Normal-TS(在上一节中研究过)更改为更简单的因子模型。这类似于 Gamma 模型,但是是正常的先验。
这些组合导致了一组四个模型,它们都是非共轭的,并且很难应用标准的变分技术。我们的变分推理方法允许我们计算这些模型的近似后验,以确定哪个提供了最好的低维潜在表示
我们使用验证集上对数预测似然的变化来确定收敛性。我们将 Gamma 模型的 AdaGradstep 设置为 0:5,其他模型设置为 1
表 1:我们的患者健康数据集的几个模型之间的比较。我们发现考虑到模型中数据的纵向性质会导致更好的拟合。 Gamma 模型的性能相对较差。这可能是由于一些实验室呈负相关,因为 Gamma 模型无法捕捉这种关系
(4) 模型比较
表 1 详细说明了我们的模型及其预测似然。由此可以看出,时间有助于对我们的纵向医疗保健数据进行建模。我们还看到 Gamma-Gamma 模型表现不佳。这可能是因为他们无法捕捉到不同医学实验室之间存在的负相关。更重要的是,通过使用 BlackBox Variational Inference,我们能够快速拟合和探索一组复杂的非共轭模型。如果没有通用算法,逼近这些模型中的任何一个的后验本身就是一个项目。
7 结论
我们开发并研究了黑盒变分推理,这是一种新的变分推理算法,可大大减少分析负担。我们的主要方法是通过从变分后验采样来计算噪声梯度来随机优化 ELBO。其成功的关键是模型自由方差减少,以减少噪声梯度的方差。我们的方法适用于新模型,同时需要从业者最少的分析工作。
这项工作的未来改进有几个自然方向。首先,可以为各种变分系列创建带有评分函数的软件库(每个评分函数只是变分分布相对于变分参数的对数梯度)。其次,我们认为可以动态设置样本数量。最后,从变分分布中精心选择的样本(例如,使用准蒙特卡罗方法)可能会显着降低采样方差。