【摘要】变分推断是概率模型中实现近似推断的主要方法之一,基于随机采样的 MCMC 方法在时间复杂度、空间复杂度和收敛可信度方面均不太适用于大型模型(如神经网络)和大规模数据集,而变分推断方法由于将 “估计分布的问题” 转换成了 “寻求具有最优参数的近似分布问题”,进而使推断速度得到了极大提升,而且能够和随机梯度等大样本量结合,是神经网络中寻求不确定性解常用的一种方法。本文介绍了变分推断的核心思想,并概述了迄今为止最主要的变分推断方法。

【原 文】 C. Zhang, J. Bütepage, H. Kjellström and S. Mandt, “Advances in Variational Inference,” in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 41, no. 8, pp. 2008-2026, 1 Aug. 2019, doi: 10.1109/TPAMI.2018.2889774.

🔔 对隐变量的概率分布进行推断,是概率生成模型(如变分自编码器、GAN等)中的核心命题之一 ,而变分推断是对概率分布进行近似推断的最常用方法。尤其是在神经网络和大数据场景中,采用变分推断方法几乎是不二的选择。因此,掌握变分推断对于理解、开发和使用概率生成模型具有非常重要的意义。

1 技术背景

概率模型中的后验推断通常难以处理,根据之前的介绍,通过对随机变量进行采样,能够为推断问题(例如,边缘似然推断)提供近似解。大多数基于采样的推断算法是属于马尔可夫链蒙特卡罗 (MCMC) 方法。

不幸的是,上述基于采样的方法有几个重要缺点。

  • 尽管随机方法可以保证找到全局最优解,但前提是时间充足,而这在实践中通常是受限的
  • 目前尚没有好的方法能够判断采样结果与真实解到底有多接近,收敛状况仍然需要人工判断
  • 为了找到一个效率足够高的解决方案,MCMC 方法需要选择合适的采样技术(例如,MH、HMC、NUTS 等),而选择本身就是一门艺术。

为此,人们一直在寻找既能保证适当精度,又比 MCMC 效率更高的后验推断方法,这就是变分推断。

2 变分推断

2.1 核心思想

根据贝叶斯概率框架,我们希望根据已有数据,来推断参数或隐变量的分布 pp,进而能够做后续的预测或生成等任务。但事实上在大量实践中,pp 并不容易表达,往往无法得到封闭表达形式,这使得推断变得异常困难。但是,我们可以考虑寻找一个容易表达的分布 qq 来近似 pp ,当 qqpp 之间差距足够小(或足够相似)时,qq 就是 pp 的推断结果,进而我们可以用 qq 代替 pp 执行后续任务。更进一步,当 qq 可参数化(即 qq 可以由若干变分参数 ν\nu 定义)时,推断问题就变成了一个寻找 ν\nu 的最优解的问题,优化目标是最小化 qqpp 两个概率分布之间的差距。其中, qq 被称为 变分分布ν\nu 被成为 变分参数,而整个推断方法被称为变分推断。

🔔变分推断的精髓是将 “求分布” 的概率推断问题,变成了 “缩小差距” 的优化问题。

单变量变分推断的示意图

图 1:单变量的真实分布与变分分布。

此处简化了假设,通常我们要推断的分布更为复杂,应当包含更多变量,因此很可能涉及高维空间中的复杂多峰分布。

变分方法与采样方法的主要区别是:

  • 变分方法几乎永远找不到全局最优解
  • 可以知道自身收敛情况,甚至可以对其准确性有限制
  • 更适合于随机梯度优化、多处理器并行处理以及使用 GPU 加速

虽然采样方法的历史非常悠久,但随着大数据的发展,变分方法一直在稳步普及,并成为目前使用更为广泛的推断技术。

2.2 几个要点

想要理解变分推断方法,需要掌握以下四个核心要点:

(1)模型

变分推断需要设计一个模型 p(z,x)p(\mathbf{z, x}) ,其中 x\mathbf{x} 为观测数据, z\mathbf{z} 为不可观测变量(包括隐变量和模型参数)。模型来自专家个人的业务知识和归纳偏好,通常可以用概率图模型来表达,而数据则来自实际观测,既可以是有监督的,也可以是无监督的。

注: 从可观测还是不可观测角度来看,模型参数和隐变量都具有不可观测的特点,但两者的含义和行为完全不同。例如,在变分自编码器中,隐变量被视为局部变量,而模型参数被视为全局变量;模型参数可以被视为未知的确切值,只需要得到点估计即可,而隐变量则被视为随机变量,需要推断其概率分布。对于变分自编码器之类概率生成模型来说,正是由于隐变量及其不确定性的存在,才使得我们能够为可观测数据生成各种各样既符合数据分布、又千变万化的新样本。

(2)目的

变分推断的目的是基于可观测数据 x\mathbf{x} 确定模型中不可观测变量 z\mathbf{z} 的值,但各种不确定性因素导致不可观测变量无法得到一个确切值,存在不确定性,通常只能给出其概率分布 p(zx)p(\mathbf{z \mid x})。这时存在的最大的题在于:这个概率分布可能非常复杂,无法直接给出封闭形式解。从应用角度来看,如果我们掌握了不可观测变量 z\mathbf{z} 的分布(通常是参数化的、简单的),则可以通过对 z\mathbf{z} 的采样获得一个 x\mathbf{x} 的近似样本。(注: 此处可参考 Elbo一文

(3)原理

变分推断将人为构造一个由参数 ν\boldsymbol{\nu} 定义(或索引)的概率分布 q(z;ν)q(\mathbf{z};\boldsymbol{\nu}) ,并通过一些方法或技巧来优化 ν\boldsymbol{\nu},使 q(z;ν)q(\mathbf{z};\boldsymbol{\nu}) 能够近似并且代替复杂的真实分布 p(zx)p(\mathbf{z \mid x})

(4)途径

变分推断通过一些优化算法,调整 ν\boldsymbol{\nu} 以缩小 q(z;ν)q(\mathbf{z};\boldsymbol{\nu})p(zx)p(\mathbf{z \mid x}) 之间的差异直至收敛。由于采用的是优化方法,因此可以和随机梯度下降等大规模数据集的优化算法结合,收获高效率。

下面做更进一步的阐释:

2.2.1 变分推断基于贝叶斯模型

简单说,专家利用其领域知识和归纳偏好,给出一个模型假设 p(z,x)p(\mathbf{z, x}) ,其中包括不可观测变量 z\mathbf{z} 和可观测变量 x\mathbf{x} ,这些变量之间可能还存在依赖关系。而变分推断必须基于该模型实施。

注: 此处不可观测变量和观测变量采用黑体符号,表示其为向量形式,即代表了不止一个随机变量。

为了理解不可观测变量和观测变量之间的关系,一种比较易于理解的表达方式是建立 “观测变量的生成过程” 。可以认为,观测变量是从某个已知的、由不可观测变量组成的结构中生成出来的。

以高斯混合模型为例(见下图)。图中是我们观测到的一个数据集,它实际上是从由 55 个相互独立的高斯组合而成的一个混合分布中采样的结果。如果从单个数据点出发,考虑其生成过程,可以分为两步:首先从 55 个类别组成的离散型分布中抽取一个类别样本(比如粉红色类别),然后从类别对应的高斯分布中抽取一个样本生成相应数据点。

🔔 每个实例仅来自于某一个特定的高斯分布,此处的混合分布是所有数据点一起构成的数据分布。

高斯混合分布实例

图 2 : 5 个组分构成的高斯混合模型示意图

在上例中,可以发现不可观测变量可能有多个:

  • 55 个高斯分布的均值参数 μ\boldsymbol{\mu} 和方差参数 σ2\boldsymbol{\sigma^2} (均为长度为 55 的向量)
  • 数据点所属类别 c\mathbf{c} (独热向量形式)

上述模型参数 μ\boldsymbol{\mu}σ2\boldsymbol{\sigma}^2 和隐变量 c\mathbf{c} 一起构成了模型中需要推断的不可观测变量 z\mathbf{z}

注意: 这里再次强调了隐变量模型的重要性,并且将其作为变分推断的主要使用场景。

2.2.2 难题:基于观测数据推断不可观测变量的分布

通过观测数据推断不可观测变量的分布是日常中最重要、最关键的一项任务,从这个概念上理解,变分推断的本质就是解决不可观测变量推断难题。

后验概率 p(zx)p(\mathbf{z|x}) 的物理含义是:基于现有观测数据 x\mathbf{x} ,推断不可观测变量 z\mathbf{z} 的分布。例如,对于上面的高斯混合模型来说,变分推断的目的就是求得不可观测变量 z\mathbf{z} 的后验分布 p(zx)p(\mathbf{z} \mid \mathbf{x})

根据贝叶斯公式,p(zx)=p(z,x)p(x)=p(xz)p(z)p(x)p(\mathbf{z} \mid \mathbf{x}) = \frac{ p(\mathbf{z,x}) }{ p(\mathbf{x})} = \frac{ p(\mathbf{x \mid z})p(\mathbf{z}) }{ p(\mathbf{x})} 。其中:

  • 联合分布:根据专家的归纳偏好以及数据生成过程建模,通常能够写出联合分布 p(z,x)=p(xz)p(z)p(\mathbf{z,x}) = p(\mathbf{x \mid z})p(\mathbf{z}) 的表达式,其中 p(z)p(\mathbf{z}) 为不可观测变量的先验,而 p(xz)p(\mathbf{x \mid z}) 是模型对应的似然函数。
  • 边缘似然:边缘似然 p(x)p(\mathbf{x}) 是一个很难处理的分母项。当 z\mathbf{z} 为连续型时,求边缘似然 p(x)p(\mathbf{x}) 需要对 p(z,x)p(\mathbf{z,x}) 关于 z\mathbf{z} 做边缘化(求积分);当 z\mathbf{z} 为离散型时,需要对所有可能的 z\mathbf{z} 求和;而无论是积分还是求和,计算复杂性都会随着样本数量增加呈指数增长。

上述分析表明,如果希望推断方法具备大数据样本的可扩展性,应当尽量避免边缘似然的计算。

2.2.3 关键:构造合适的变分分布

变分推断需要构造变分分布 q(z;ν)q(\mathbf{z}; \boldsymbol{\nu}),并通过优化调整 ν\boldsymbol{\nu},使 q(z;ν)q(\mathbf{z}; \boldsymbol{\nu}) 更接近真实后验 p(zx)p(\mathbf{z \mid x}) 。在变分分布 q(z;ν)q(\mathbf{z}; \boldsymbol{\nu}) 中, z\mathbf{z} 为不可观测变量,ν\boldsymbol{\nu} 是控制 qq 形态的变分参数(例如:假设 qq 为高斯分布,则 ν\boldsymbol{\nu} 为均值和方差;对于泊松分布,ν\boldsymbol{\nu} 则指 “0/1” 概率)。

因此构造变分分布 qq 分为两步:

  • 变分分布族的选择。通常依据 pp 的实际形态,由专家给出变分分布族,例如在上述高斯混合模型中,假设目标分布 pp 服从多元高斯分布,则构造 qq 时通常依然会考虑高斯分布。变分分布通常由基础的指数族分布构造而成,因为指数族分布具有共轭特性,便于后验分布的解析形式解。
  • 变分参数值的确定。确定变分分布类型后,需要计算的变分参数列表也就形成了。确定变分参数值的过程是一个优化迭代过程,通常经过渐进调整 ν\boldsymbol{\nu} 的值 ,使 qq 逐渐逼近 pp

2.2.4 目标函数的选择

直观地理解,变分推断的优化目标很明确,就是最小化 q(z;ν)q(\mathbf{z}; \boldsymbol{\nu})p(zx)p(\mathbf{z|x}) 之间的差距,而信息论为我们提供了一个量化两个概率分布之间差距的工具: KL\mathrm{KL} 散度。但不幸的是,在后验分布的推断任务中,KL\mathrm{KL} 散度的计算并不简单,因为在使用最大似然等方法来估计不可观测变量的真实分布 p(zx)p(\mathbf{z|x}) 时,仍然会涉及到边缘似然 p(x)p(\mathbf{x}) 的积分(或求和)计算。根据 第 2.2.2 节 的分析,这是应当极力避免。为此,有人提出了另外一个可操作的优化目标: 证据下界 ELBO\mathrm{ELBO} (见 第 2.4 节)。

ELBO\mathrm{ELBO} 的计算表达式中,只包括联合分布 p(z,x)p(\mathbf{z, x}) 和变分分布 q(z;ν)q(\mathbf{z}; \boldsymbol{\nu}) ,摆脱了难以处理的边缘似然项。并且在给定观测数据后,最大化 ELBO\mathrm{ELBO} 等价于最小化 KL\mathrm{KL} 。也就是说,ELBO\mathrm{ELBO} 的最大化过程结束时,获得的变分分布 q(z;ν)q(\mathbf{z}; \boldsymbol{\nu^\star}) 就是我们寻求的最终结果。

小结:变分推断是一个优化问题,其最直观的优化目标是最小化变分分布与真实后验分布之间的 KL\mathrm{KL} 散度,但实际可操作的优化目标是最大化证据下界 ELBO\mathrm{ELBO}

2.2.5 变分推断的形象化解释

下图为变分推断的示意图。图中大圈表示了一个分布族,由参数 ν\boldsymbol{\nu} 索引。我们也可以理解为,大圈是分布 qq 的参数 ν\boldsymbol{\nu} 的取值空间,圈中每个点均表示不同 ν\boldsymbol{\nu} 对应的分布 qq 。例如,在高斯混合模型的例子中, qq 属于高斯分布族,则不同的均值和方差,代表了不同的分布 qq 。从 νinit\boldsymbol{\nu}^{init}ν\boldsymbol{\nu}^* 的路径表示变分推断的优化迭代过程,通过优化更新 ν\boldsymbol{\nu} 值来缩小 qqpp 之间的差距,而这个差距通常采用 KL\mathrm{KL} 散度来衡量。路径终点 ν\boldsymbol{\nu}^* 对应的分布 pp 与真实后验 p(zx)p(z \mid x) 之间应当是某种距离测度上的最小值。

变分推断的可视化示意图

图 3 :变分推断示意图。

图中不可观测变量为 z\mathbf{z},既包含局部变量也包含全局变量(概念见 第2.3.2 节),而 ν\boldsymbol{\nu} 则对应了所有变分参数。

2.3 概率模型及表示

2.3.1 贝叶斯概率框架

贝叶斯概率框架

图 4 :贝叶斯概率工作框架

上图是贝叶斯统计问题的一般求解流程图。领域专家利用自身知识来建模,并且存在需要解答的问题。他们依据自身拥有的知识,给出带有归纳偏好的合理假设,构建出数据的生成过程模型。模型中主要包括不可观测变量、可观测变量以及它们之间的依赖关系。利用该模型,我们希望通过对样本数据的处理,挖掘出有价值的模式,然后实现各式各样的应用。

还是以高斯混合模型为例,可以将其生成过程形式化为:

μkN(0,σ2),k=1,,K,(先验)ci Categorical (1/K,,1/K),i=1,,n,(先验)xici,μN(ciμ,1)i=1,,n(似然)\begin{aligned} \boldsymbol{\mu}_{k} & \sim \mathcal{N}\left(0, \sigma^{2}\right), & & k=1, \ldots, K, &(先验)\\ \mathbf{c}_{i} & \sim \text { Categorical }(1 / K, \ldots, 1 / K), & & i=1, \ldots, n, &(先验)\\ \boldsymbol{x}_i \mid \mathbf{c}_{i}, \boldsymbol{\mu} & \sim \mathcal{N}\left(\mathbf{c}_{i}^{\top} \boldsymbol{\mu}, 1\right) & & i=1, \ldots, n &(似然) \end{aligned}

该模型混合了 KK 个相互独立的高斯组分( KK 是超参数),模型中的隐变量为数据点所在的类别 ci\mathbf{c}_i,其下标表示每个数据点对应一个隐变量(因此被称为局部的);各类别的均值 μk\boldsymbol{\mu}_k 和方差 σk2\boldsymbol{\sigma}_k^2 是所有数据点共享的模型参数(因此被称为全局的);为简化问题,此处假设 σk2\boldsymbol{\sigma}_k^2 为常数 11

设所有高斯组分的均值参数 μk\boldsymbol{\mu}_k 的先验为零均值的同方差高斯,如第一行所示;类别参数 ci\mathbf{c}_i 的先验为均匀的类别分布(因为缺乏关于类别的先验知识),如第二行所示。假设所有样本数据都是从某个方差为 11 的高斯混合模型中随机生成的,则任一数据点 xi\boldsymbol{x}_i 的生成过程可以通过似然表达出来(如第三行所示),分为两步 :

  • 第一步,从类别分布中随机抽取一个离散型的类标签 ci\mathbf{c}_i (此处采用独热变量形式);
  • 第二步,从类标签 ci\mathbf{c}_i 对应的均值为 μ=ciμ\mu = \mathbf{c}_{i}^{\top} \boldsymbol{\mu} 、方差为 11 的高斯分布中,随机抽取一个数据点 xi\boldsymbol{x}_i

更细致的举例说明见 图 2,五个分布用不同颜色表示,代表五个类别。每次从中选择一个类,如第三类粉红色,ci={00100}\mathbf{c}_i=\{0,0,1,0,0\} ,然后从第三类对应的高斯分布中抽取 xi\boldsymbol{x}_i ,其均值为 ciμ=μ3\mathbf{c}_i \cdot \boldsymbol{\mu}=\mu_3。该点大概率出现在粉红色类覆盖的区域内。

2.3.2 利用概率图表示和理解

概率图模型是表达随机变量之间结构和关系的有力工具(参见概率图理论文献)。

上述高斯混合模型的形式化生成过程,在概率图模型中体现为三个随机变量及它们之间的依赖关系(见下图),其中高斯组分的均值 μ\boldsymbol{\mu} 为模型参数,数据点所属类别 z\mathbf{z} 为隐变量,xi\boldsymbol{x}_i 为观测变量。此外,可以做更细致的划分,将 μ\boldsymbol{\mu} 视为全局随机变量,其作用发挥在所有数据上,而 ziz_i 为局部随机变量,只和数据点 xi\boldsymbol{x}_i 相关,与其他点无关。在概率图模型中,局部变量通常用矩形框与全局变量分隔开来。

高斯混合模型的概率图

图 5:高斯混合模型的概率图

(1)白圈为隐变量或模型参数,灰圈为可观测变量(有时也用双圈表示可观测变量,用单圈表示隐变量和模型参数);(2)矩形框内为局部变量,外部为全局变量;(3)矩形框表示其内部的变量 ziz_ixi\boldsymbol{x}_i 独立重复了 nn 次;(4)箭头表示随机变量之间的条件依赖关系。

概率图提供了一种非常漂亮的表示法,使我们很容易进行概率建模,并且很容易写出联合概率公式;进而为学习和推断奠定了基础。关于为何要使用概率图模型,卡耐基梅隆大学的教程中说道:

(1)“概率图模型” 实际上是一种思维方式,并非任何特定的模型。它们是一种用于交流、计算和开发的语言。
(2)概率论提供了为图中各组分的结合提供了理论依据,确保系统整体是一致的,并提供了将模型与数据对接的方法。
(3)概率图模型的图论视角,既提供了一种直观界面(人类可以通过该界面对高度交互的变量集进行建模),也提供了一种数据结构(可自然地用于设计高效的通用算法)。
(4)在统计学、系统工程、信息论、模式识别和统计力学等领域研究的许多经典多元概率系统,都是概率图模型形式化的特例。
(5)概率图模型框架提供了将所有这些系统视为通用底层形式化实例的一种方法。

按照概率图理论,我们可以基于上述概率图解析地写出所有随机变量的联合概率分布。由于真实的联合概率分布通常未知,因此我们可以使用经验数据来估计真实概率分布,其中最常用的就是最大似然法。我们可以将最大似然法的目标函数视为 “最小化经验分布与真实分布之间的 KL\mathrm{KL} 散度”。例如:在回归任务中,我们经常将目标变量 yy 的真实分布 p(y)p(y) 近似为高斯分布,并用 μ,σ2\mu,\sigma^2 对其参数化;而此时最大似然法其实是 “以最小化此高斯分布去与已知数据的经验分布之间的 KL\mathrm{KL} 散度作为目标函数” 得到最优参数 μ\muσ2\sigma^2。从这个角度来说,最大似然法就是一种变分推断,只是变分分布形式比较简单,并且只有均值和方差两个变分参数。根据上面的概率图,可以写出相应的联合概率分布为:

p(μ,z,x)=p(μ)i=1np(zi)p(xizi,μ)p(\boldsymbol{\mu}, \mathbf{z}, \mathbf{x})=p(\boldsymbol{\mu}) \prod_{i=1}^{n} p\left(z_i\right) p\left(\boldsymbol{x}_i \mid z_i, \boldsymbol{\mu}\right)

注:概率图模型理论主要涉及三个方面的主题:
(1) 表示:主要解决采用何种形式来描述联合概率分布的问题,根据概念已经可以得到初步答案,那就是图模型。概率图表示方法代表了形式主义的规范以及其与真实概率之间的映射。我们学习了概率图表示方法,就像是学会了一门手艺,但还需要用这门手艺设计出真正的一幅作品,而这需要人的思想和已有证据来共同推动实现,这就是学习。
(2) 学习:仅学会画概率图的技法并不是我们的最终目的。我们真正想做的事情,是根据已有证据,结合领域专业知识,得到适合特定问题的一个(或几个)概率图,这就是概率图学习的目的。这里面可能涉及变量设置、参数选择、变量间连接关系等诸多可变因素。此外,在学习方法上,最大似然估计显然最常用,但还有其他方法吗?如何与数据结合呢?需要多少数据呢?如何将领域知识整合进来,以便给出变量取值范围以及变量间关系的更合理值?
(3) 推断:如果概率图中并非所有随机变量都是可观测的,那么我们如何在给定证据时得到不可观测变量的条件分布呢?如何使这种计算变得高效呢?概率图推断就是指在给定证据的情况下,对概率图中不可观测变量的概率分布高效地计算出满足设计要求的合理结果。

2.3.3 隐变量和模型参数的推断难题

那么,对于上述高斯混合模型,我们到底需要变分方法推断什么内容呢?

根据贝叶斯统计框架,此例中我们已知观测数据 x\mathbf{x} 的样本数据点,需要根据这些数据点来推断隐变量 z\mathbf{z} 和模型参数 μ\boldsymbol{\mu} 的分布。即给定观测数据 x\mathbf{x} 时,推断隐变量和模型参数的后验概率。根据基础概率公式,其形式化描述为:

p(μ,cx)=p(μ,c,x)p(x)p(\boldsymbol{\mu}, \mathbf{c} \mid \mathbf{x})=\frac{p(\boldsymbol{\mu},\mathbf{c} , \mathbf{x})}{p(\mathbf{x})}

从形式上来看:

  • 分子项为联合分布的概率值 p(μ,c,x)p(\boldsymbol{\mu},\mathbf{c} , \mathbf{x}) , 可以根据概率图以及对变量分布作出的假设写出相应表达式;
  • 分母项 p(x)p(\mathbf{x}) 可以通过样本数据进行经验估计,不过这涉及所有数据点的积分问题,非常难以处理。

对于隐变量和模型参数进行推断是现实中最需要解决的问题,上面的分析说明,如果要采用变分方法来解决隐变量和模型参数的后验推断问题,就必须同时处理好边缘似然的计算问题,这比原始变分推断问题更复杂、更难。

2.3.4 更加通用的模型形式

如果把上述问题泛化一下,能够得到一个更通用的概率图形式,可以用于描述各种各样的贝叶斯统计模型:

广义的概率图描述

图 6:包含全局变量和局部变量的一般性概率图表示

上图与图 5 之间的最大区别在于,全局变量(通常是模型参数)有指向局部变量(通常是隐变量)的箭头,表明全局变量中有制约局部变量的因素。这给了我们一种直觉:或许可以对两者进行有区别地推断?

图 6 的概率模型中,可以通过概率图得出后验概率的分子项表达式 p(β,z,x)=p(β)i=1np(zi,xiβ)p(\beta,\mathbf{z,x}) = p(\beta ) \prod\limits^{n}_{i=1} p(z_i, x_i | \beta),此项的计算相对简单。分母中的边缘似然依然难以处理(见下式),涉及对所有隐变量和模型参数的积分计算。这意味着,即便隐变量或模型参数是离散型的随机变量,存在 KK 个可取值,其计算复杂度也是 O(Kn)O(K^n) 级别,也就是说分母所表示的边缘似然的计算复杂度为数据量 nn 的指数级规模。对于隐变量和模型参数的推断任务而言,变分推断不仅要找到合适的变分分布,还要解决边缘似然的计算难题。

p(β,zx)=p(β,z,x)p(x)=p(β,z,x)βzp(x)dβdzp(\beta, z \mid x)=\frac{p(\beta, z, x)}{p(x)}=\frac{p(\beta, z, x)}{\iint_{\beta z} p(x) d \beta d z}

2.4 目标函数的选择

2.4.1 理想中的目标函数:KL 散度

要将推断转化为优化问题,需要选择或者构造一个可参数化的变分分布族 Q\mathcal{Q} ,并设定合适的优化目标 J(q)J(q) 。我们将关于变分分布族的讨论放在后面的章节中,本节先讨论优化目标 J(q)J(q)

变分推断的目标需要捕获变分分布 qq 和目标分布 pp 之间的差距(或反之,相似度),而信息论为我们提供了一个直观并且好理解的工具,那就是 KL\mathrm{KL} ( Kullback-Leibler )散度

从形式上理解,KL\mathrm{KL} 散度指两个分布之间的差异。 qqpp 之间离散形式的 KL\mathrm{KL} 散度 被定义为:

KL(qp)=zq(z)logq(z)p(z)\mathrm{KL}(q \| p) = \int_z q(z) \log \frac{q(z)}{p(z)}

即在某个随机变量 zz 的作用域上,计算两个分布之间的交叉熵。其离散形式为:

KL(qp)=zq(z)logq(z)p(z)\mathrm{KL}(q \| p) = \sum_z q(z) \log \frac{q(z)}{p(z)}

在信息论中,此函数用于测量两个分布中所包含信息的差异大小。

KL\mathrm{KL} 散度具有以下性质,使其在近似推断任务中特别有用:

  • 对所有 qqpp ,都有 KL(qp)0\mathrm{KL}(q\|p) \geq 0
  • 当且仅当 q=pq = p 时,KL(qp)=0\mathrm{KL}(q\|p) = 0
  • KL\mathrm{KL} 散度不具备可逆性(或对称性),即 KL(qp)KL(pq)\mathrm{KL}(q\|p) \neq \mathrm{KL}(p\|q)

KL\mathrm{KL} 散度虽然很好理解,但是将其作为变分推断的目标函数却不可行。

2.4.2 变分推断任务中 KL 散度不可用

变分推断的一个常用场景是推断贝叶斯方法中的后验分布。后验分布是一个需要通过贝叶斯公式计算的分布,这会导致 KL\mathrm{KL} 散度无法作为目标函数直接使用。下面我们概括性地分析一下为什么不行。

为了方便说明,我们假设 z\mathbf{z} 的后验分布 pzx)p(\mathbf{z \mid x}) 可以被理想地因子化,即后验分布可以被因子化为如下的简单形式:

p(zx)=p(z1,,znx)=p~(z1,,znx)Z(x)=1Z(x)kϕk(zkx)p(\mathbf{z \mid x}) = p(z_1,\ldots,z_n \mid \mathbf{x}) = \frac{\tilde p(z_1,\ldots,z_n \mid \mathbf{x})}{Z(\mathbf{x})} =\frac{1}{Z(\mathbf{x})} \prod_{k} \phi_k(z_k \mid \mathbf{x})

其中:ziz_i 代表第 ii 个待推断的不可观测变量, x\mathbf{x} 代表观测数据向量,kk 为模型中因子的数量(有关因子的概念,参见无向概率图或马尔科夫随机场相关资料), ϕk()\phi_k(\cdot) 为第 kk 个因子的势,Z(x)Z(\mathbf{x}) 为归一化常数(或配分函数),p~\tilde{p} 表示未归一化前的值。

在上例中,归一化常数 Z(x)Z(\mathbf{x}) 代表了难以处理的边缘似然问题。按照此目标分布形式,如果以 KL\mathrm{KL} 散度作为目标函数的话,需要按照 KL\mathrm{KL} 散度的计算公式得到目标分布,而要计算目标分布 p(zx)p(\mathbf{z|x}) 的值,就需要计算 Z(x)Z(\mathbf{x}),这间接导致我们无法使用 KL(qp)\mathrm{KL}(q\|p) 做为目标函数。

作者在这里引入了一个实际案例,用于说明在变分推断任务中,KL\mathrm{KL} 散度不能直接作为目标函数使用。这里的逻辑是:
(1)在变分推断任务中,一种常见的目标分布是隐变量或模型参数的后验分布;
(2)根据贝叶斯定理,此类目标分布需要计算分母项的归一化常数,而该常数几乎不可求;
(3)KL\mathrm{KL} 散度公式中包含目标分布,目标分布不可求同时意味着 KL\mathrm{KL} 散度不可求;
(4)因此,需要寻找一个等价于 KL\mathrm{KL} 散度的可求目标函数。

2.4.3 可行的目标函数形式

考虑到归一化常数虽然难以处理,但在给定观测数据的情况下它是一个常数,因此,可以考虑将目标函数调整为能够达到等价效果的形式,即将目标分布设置为未归一化的分子项 p~(z)\tilde p(\mathbf{z}),( p~(z)=p(z,x)=p(xz)p(z)\tilde p(\mathbf{z}) = p(\mathbf{z,x}) = p(\mathbf{x \mid z})p(\mathbf{z}) ),则新的目标函数为:

J(q)=zq(z)logq(z)p~(z)J(q) = \sum_{\mathbf{z}} q(\mathbf{z}) \log \frac{q(\mathbf{z})}{\tilde p(\mathbf{z})}

此目标函数中, q(z)q(\mathbf{z}) 是人为设计的可参数化变分分布,p~(z)\tilde p(\mathbf{z}) 来自于先验和似然函数,各项均可处理,不涉及归一化常数的计算问题。习惯上,人们更喜欢使用 J(q)-J(q) 作为最终的目标函数,并称之为变分下界( ELBO\mathrm{ELBO} ):

ELBO=J(q)=zq(z)logq(z)p~(z)=E[logp(z,x)]E[logq(z)]\mathrm{ELBO} = - J(q) = - \sum_{\mathbf{z}} q(\mathbf{z}) \log \frac{q(\mathbf{z})}{\tilde p(\mathbf{z})} = \mathbb{E}\left[ \log p(\mathbf{z,x}) \right] - \mathbb{E}\left[ \log q(\mathbf{z}) \right]

此时,目标函数从最小化 KL\mathrm{KL} 散度,转变成了最大化 ELBO\mathrm{ELBO}。之所以选择 ELBO\mathrm{ELBO} 而不是 J(q)J(q) 作为目标函数,主要是因为 ELBO\mathrm{ELBO} 更加直观,而且更具有可解释性。

首先,在直观性方面,我们可以做一简单推导:

J(q)=zq(z)logq(z)p~(z)=zq(z)logq(z)p(z)logZ(x)=KL(qp)logZ(x)\begin{aligned} J(q) &= \sum_z q(z) \log \frac{q(z)} {\tilde p(z)} \\ &= \sum_z q(z) \log \frac{q(z)}{p(z)} - \log Z(\mathbf{x}) \\ &= \mathrm{KL}(q\|p) - \log Z(\mathbf{x}) \end{aligned}

也就是说,J(q)J(q)KL\mathrm{KL} 散度与证据(边缘似然)之差,而根据 KL\mathrm{KL} 散度的性质, KL(qp)0\mathrm{KL}(q\|p) \geq 0 ,则重排公式可得:

logZ(x)=KL(qp)J(q)J(q)\log Z(\mathbf{x}) = \mathrm{KL}(q\|p) - J(q) \geq -J(q)

该式表明,ELBO=J(q)\mathrm{ELBO} = -J(q) (见下图中的 L\mathcal{L} )是对数边缘似然 logZ(x)\log Z(\mathbf{x}) 的下界。

ELBO

图 7:边缘似然、变分下界与 KL 散度之间的关系。

也就是说,最小化 J(q)J(q) 等价于最大化对数边缘似然的下界 ELBO\mathrm{ELBO}

最关键的是,对数边缘似然 logZ(x)\log Z(\mathbf{x}) 和变分下界 ELBO\mathrm{ELBO} 之差,正好是 KL\mathrm{KL} 散度。 这就给了 ELBO\mathrm{ELBO} 一个非常形象的描述:最大化变分下界等效于通过 “挤压” ELBO\mathrm{ELBO}logZ(x)\log Z(\mathbf{x}) 之间的差,实现了 KL(qp)\mathrm{KL}(q\|p) 的最小化。

其次,在可解释性方面。如果我们将 ELBO\mathrm{ELBO} 重写为如下形式:

ELBO(q)=E[logp(z,x)]E[logq(z)]=E[logp(z)]+E[logp(xz)]E[logq(z)]=E[logp(xz)]KL(q(z)p(z))\begin{aligned} \mathrm{ELBO} (q) &= \mathbb{E}\left[ \log p(\mathbf{z,x}) \right] - \mathbb{E}\left[ \log q(\mathbf{z}) \right] \\ &= \mathbb{E} \left[ \log p(\mathbf{z}) \right] + \mathbb{E} \left [ \log p( \mathbf{x \mid z}) \right] - \mathbb{E} \left[ \log q(\mathbf{z})\right]\\ &= \mathbb{E} \left[ \log p( \mathbf{x \mid z}) \right] - \mathrm{KL}\left(q(\mathbf{z}) \| p(\mathbf{z})\right) \end{aligned}

上式将 ELBO\mathrm{ELBO} 拆解为了两项,第一项是似然的期望,它鼓励将概率质量置于能够解释观测数据的不可观测变量配置上。第二项是变分分布与先验的负散度项,它鼓励将概率质量置于接近先验的配置上。因此,变分目标反映了似然和先验之间的一种权衡。

ELBO 与 EM 算法之间的关系

重新审视 ELBO\mathrm{ELBO} 的定义表达式:

ELBO=E[logp(z,x)]E[logq(z)]\mathrm{ELBO} = \mathbb{E}\left[ \log p(\mathbf{z,x}) \right] - \mathbb{E}\left[ \log q(\mathbf{z}) \right]

其中第一项是完全对数似然的期望,正是 EM\mathbb{EM} 算法优化的目标(Dempster、Laird 和 Rubin 1977)。

EM\mathbb{EM} 算法设计用于在具有隐变量的模型中寻找最大似然估计。它基于这样一个事实:当 q(z)=p(zx)q(\mathbf{z}) = p(\mathbf{z \mid x}) 时, ELBO\mathrm{ELBO} 等于对数边缘似然 logp(x)\log p(\mathbf{x})(即对数证据)。

EM\mathbb{EM} 在 “根据 p(zx)p(\mathbf{z \mid x}) 计算完全对数似然的期望(E 步骤)” 和 “针对模型参数做优化(M 步骤)” 之间交替进行。与变分推断不同,EM\mathbb{EM} 假设 p(zx)p(\mathbf{z \mid x} ) 支持下的期望可计算,并将其用于其他困难的参数估计问题。与 EM\mathbb{EM} 不同,变分推断不估计固定的模型参数,因为在贝叶斯方法中,传统的参数会被视为不可观测变量。变分推断适用于无法计算不可观测变量确切条件分布的模型。

关于KL散度对称性的讨论

刚刚为变分推断重新定义了优化目标,并且表明,最大化下界等效于最小化散度 KL(qp)\mathrm{KL}(q\|p) 。 回想之前说过的 KLqp)KL(pq)\mathrm{KL} q\|p) \neq \mathrm{KL}(p\|q) ; 当 q=pq = p 时,两种散度都等于零,但当 qpq \neq p 时,两者的值不同。 这就提出了一个问题:为什么选择其中一个而非另一个,它们有何不同?

也许最重要的区别是计算效率:优化 KL(qp)\mathrm{KL}(q\|p) 时,涉及关于 qq 求期望;而优化 KL(pq)\mathrm{KL}(p\|q) 则需要关于 pp 求期望,而这又是难以处理甚至无法评估的。

但当近似分布族 Q\mathcal{Q} 不包含真实分布 pp 时,选择 KL(pq)\mathrm{KL}(p\|q) 会影响返回的解。 通过观察会发现,如果 p(x)=0p(x) = 0 并且 q(x)>0q(x) > 0 时, KL(qp)\mathrm{KL}(q\|p) 是无限的 ( 该散度有时被称为 I 投影或信息投影 ) :

KL(qp)=zq(z)logq(z)p(z)\mathrm{KL}(q\|p) = \sum_z q(z) \log \frac{q(z)}{p(z)}

这意味着,如果 p(z)=0p(z) = 0 ,则必须有 q(z)=0q(z) = 0 。 我们称: KL(qp)\mathrm{KL}(q\|p) 对于 qq 是零强制的,并且它通常会低估 pp 的支持。

另一方面,当 q(z)=0q(z) = 0 并且 p(z)>0p(z) > 0 时, KL(pq)\mathrm{KL}(p\|q) 是无限的 ( 该散度被称为 MM 投影或矩投影)。 因此,如果 p(z)>0p(z) > 0 ,则必须有 q(z)>0q(z) > 0 。 此时,我们称: KL(pq)\mathrm{KL}(p\|q) 对于 qq 是零避免的,并且它通常会高估 pp 的支持。

下图以图形方式说明了该现象。

KL散度的对称性

图 8:将单峰的近似分布 q(红色)拟合到多峰 p(蓝色)。

(a) 使用 KL(pq)\mathrm{KL}(p||q) 会导致 qq 试图覆盖两个峰。 (b)和 (c)使用 KL(qp)\mathrm{KL}(q||p) 会迫使 qq 选择 pp 的其中一个峰。

鉴于两种散度的上述性质,我们经常称 KL(pq)\mathrm{KL}(p\|q) 为包容性 KL\mathrm{KL} 散度, 而 KL(qp)\mathrm{KL}(q\|p) 是独占性的 KL\mathrm{KL} 散度。

小结:

  • 虽然 KL\mathrm{KL} 散度作为目标函数很直观,但在常见的后验推断任务中,由于归一化常数 ZZ 的存在,使得 KL\mathrm{KL} 散度无法作为目标函数直接计算
  • 采用等效的最大化 ELBO\mathrm{ELBO} 来代替最小化 KL\mathrm{KL} 散度作为新的优化目标,可以有效规避边缘似然(证据)的计算问题
  • ELBO\mathrm{ELBO} 中只包含变分分布 qq 和未归一化的分子项 p~\tilde p ,并且两者都可计算,可以作为真正可实施的优化目标
  • KL(qp)\mathrm{KL}(q\|p)KL(pq)\mathrm{KL}(p\|q) 虽然都是散度,也都可以作为优化目标,但作为目标时两者达到的效果截然不同。
    • 当目标分布为简单的单峰分布时,两者相差无几,都可以选择
    • 当目标分布为复杂的多峰分布时,前者倾向于选择能够覆盖某个峰的变分分布,而后者倾向于选择能够覆盖所有峰的变分分布。
  • ELBO\mathrm{ELBO} 最终表现为期望形式,为基于蒙特卡洛采样的估计奠定了基础,但同时也增加了最优化求解变分参数的难度,因为:
    • 对于单个数据点,目标函数表现为期望形式,该期望如何关于变分参数求导是一个新问题
    • 当使用最大似然法时,目标函数涉及所有数据点期望值之和,在此情况下如何关于变分参数求导?
    • 当仅存在全局变量时,上述最大似然的目标函数是在所有数据点上做积分,其结果的方差必然会增加,结果是否可收敛?
    • 如果还存在局部变量,则需要为每一个数据点对应的局部变量做推断,其难度几乎

3 经典方法 — 平均场、指数族与坐标上升算法

3.1 变分分布的平均场构造形式

如果需要推断的隐变量或参数比较多,我们在构造变分分布 qq 时,不仅需要考虑选择什么分布族,还需要考虑变量之间的依赖关系问题。本节从最简单的一种情况出发,先假设待推断变量可以被分解为多个因子,并且因子之间相互独立的情况。根据概率图模型,此时待推断变量的联合分布可以被分解为多个因子分布的乘积(见 图 9 )。在此类因子分解形式中,使用最广泛的一种构造形式是 完全因子分解,即每个待推断变量都有自己独立的分布( 图 10 ),与其他变量无关,进而使得待推断变量的联合分布可以被因子化为: q(z)=q1(z1)q2(z2)qn(zn)q(z) = q_1(z_1) q_2(z_2) \cdots q_n(z_n)

对于离散型不可观测变量而言,其中所有的 qi(zi)q_i(z_i) 都是一元离散变量上的类别分布,可以描述为一维表形式;对于连续型变量来说,所有 qi(zi)q_i(z_i) 都是一元变量上独立密度(如高斯等指数族分布)。

事实表明,这种对于变分分布的选择非常容易被优化程序处理,并且工作地出奇得好。在优化变分下界时,采用这种因子分解方法是构造变分分布的一种比较流行的选择,并被称为 平均场近似推断

独立因子假设

图 9:独立因子假设及其概率图表示

完全因子分解


图 10:完全因子分解后的平均场变分族

3.2 推断方法:坐标上升优化算法

采用平均场方式构造变分分布后,由于各不可观测变量之间相互独立,因此可以将多个不可观测变量的优化问题,分解成依次对每个不可观测变量进行优化的问题。也就是说,原优化目标是:

maxq1,,qnELBO(q)\max_{q_1, \ldots, q_n} ELBO(q)

新的优化目标是依次地在不可观测变量 qjq_j 上进行优化,其中 j{1,,n}j \in \{1,\dots,n\}。可以看出,问题得到了大大地简化。

实现新优化的标准方法是坐标上升法求最大值,具体来说,我们在 j=1,2,,nj=1,2,\ldots,n 上做迭代,对于每一个 jj ,在保持其他变量(视为 “坐标” )qj=ijqiq_{-j} = \prod_{i \neq j} q_i 固定的情况下,仅关于单一变量 qjq_j 优化 ELBO(qp)\mathrm{ELBO}(q\|p)

在针对每一个变量做优化时,假设其他不可观测变量的分布固定,根据 ELBO\mathrm{ELBO} 的定义,此时目标函数可以改写为:

L=Eq(z)[logp(z,x)]Eq(z)[logq(z)]=Eq(zj)[Ez¬jlogp(zj,x,z¬j)]Eq(zj)[logq(zj)]+cj\begin{aligned} \mathcal{L} &= \mathbb{E}_{q(\mathbf{z})}[\log p(\mathbf{z},\mathbf{x})] - \mathbb{E}_{q(\mathbf{z})} [\log q(\mathbf{z})]\\ &=\mathbb{E}_{q(z_j)} [\mathbb{E}_{\mathbf{z}_{\neg j}}\log p(z_j, \mathbf{x} , \mathbf{z}_{\neg j})] - \mathbb{E}_{q(z_j)} [\log q(z_j)] + c_j \end{aligned}

其中 z¬j\boldsymbol{z}_{\neg j} 表示 z\boldsymbol{z} 中除 zjz_{j} 之外的所有变量值,常数 cjc_{j} 包含所有常数项,例如只与 z¬jz_{\neg j} 相关的项对于 zjz_{j} 而言都可被视为常数。也就是说,我们可以将原有 ELBO\mathrm{ELBO} 中的完整期望分解为对 z¬j\boldsymbol{z}_{\neg j} 的内部期望和对 zjz_{j} 的外部期望。

对上式的 ELBO\mathrm{ELBO} 最大化,得到第 jj 个变量的最优变分分布为(推导过程略):

logq(zj)=Eq(z¬j)[logp(zjz¬j,x)]+ const \log q^{*}\left(z_{j}\right)=\mathbb{E}_{q\left(z_{\neg j}\right)}\left[\log p\left(z_{j} \mid \mathbf{z}_{\neg j}, \mathbf{x}\right)\right]+\text { const }

也就是说:单一变量(“坐标”)的优化问题具有简单的闭式解

上述坐标上升过程见 算法1。在常用的后验推断任务中,该算法可被用于拟合目标分布 p(zx)p(\mathbf{z} \mid \mathbf{x}) 的近似分布 q(z)q(\mathbf{z})。从几何意义上来看,坐标上升法中的每一步骤,都增加了变分下界,使其向对数边缘似然 logZ(x)\log Z(\mathbf{x}) 进一步收紧。最终的因子 qj(zj)q_j(z_j) 不会完全等于真正的边缘分布 p(zj)p(z_j) ,但对于许多实际应用,它们的表现足够好。例如,我们用它来确定 zjz_j 的峰值: maxzjp(zj)\max_{z_j} p(z_j)

alg:坐标上升算法

坐标上升法与消息传递算法之间的联系

坐标上升法可以看作是一种 “消息传递” 算法(Winn 和 Bishop 2005)。消息传递算法的基本思想是:用随机变量 AA 的马尔可夫毯中随机变量的变分参数来更新 AA 的变分参数,并迭代地更新所有随机变量的变分参数。这种方法使 infer.net 等自动化软件成为了可能(Wand 等 2011; Minka 等 2014)。变分消息传递将变分推断与图模型和概率推断的经典理论联系起来,现在已经扩展到了非共轭模型(Knowles 和 Minka 2011),并通过因子图进行泛化(Minka 2005)。

3.3 实例:高斯混模型的平均场变分分布

依然使用高斯混合模型的例子,根据概率图模型有:

p(μ,c,x)=p(μ)i=1np(ci)p(xici,μ)p(\boldsymbol{\mu},\mathbf{c},\mathbf{x})=p(\boldsymbol{\mu})\prod_{i=1}^{n} p(c_i)p(\boldsymbol{x}_i \mid c_i,\boldsymbol{\mu})

该模型中需要推断的不可观测变量为 z={μ,c}\mathbf{z} = \{\boldsymbol{\mu},\mathbf{c} \} ,其中 μ={μk}\boldsymbol{\mu} =\{ \mu_k\}k=1...5k=1...555 个高斯组分的均值构成的向量;c\mathbf{c} 是所有数据点的类别构成的向量。

高斯混合模型中需要推断的不可观测变量及其变分分布可以设置如下:

  • μ\boldsymbol{\mu} 作为全局变量构成的向量,其变分分布被构造为多元高斯分布 q(uk;mk,Sk)q(u_k;m_k,S_k) ,变分参数为 νμ={mk,Sk}\nu_\mu = \{m_k,S_k\}k=1...5k=1...5
  • cic_i 作为局部变量,其变分分布被构造为多项分布 q(ci;ψi)q(c_i ;\psi_i) ,变分参数为 νc={ψi}\nu_c=\{ \psi_i \}i=1...ni=1...n(注:类别分布的参数 ψi\psi_i 本身也是一个向量)。

按照平均场近似方法,假设所有不可观测变量之间相互独立,则总的变分分布 q(μ,c)q(\boldsymbol{\mu},c) 可被构造为:

p(μ,cx)q(μ,c)=k=1Kq(μk;mk,Sk2)i=1nq(ci;ψi)p(\boldsymbol{\mu},\mathbf{c} \mid \mathbf{x}) \approx q(\boldsymbol{\mu},c)=\prod_{k=1}^{K} q(\mu_k;m_k,S_k^2) \prod_{i=1}^{n}q(c_i ;\psi_i)

而变分推断通过坐标上升,逐步获得所有变分参数的最优点估计。这里需要注意的是,需要推断的隐变量 cic_i 与样本同规模,这造成坐标上升法可扩展性比较差。

3.4 推广至指数族分布

变分推断的另一个重要的技术点在于变分分布族 Q\mathcal{Q} 的选择。在高斯混合模型中,我们假设目标分布 pp 可能是高斯的,所以将变分分布 qq 构造为高斯的会更容易逼近 pp

但对于更为复杂的目标分布怎么办?答案是:可以用更广泛的指数族分布来构造!!!

数学上已经证明,目标分布 pp 不一定必须是高斯的,只要它属于指数族分布,我们就可以同样用指数族分布来构造其变分分布 qq。众所周知,指数族分布有一些很好的性质,其中最重要的一点就是可以给出目标函数的解析表达形式,而这让我们可以简化梯度的推导。事实上指数族分布非常宽泛,基本涵盖了常见的分布形态,如:高斯分布、χ2\chi^2 分布、伯努利分布、指数分布、贝塔分布、伽马分布、泊松分布等。

注:当目标分布 pp 本身确实并不属于指数族时,变分分布 qq 可能永远无法近似 pp,此时需要考虑 第 5 节 的方法: 黑盒变分推断。

4 提升规模 — 随机变分推断

上节中讲解了平均场变分分布的构造原理,并介绍了采用坐标上升法对其做优化的算法。但该方法存在两个方面的问题,导致其很难在实际中被应用:

  • 可扩展性问题:坐标上升过程需要所有样本参与计算,不适合大样本,在模型中存在局部变量时问题更突出。
  • 梯度下降问题:梯度下降的方向并非最优方向,收敛速度较慢。

随机变分推断方法(Stochastic Variational Inference) ,也称在线变分推断(On-line Variational Inference),针对上述问题进行了处理,有效提升了变分推断的可扩展性。

4.1 如何实现随机小批量 ?

解决大样本量最常用的方法是随机优化方法,如:随机梯度下降等。因此,在变分推断问题上,可以考虑同样使用随机优化方法解决可扩展性问题。

在最原始的坐标上升方法中,所有的不可观测变量同等对待,逐一更新一遍效率较低。为此,有学者对其进行了抽象,将不可观测变量分为两种类型: 由局部变分参数 ϕi\phi_i 参数化的逐数据点局部变量 zi\mathbf{z}_i由全局变分参数 λ\lambda 参数化的全局变量 β\boldsymbol{\beta};然后对全局变量和局部变量采取不同的推断策略,Blei 等结合文档主题模型,对此进行了高层次的总结。

注:后文中的 z\mathbf{z} 专用于指局部变量(主要是隐变量);而希腊字母 β\boldsymbol{\beta} 则代表全局变量(主要是模型参数)。

不可观测变量的分解

上面是根据 算法 1 的坐标上升法,对文档主题模型中的不可观测变量进行推断的算法摘要。可以看出,由于每个样本点都对应一个局部变量,因此在更新全局参数之前,必须遍历所有样本点。当样本量太大时,会造成模型更新的频率非常低。

Blei 等提出,可以重新考虑目标函数(变分下界)以适应随机梯度下降。具体来说,可以讲目标函数分解为 全局局部 两部分 :

L(λ,ϕ1:n)=Eq[logp(β)logq(β;λ)]global contribution +i=1nEq[logp(xi,ziβ)logq(zi;ϕi)]per-data point contribution \mathcal{L}\left(\lambda, \phi_{1: n}\right)=\underbrace{\mathbb{E}_{q}[\log p(\boldsymbol{\beta})-\log q(\boldsymbol{\beta} ; \boldsymbol{\lambda})]}_{\text {global contribution }}+\sum_{i=1}^{n} \underbrace{\mathbb{E}_{q}\left[\log p\left(\boldsymbol{x}_i, z_i \mid \boldsymbol{\beta} \right) - \log q\left(z_i ; \boldsymbol{\phi}_i\right)\right]}_{\text {per-data point contribution }}

如果用 f(λ)f(\boldsymbol{\lambda}) 表示被 λ\boldsymbol{\lambda} 参数化的全局部分:

f(λ):=Eq[logp(β)logq(βλ)]f(\lambda):=\mathbb{E}_{q}[\log p(\beta)-\log q(\beta \mid \lambda)]

并且,用 gi(λ,ϕi)g_{i}\left(\lambda, \phi_{i}\right) 表示第 ii 个数据点对应的局部部分:

gi(λ,ϕi):=Eq[logp(xi,ziβ)logq(ziϕi)]g_{i}\left(\boldsymbol{\lambda}, \phi_{i}\right):=\mathbb{E}_{q}\left[\log p\left(\boldsymbol{x}_i, z_i \mid \boldsymbol{\beta}\right) - \log q\left(z_i \mid \phi_{i}\right)\right]

则变分下界可改写为:

L(λ,ϕ1:n)=f(λ)+i=1ngi(λ,ϕi)\mathcal{L}\left(\lambda, \phi_{1: n}\right)=f(\lambda)+\sum_{i=1}^{n} \mathrm{g}_{i}\left(\lambda, \phi_{i}\right)

为了优化此目标,可以

(1)估计局部变量的变分参数

先固定全局变量,关于局部变量的变分参数 ϕi\phi_i 实施最大化,此时的变分下界目标变为:

L(λ,ϕ1:n)=f(λ)+i=1nmaxϕigi(λ,ϕi)\mathcal{L}(\lambda,\phi_{1:n}) = f(\lambda)+\sum_{i=1}^{n} \max _{\phi_{i}} \mathrm{g}_{i}\left(\lambda, \phi_{i}\right)

令每个数据点的优化估计结果为:

ϕi=argmaxϕigi(λ,ϕi)\phi_{i}^{*}=\arg \max _{\phi_i} \mathrm{g}_{i}\left(\lambda, \phi_{i}\right)

(2)估计全局变量的变分参数

ϕi\phi_{i}^{*} 代入 L(λ;ϕ1:n)\mathcal{L}(λ;\phi_{1:n}) 可以得到:

L(λ)=L(λ,ϕ1:n)=f(λ)+i=1ngi(λ,ϕi)\mathcal{L}(\lambda) = \mathcal{L}(\lambda,\phi^*_{1:n}) = f(\lambda)+\sum_{i=1}^{n} \mathrm{g}_{i}\left(\lambda, \phi^*_{i}\right)

其关于变分参数 λ\lambda 的梯度具有以下形式 :

L(λ)λ=f(λ)λ+i=1ngi(λ,ϕi)λ(7)\frac{\partial \mathcal{L}(\lambda)}{\partial \lambda}=\frac{\partial f(\lambda)}{\partial \lambda}+\sum_{i=1}^{n} \frac{\partial \mathrm{g}_{i}\left(\lambda, \phi_{i}^*\right)}{\partial \lambda} \tag{7}

也就是说,目标函数中的第二项是逐数据点求和项,其导数也可以累加。这说明,我们完全可以从数据集中随机二次采样得到样本数为 SS 的小批量样本,并对其使用小批量梯度下降算法,从而实现全局变量地高效更新。此时,目标函数变成:

L^(λ,ϕ1:S)=Eq[logp(β)logq(β;λ)]global contribution +NSs=1SEq[logp(xis,zisβ)logq(zis;ϕis)]per-data point contribution \hat{\mathcal{L}}\left(\lambda, \phi_{1: S}\right)=\underbrace{\mathbb{E}_{q}[\log p(\boldsymbol{\beta})-\log q(\boldsymbol{\beta}; \boldsymbol{\lambda})]}_{\text {global contribution }} + \frac{N}{S} \sum_{s=1}^{S} \underbrace{\mathbb{E}_{q}\left[\log p\left(\boldsymbol{x}_{i_s}, \boldsymbol{z}_{i_s} \mid \boldsymbol{\beta} \right) - \log q\left(\boldsymbol{z}_{i_s}; \boldsymbol{\phi}_{i_s}\right)\right]}_{\text {per-data point contribution }}

其中,isi_s 是小批量中的变量索引。上式的梯度是可计算的,不过是一个对最陡上升方向的含噪声估计。

随机变分推断的原始论文见: Hoffman, M. et al. (2013) ‘Stochastic Variational Inference’. arXiv. Available at: http://arxiv.org/abs/1206.7051 (Accessed: 26 October 2022).

4.2 参数梯度与自然梯度

无论坐标上升法还是随机梯度变分方法,都解决不了另外一个问题:变分下界的优化是在 变分参数空间 内进行的,并非直接基于概率分布,这会使更新和收敛速度比理想中的慢。因为变分参数仅仅是为了描述变分分布的,变分下界在变分参数空间中的梯度,通常并不是概率分布中上升(或下降)最快的那个方向。

参数空间与概率空间

图 10:变分参数空间中的梯度与概率分布空间中的梯度

产生上述原因的根本原因在于: 变分参数空间中的欧式距离无法准确度量概率分布之间的距离。

举例说明这种现象:

两组具有相同均值和方差的高斯分布对(可以想象为变分分布 qq 和 真实分布 pp ),虽然两者在变分参数(此例指均值)空间中具有相同的“距离”,但其 KL\mathrm{KL} 散度(即下图中同颜色的两个高斯分布之间的重叠区域,下界会有与其相对应的反应)却截然不同。如果固定均值为 0 ,仅考虑方差作为变分参数时,会有类似现象产生。

自然梯度的问题

图 11:具有相同变分参数(此处为均值)的两对高斯分布

虽然在变分参数空间中,两者距离相等,但是在概率分布的相似性度量上(可直观理解为两个分布之间的重叠区域),两者并不相等。同时表明,在参数空间的欧式距离上求梯度,不能代表最速下降(或上升)方向。

那能否能够直接基于概率分布空间做优化求解呢?答案是肯定的:那就是 将自然梯度方向作为优化的梯度方向

自然梯度是 Amari 于 1998 年提出的,主要用于衡量基于统计模型(如 KL\mathrm{KL} 散度)的目标函数。此处知识点可参见 文献综述

无论是从 KL\mathrm{KL} 散度的角度,还是从变分下界的角度,我们最期望的目标函数 L(λ,ϕ1..n)\mathcal{L}(\lambda,\phi_{1..n}) 都应当基于概率分布的。 文献 证明: Fisher 信息矩阵(Fisher Information Matrix, FIM) 是两个概率分布之间 KL\mathrm{KL} 散度的二阶近似,它表示了统计流形(即概率分布空间)上的局部曲率。这为计算自然梯度提供了基本条件,自然梯度可以定义为:

δθ==1λF1θL(λ,ϕ1..n)\delta \boldsymbol{\theta}^*==\frac{1}{\lambda} F^{-1}\nabla_{\boldsymbol{\theta}} \mathcal{L}(\lambda,\phi_{1..n})

式中的 FF 为 Fisher 信息矩阵, θ={β,z1..n}\boldsymbol{\theta} = \{\boldsymbol{\beta},\boldsymbol{z}_{1..n}\} 泛指所有不可观测变量。根据公式也可以看出,自然梯度考虑了参数空间上的曲率信息 θL(λ,ϕ1..n)\nabla_\theta \mathcal{L}(\lambda,\phi_{1..n})

4.3 自然梯度与随机梯度下降的结合

既然给出了目标函数的最速梯度方向,那么与 第 4.1 节 的随机梯度下降相结合就成为一种非常自然的想法。大家都知道,随机梯度下降是小批量梯度下降的特例,由于每次仅随机地使用一个样本(这也是取名为随机梯度下降的原因),因此会引入较大的方差,但总体趋向于最优解。以下算法 2 为 随机自然梯度变分推断算法, 其基本思想是:在每一轮迭代中,随机抽取一个样本数据点并计算最优局部变量,然后根据自然梯度公式更新全局参数,直至收敛。

利用自然梯度的随机变分推断算法

4.4 加快收敛速度

和传统的 SGD 方法一样,随机变分推断的收敛速度取决于梯度估计的方差。较小的梯度噪声允许较大的学习率,进而导致更快的收敛速度。常见的优化技巧包括:

4.4.1 自适应调整学习率

传统机器学习的优化算法中,为了加快收敛速度,会在每次迭代中利用经验梯度方差来指导学习率的调整,利用此思想的优化方法包括: RMSProp、AdaGrad、AdaDelta 和 Adam。这些方法虽然并非特定于随机变分推断,但也经常被使用。Ranganath 等 首先提出在 SVI 中引入了全局变分参数的自适应学习率方法,其中最优学习率被证明满足

ρt=(γtγt)T(γtγt)(γtγt)T(γtγt)+tr(Σ)\rho_t^*=\frac{\left(\gamma_t^*-\gamma_t\right)^T\left(\gamma_t^*-\gamma_t\right)}{\left(\gamma_t^*-\gamma_t\right)^T\left(\gamma_t^*-\gamma_t\right)+\operatorname{tr}(\Sigma)}

上面,ρt\rho_t^* 表示最优全局变分参数,ρt\rho_t 表示当前估计。 Σ\Sigma 是这个批量中变分参数的协方差矩阵。由于 ρt\rho_t^* 未知,Ranganath 展示了如何以在线方式估计最佳学习率。

4.4.2 自适应调整批量大小

由于大数定律,增加批量大小可以降低随机梯度噪声,从而允许更大的学习率。为了加速学习过程,可以针对给定的学习率优化调整批量大小。这可以实现自适应调整学习率类似的效果。为了减少 SGD 方差,建议选择与目标函数相对于其最优值成比例的批量大小。在实践中,估计的梯度噪声协方差和梯度大小常被用来估计最优的批量大小。

4.4.3 尽量削减方差

除了通过学习率和小批量大小控制优化路径外,我们还可以通过减少方差来实现更大的梯度步长。在 SVI 中经常使用方差减少来实现更快的收敛,其中常用的方法包括控制变量、非均匀抽样等:

(1)控制变量法

控制变量是一个随机项,可以添加到随机梯度中,使其期望保持不变,但其方差会降低。控制变量需要与随机梯度相关,并且易于计算。在蒙特卡洛模拟和随机优化中,经常使用控制变量来减少方差。Johnson 等人建议在 SVI 背景下使用控制变量,提出了随机方差减少梯度(SVRG)方法。在 SVRG 中,每个样本点构建一个控制变量,该变量利用了所有数据点的先验梯度,而每个样本点利用了沿着优化路径的梯度是相关的。标准随机梯度更新 γt+1=γtρt(L^(γt))\gamma_{t+1}=\gamma_t-\rho_t\left(\nabla \hat{L}\left(\gamma_t\right)\right) 替换为:

γt+1=γtρt(L^(γt)L^(γ~)+μ~).\gamma_{t+1}=\gamma_t-\rho_t\left(\nabla \hat{L}\left(\gamma_t\right)-\nabla \hat{L}(\tilde{\gamma})+\tilde{\mu}\right) .

L^\hat{L} 表示基于当前小批量索引集的估计目标(这里是负 ELBO),γ~\tilde{\gamma} 是每 mm 次迭代后 γ\gamma 的快照, μ~\tilde{\mu} 是对所有数据点计算的批梯度,μ~=L(γ~)\tilde{\mu}=\nabla \mathcal{L}(\tilde{\gamma})。由于 L(γ~)+μ~-\nabla \mathcal{L}(\tilde{\gamma})+\tilde{\mu} 的期望为零,因此它是一个控制变量。

SVRG 需要在每 mthm_{th} 次迭代中对数据集进行一次完整的传递来计算完整的梯度,即使对于大型数据集,完整的传递可以放宽到非常大的 mini-batch。对于平滑但非强凸目标,与 SGD 的 O(1/T)\mathcal{O}(1 / \sqrt{T}) 相比,SVRG 被证明可以实现渐近收敛速度 O(1/T)\mathcal{O}(1 / T)。在实践中还有许多其他控制变量 [140]、[146]、[203],例如非常有名的 “评分函数控制变量”。

(2)非均匀采样法

代替以相等概率对数据点进行二次采样,可以使用非均匀采样来选择具有较低梯度方差的小批量。几位作者提出了在小批量选择[32]、[55]、[148]、[226]的背景下重要性抽样的变体。虽然有效,但这些方法并不总是实用的,因为采样机制的计算复杂性与模型参数的维度有关 [47]。替代方法旨在使相似点去相关并采样多样化的小批量。这些方法包括分层抽样[225],其中一个基于元数据或标签从预定义的子组中抽样数据,基于聚类的抽样[47],这相当于使用k-means对数据进行聚类,然后从每个具有调整概率的集群,以及多样化的小批量采样[223] [224],使用排斥点过程来抑制同一小批量中具有相似特征的数据点的概率。所有这些方法都已被证明可以减少方差,也可以用于学习不平衡数据。

(3)其他方法

已经开发了许多有助于减少 SVI 方差的替代方法。一种流行的方法依赖于 [154] 中使用的 RaoBlackwellization。 RaoBlackwellization 定理(见附录 A.5)通常指出,如果存在一个有效的统计量,条件估计具有较低的方差,它可以

Rao-Blackwell 定理

θ^\hat{\boldsymbol{\theta}} 是对参数 θ\boldsymbol{\theta} 的一个估计(对于所有 θ\boldsymbol{\theta},有 E(θ^2)<infty\mathbb{E}(\hat{\boldsymbol{\theta}}^2) < \\infty )。假设 ttθ\boldsymbol{\theta} 的充分统计量,并令 θ=E(θ^t)\boldsymbol{\theta}^\ast = \mathbb{E}(\hat{\boldsymbol{\theta}} \mid t) 。那么对于所有的 θ\boldsymbol{\theta},有:

E(θθ)2E(θ^θ)2E(\boldsymbol{\theta}^\ast - \boldsymbol{\theta})^2 \leq E(\hat{\boldsymbol{\theta}} - \boldsymbol{\theta})^2。

上述不等式是严格的,除非 θ^\hat{\boldsymbol{\theta}} 是充分统计量 tt 的函数。这意味着以充分统计量为条件的估计 θ=E(θ^t)\boldsymbol{\theta}^\ast = \mathbb{E} ( \hat{\boldsymbol{\theta}} \mid t),是一个比任何其他估计量 θ^\hat{\boldsymbol{\theta}} 更好的估计。

随机梯度变分推断相关参考文献

5 提升通用性 — 黑盒变分推断

在本节中,我们将回顾旨在使变分推断更通用的技术。这包括使变分推断适用于更广泛的模型类别,并使变分推断更加自动化,消除了对模型特定计算的需要。

上面章节中,我们针对特定模型做出变分推断,其中大家应该已经注意到了,在 ELBO\mathrm{ELBO} 的计算表达式中, 需要人为设定 qq ,并给出 ELBO\mathrm{ELBO} 公式中期望的解析表达形式(事实上,文献 已经表明,该方法只适用于 条件共轭指数族分布)。考虑到现实世界中可能存在无数种模型,而且大部分可能是非共轭的,即便符合条件共轭假设,为每一个模型设计一种变分方案显然也是不可接受的。 因此,人们自然而然在思考: 是否存在一个不需特定于某种分布形式的通用解决方案? 这个解决方案最好将像黑匣子一样,只需输入模型和海量数据,然后就自动输出变分分布(或变分参数)。事实表明,这是有可能的,此类推断方法被称为 黑盒变分推断(Black Box Variational Inference, BBVI)

黑盒变分推断概念

图 12:变分推断概念图

黑盒变分推断的愿景是:

  • 兼容性:可以轻松对 任何模型 进行变分推断;
  • 扩展性:可以利用 海量数据 进行推断;
  • 易用性:用户只需指定模型而 无需做其他数学工作

目前使用比较广泛的黑盒变分推断方法主要有:

  • 基于打分梯度估计 的黑盒变分推断( BBVI )
  • 基于重参数化梯度估计 的黑盒变分推断( BBVI )

下面,我们从 第 5.1 节 中的拉普拉斯近似开始并说明传统变分推断的局限性,并引出不需要封闭形式概率分布的黑盒变分推断(BBVI)。我们在 第 5.2 节 中讨论基于评分函数( 或 REINFORCE )梯度的黑盒变分推断方法,在 第 5.3 节 中讨论使用重参数化梯度的另外一种黑盒变分推断方法。在 第 5.4 节 讨论比较先进的自动微分变分推断方法(ADVI)。

5.1 从拉普拉斯近似推断开始

我们先简要回顾一下拉普拉斯近似,因为它是不使用共轭先验就能够获得近似后验的最早方法之一。

拉普拉斯近似选择高斯作为真实后验的近似分布,而且是一种非共轭的近似推断方法。在做近似推断时,该方法需要求解最大后验并计算 Hessian 的逆矩阵,这两者中的主要元素分别表示高斯后验的近似均值和协方差。

该方法需要满足基本的条件,即: 对数后验需要满足二次可微条件。根据贝叶斯中心极限定理[27],后验在数据规模增加时渐近逼近高斯分布,此时拉普拉斯近似也变得越来越精确。该方法可用于求解最大后验的均值和协方差、预测密度和边缘后验密度 [192]。拉普拉斯方法也已经扩展到更复杂的模型,例如具有连续型随机变量的信念网络 [9]。

拉普拉斯近似的以下主要缺点,导致其在具有大量参数的场景中几乎无法使用:

  • 拉普拉斯只能得到局部最优解,并且该解仅取决于局部最优解附近的后验曲率;最小化 KL\mathrm{KL} 散度通常能够获得更准确的后验协方差。
  • 拉普拉斯近似仅限于高斯变分族,因此不适用于离散变量[207]。
  • 在计算上,可能需要对大型 Hessian 矩阵求逆,代价较高。

5.2 黑盒变分推断思想

在经典变分推断中,通常首先推导 ELBO\mathrm{ELBO} 的解析形式,然后再进行优化;此过程通常仅限于条件共轭指数族中的模型。对于许多其他模型(如贝叶斯深度学习架构、复杂的分层模型等)来说,ELBO\mathrm{ELBO} 中包含期望项,几乎不可能存在已知的或简单的解析解。即便存在可用的解析解,其推导通常也需要时间和数学专业知识。

相比之下,黑盒变分推断提出了一种只需指定数据生成过程的通用推断算法。该算法的核心思想是: 只要能够想办法在没有解析表达式的情况下得到 ELBO\mathrm{ELBO} 公式中期望的无偏估计,那么就可以直接以该无偏估计关于变分参数的梯度作为随机梯度执行梯度上升或下降,而无需事先得到期望的解析表达形式

上述设想能够成立吗?

5.3 打分梯度估计方法

考虑如下概率模型,其中 x\mathbf{x} 是观测变量,z\mathbf{z} 是不可观测变量,其变分分布为 q(z;ϕ)q(\mathbf{z}; \boldsymbol{\phi}) 。变分下界 ( ELBO\mathrm{ELBO} ) 可以表示成如下期望形式:

L(ϕ)Eq[logp(x,z)logq(z;ϕ)](9)\mathcal{L}(\boldsymbol{\phi}) \simeq \mathbb{E}_{q}[\log p(\mathbf{x}, \mathbf{z})-\log q(\mathbf{z} ; \boldsymbol{\phi})] \tag{9}

对上式关于变分参数求梯度,经过推导以后(推导过程见后方参考资料),可得到如下新的梯度公式:

ϕL=Eq[ϕlogq(z;ϕ)Score Function(logp(x,z)logq(z;ϕ))](10)\nabla_{\boldsymbol{\phi}} \mathcal{L}=\mathbb{E}_{q}\left[\underbrace{\nabla_{\boldsymbol{\phi}} \log q(\mathbf{z} ; \boldsymbol{\phi})}_{\text{Score Function}}(\log p(\mathbf{x}, \mathbf{z})-\log q(\mathbf{z} ; \boldsymbol{\phi}))\right] \tag{10}

上式表明,ELBO\mathrm{ELBO} 关于变分参数的梯度,最终可以表示为变分分布关于变分参数的梯度形式。

更进一步的,我们可以采用蒙特卡洛积分来实现上式中期望的计算,即首先对变分分布 qq 进行随机采样,然后利用获得的样本计算期望的无偏估计:

ϕL^score=1Kk=1Kϕlogq(zs;ϕ)(logp(x,zk)logq(zk;ϕ))(11)\nabla_{\boldsymbol{\phi}} \hat{\mathcal{L}}_{score} = \frac{1}{K} \sum_{k=1}^{K} \nabla_{\boldsymbol{\phi}} \log q(z_s;\boldsymbol{\phi})(\log p(\mathbf{x},z_k) - \log q(z_k;\boldsymbol{\phi})) \tag{11}

其中 zkq(z;ϕ)z_k \sim q(\mathbf{z} ; \boldsymbol{\phi}) 为变分分布的样本,而 KK 是变分分布样本的数量。

注意: 蒙特卡洛积分所需的样本是随机样本,因此其基本原则是概率越大的区域样本越多。

由于蒙特卡洛方法自身对所采样的分布没有特殊形式要求,因此,不需要了解变分分布的解析形式,而这也正是此类方法被称为黑盒方法的主要原因。

黑盒变分推断方法只需要人们提供可观测变量和不可观测变量的联合分布(即指定概率模型),而无需明确推导出 ELBO\mathrm{ELBO} 梯度的解析形式。公式中的 ϕlogq(zϕ)\nabla_{\boldsymbol{\phi}} \log q(\mathbf{z} \mid \boldsymbol{\phi}) 被称为打分函数,是 REINFORCE 算法的一部分。


支撑材料: 打分梯度公式的证明

式 (10) 的证明,有错误

此处见 参考文献
与推导出式(10)需要两个基本事实:

  • ϕqϕ(z)=1qϕ(z)ϕqϕ(z)=qϕ(z)ϕqϕ(z)\nabla_{\boldsymbol{\phi}} q_{\boldsymbol{\phi}}(\mathbf{z})=\frac{1}{q_{\boldsymbol{\phi}}(\mathbf{z})} \nabla_{\boldsymbol{\phi}} q_{\boldsymbol{\phi}}(\mathbf{z})=q_{\boldsymbol{\phi}}(\mathbf{z}) \nabla_{\boldsymbol{\phi}} q_{\boldsymbol{\phi}}(\mathbf{z})

  • Eq[ϕlogqϕ(z)]=0\mathbb{E}_{q}\left[\nabla_{\boldsymbol{\phi}} \log q_{\boldsymbol{\phi}}(\mathbf{z})\right]=0 , 即对数似然梯度(打分函数)的期望为零。

基于这两个事实,可以推导出 ELBO\mathrm{ELBO} 的打分梯度:

ϕL=ϕz[qϕ(z)logp(x,z)qϕ(z)logqϕ(z)]dz=z{logp(x,z)ϕqϕ(z)[ϕqϕ(z)logqϕ(z)+qϕ(z)1qϕ(z)ϕqϕ(z)]}dz=zϕqϕ(z)[logp(x,z)logqϕ(z)1]dz=zqϕ(z)ϕqϕ(z)[logp(x,z)logqϕ(z)1]dz=Eqϕ[ϕqϕ(z)(logp(x,z)logqϕ(z))]Eqϕ[ϕqϕ(z)]=Eqϕ[ϕqϕ(z)(logp(x,z)logqϕ(z))]\begin{aligned} \nabla_{\boldsymbol{\phi}} \mathcal{L} &=\nabla_{\boldsymbol{\phi}} \int_{z}\left[q_{\boldsymbol{\phi}}(z) \log p(x, z)-q_{\boldsymbol{\phi}}(z) \log q_{\boldsymbol{\phi}}(z)\right] \mathrm{d} z \\ &=\int_{z}\left\{\log p(x, z) \nabla_{\boldsymbol{\phi}} q_{\boldsymbol{\phi}}(z)-\left[\nabla_{\boldsymbol{\phi}} q_{\boldsymbol{\phi}}(z) \log q_{\boldsymbol{\phi}}(z)+q_{\boldsymbol{\phi}}(z) \frac{1}{q_{\boldsymbol{\phi}}(z)} \nabla_{\boldsymbol{\phi}} q_{\boldsymbol{\phi}}(z)\right]\right\} \mathrm{d} z \\ &=\int_{z} \nabla_{\boldsymbol{\phi}} q_{\boldsymbol{\phi}}(z)\left[\log p(x, z)-\log q_{\boldsymbol{\phi}}(z)-1\right] \mathrm{d} z \\ &=\int_{z} q_{\boldsymbol{\phi}}(z) \nabla_{\boldsymbol{\phi}} q_{\boldsymbol{\phi}}(z)\left[\log p(x, z)-\log q_{\boldsymbol{\phi}}(z)-1\right] \mathrm{d} z \\ &=\mathbb{E}_{q_{\boldsymbol{\phi}}}\left[\nabla_{\boldsymbol{\phi}} q_{\boldsymbol{\phi}}(z)\left(\log p(x, z)-\log q_{\boldsymbol{\phi}}(z)\right)\right]-\mathbb{E}_{q_{\boldsymbol{\phi}}}\left[\nabla_{\boldsymbol{\phi}} q_{\boldsymbol{\phi}}(z)\right] \\ &=\mathbb{E}_{q_{\boldsymbol{\phi}}}\left[\nabla_{\boldsymbol{\phi}} q_{\boldsymbol{\phi}}(z)\left(\log p(x, z)-\log q_{\boldsymbol{\phi}}(z)\right)\right] \end{aligned}

基于 公式 11 实现的随机梯度上升可能会遇到梯度方差过高的情况,不过大部分黑盒变分推断方法可以通过 第 4.4 节 提到的 Rao-Blackwellization 和控制变量方法来削减方差。不过,与随机变分推断的噪声来源(来自对有限数据点集的二次重采样)不同,黑盒变分推断的噪声源于可能具有无限支撑集的随机变量。在这种情况下,SVRG 等技术不适用,因为完整的梯度无法用有限多个项的和来计算。因此,黑盒变分推断涉及一组不同的控制变量和其他方法。其中最重要的一种控制变量是评分函数控制变量,它定义为梯度估计减去评分函数的蒙特卡罗期望:

ϕL^control=ϕL^wKk=1Kϕlogq(zk;ϕ)\nabla_{\boldsymbol{\phi}} \hat{\mathcal{L}}_{\text{control}} = \nabla_{\boldsymbol{\phi}} \hat{\mathcal{L}} - \frac{w}{K} \sum_{k=1}^{K} \nabla_{\boldsymbol{\phi}} \log q(z_k;\boldsymbol{\phi})

评分函数控制变量关于变分分布的期望为零,在实际使用中可以通过选择权重 ww 来最小化梯度的方差。

虽然最初的黑盒变分推断论文同时介绍了 Rao-Blackwellization 和控制变量,但 Tistsias 等人 认为,控制变量的良好选择可能取决于模型本身。他们进一步阐述了局部期望梯度,该梯度只考虑了每个变量的马尔可夫毯。 Ruiz 等人 提出了一种不同的方法,它引入了一种过度分散的重要性采样方法。通过从一个过度分散的指数族提议分布中采样,结合在变分分布尾部放置高质量,梯度的方差得到了有效地削减。

5.4 重参数化方法

实现黑盒变分推断的另外一种常见方法是采用 重参数化梯度,该方法认为: 变分分布可以被表示为某种噪声分布的确定性变换(可参数化的),而方差是噪声源变换后的结果。根据经验, 重参数化梯度的方差要低于上述 REINFORCE 梯度

重参数化技巧首先将随机变量表示为某种噪声分布的确定性函数,然后用关于噪声分布的蒙特卡洛积分代替关于变分分布的蒙特卡洛积分,进而使 ELBO\mathrm{ELBO} 关于变分参数的梯度计算大大简化。重参数化技巧为一大类模型提供了低方差的随机梯度估计,而无需计算解析形式的期望。

更详细地说,重参数化技巧认为:服从分布 q(z;ϕ)q(z; \boldsymbol{\phi}) 的随机变量 zz ,可以被表示为某种噪声随机变量 εr(ε)\varepsilon \sim r(\varepsilon) 的变换,其中 r(ε)r(\varepsilon) 为某种噪声分布。当该变换非常复杂时,就可以为 zz 生成更复杂的分布。

最简单的一种变换是线性变换,即随机变量 zN(z;μ,σ2)z \sim \mathcal{N} (z; \mu, \sigma^2),可以被改写成 z=μ+σεz = \mu + \sigma \varepsilon 形式,其中噪声具有简单的分布形式 εN(ε;0,1)\varepsilon \sim \mathcal{N}(\varepsilon; 0, 1)

更一般地,随机变量 zz 可以由随机噪声的参数化、确定性的复杂变换给出: z=g(ε,ϕ)z = g(\varepsilon, \boldsymbol{\phi}),其中 εr(ε)\varepsilon \sim r(\varepsilon)。比较重要的假设是:噪声分布 r(ε)r(\varepsilon) 被认为与参数 ϕ\boldsymbol{\phi} 无关。也就是说,我们预期构造的变分分布 q(z;ϕ)q(z; \boldsymbol{\phi}) 可以直接采用变换 g(ε,ϕ)g(\varepsilon, \boldsymbol{\phi} ) 中的参数 ϕ\boldsymbol{\phi} 。这使得任何基于随机变量 zz 的求期望计算,都可以被转换为基于随机噪声 ε\varepsilon 的求期望计算,当随机噪声是一个简单分布(如高斯分布)时,这会大大降低采样和蒙特卡洛积分的难度。通过这种处理后,我们可以得到一种新的 ELBO\mathrm{ELBO} 的随机梯度估计器,该估计器能够使用噪声分布的样本来实现对变分分布的样本,并进而用于计算 ELBOELBO 目标函数的梯度:

ϕL^reparam=1Kk=1Kϕ(logp(xi,g(εk,ϕ))logq(g(εk,ϕ);ϕ))(12)\nabla_{\boldsymbol{\phi}} \hat{\mathcal{L}}_{reparam} = \frac{1}{K} \sum_{k=1}^{K} \nabla_{\boldsymbol{\phi}} \left( \log p(x_i,g(\varepsilon_k,\boldsymbol{\phi})) - \log q(g(\varepsilon_k,\boldsymbol{\phi}); \boldsymbol{\phi}) \right) \tag{12}

其中 εkr(ε)\varepsilon_k \sim r(\varepsilon) 是噪声变量的样本,而 KK 为噪声变量的样本数量。

与打分函数梯度方法存在一个独立的打分函数不同,重参数化的梯度估计公式直接求对数联合分布和对数变分分布的梯度。其中对数联合分布的梯度可以指示最大后验峰值的方向,这使得重参数化方法的梯度方差较低。

重参数化的示例

假设变分分布可以表示成如下变换:

ϵr(ϵ)z=t(ϵ,ϕ)zq(z;ϕ)\begin{aligned} &\epsilon \sim r(\epsilon)\\ &\mathrm{z}= t(\epsilon, \boldsymbol{\phi}) \end{aligned} \Leftrightarrow \quad z \sim q(\mathbf{z} ; \boldsymbol{\phi})

例如:

ϵN(0,1)z=μ+ϵσzN(μ,σ2)\begin{aligned} &\epsilon \sim \mathcal{N}(0,1) \\ &\mathrm{z}=\mu + \epsilon \cdot \sigma \end{aligned} \Leftrightarrow \quad z \sim \mathcal{N}\left(\mu, \sigma^{2}\right)

重参数化梯度估计的公式推导

根据变量变换性质,重参数化后,原来基于 zz 的期望,可以被替换为基于 ϵ\epsilon 的期望:

Eqϕ(z)[f(z)]=Er(ϵ)[f(z)](s.1)\mathbb{E}_{q_\phi(\mathbf{z})}[f(\mathbf{z})] = \mathbb{E}_{r(\epsilon)}[f(\mathbf{z})] \tag{s.1}

该期望的梯度在重参数化后转换为:

ϕEqϕ(z)[f(z)]=ϕEr(ϵ)[f(z)]=Er(ϵ)[ϕf(z)]ϕf(z)(s.2)\begin{aligned} \nabla_{\boldsymbol{\phi}} \mathbb{E}_{q_\phi(\mathbf{z})}[f(\mathbf{z})] &= \nabla_{\boldsymbol{\phi}}\mathbb{E}_{r(\epsilon)}[f(\mathbf{z})]\\ &=\mathbb{E}_{r(\epsilon)} [\nabla_{\boldsymbol{\phi}}f(\mathbf{z})]\\ &\simeq \nabla_{\boldsymbol{\phi}}f(\mathbf{z}) \end{aligned} \tag{s.2}

考虑变分下界(为方便重复 公式 9 ),并 假设 logp(x,z)\log p(\mathbf{x},\mathbf{z})logq(z)\log q(\mathbf{z}) 关于 z\mathbf{z} 可微

L(ϕ)Eqϕ(z)[logp(x,z)logq(z;ϕ)]\mathcal{L}(\boldsymbol{\phi}) \simeq \mathbb{E}_{q_{\boldsymbol{\phi}}(\mathbf{z})}[\log p(\mathbf{x}, \mathbf{z})-\log q(\mathbf{z} ; \boldsymbol{\phi})]

因此,根据 公式 s.1 可以得到重参数化后的目标函数为:

L(ϕ)=Eqϕ(z)[logp(x,z)logq(z)]=Er(ϵ)[logp(x,z)logq(z)](s.3)\begin{aligned} \mathcal{L}(\boldsymbol{\phi}) &=\mathbb{E}_{q_{\boldsymbol{\phi}}(z)} \left[ \log p(\mathbf{x}, \mathbf{z}) - \log q(\mathbf{z} )\right ]\\ &= \mathbb{E}_{r(\epsilon)} \left[\log p(\mathbf{x}, \mathbf{z}) - \log q(\mathbf{z} )\right ] \end{aligned} \tag{s.3}

根据 公式 s.2 可以得到目标函数重参数化后的梯度为(注意:期望和求导运算可互换):

ϕL(ϕ)ϕ[Eq(ϕ)(logp(x,z)logq(z))]=ϕ[Er(ϵ)(logp(x,z)logq(z))]=Er(ϵ)ϕ[(logp(x,z)logq(z))](s.4)\begin{aligned} \nabla_{\boldsymbol{\phi}} \mathcal{L}(\boldsymbol{\phi}) &\simeq \nabla_{\boldsymbol{\phi}} \left[ \mathbb{E}_{q(\boldsymbol{\phi})} \left( \log p(\mathbf{x}, \mathbf{z}) - \log q(\mathbf{z} ) \right ) \right]\\ &= \nabla_{\boldsymbol{\phi}} \left[ \mathbb{E}_{r(\epsilon)} \left(\log p(\mathbf{x}, \mathbf{z}) - \log q(\mathbf{z} ) \right)\right ] \\ &= \mathbb{E}_{r(\epsilon)} \nabla_{\boldsymbol{\phi}} \left[\left(\log p(\mathbf{x}, \mathbf{z}) - \log q(\mathbf{z} ) \right)\right ] \end{aligned} \tag{s.4}

采用蒙特卡洛方法计算上式最后一行的期望,即可得到 公式 12

5.4 自动微分变分推断

形式上,概率模型定义了观测值 x\mathbf{x} 和不可观测变量 z\mathbf{z} 的联合分布 p(x,z)p(\mathbf{x}, \mathbf{z}) 。推断的目的是计算后验,即给定观测值后不可观测变量的条件分布 p(zx)p(\mathbf{z} | \mathbf{x} ) 。后验可以揭示数据中的模式,并且人们可以基于后验进行预测,获得 x\mathbf{x} 的后验预测分布。推断存在的问题是难以计算。

如前所述,变分推断将计算后验的任务转变成了优化问题。我们假设一个可参数化的分布族 q(z)Qq(\mathbf{z}) \in \mathcal{Q},然后在该分布族中找能够使 KL\mathrm{KL} 散度最小化的那个最优分布。传统上,使用变分推断算法需要开发和实施自定义优化程序的艰苦工作:首先指定适合模型的变分族;然后计算相应的目标函数;计算目标函数的导数(梯度),并运行基于梯度或坐标上升(或下降)的优化算法。

自动微分变分推断(ADVI)自动实现了上述工作过程。用户只需通过概率编程来指定模型,ADVI 会自动生成相应的变分分布。其基本思想是: 将推断问题自动转换至公共空间,然后在公共空间中利用一些技巧来完成变分优化。总体上来说,自动微分变分推断解决的是第一步转换问题,它使大量存在不可观测变量的模型得到了统一,因为这些模型可以在公共空间中通过相同的处理方法实现变分推断。更详细地说,ADVI 遵循如下步骤:

  • 将模型转换为具有不受约束的实值不可观测变量模型。具体来说,它将 p(x,z)p(\mathbf{x,z}) 转换为 p(x,ξ)p(\mathbf{x}, \boldsymbol{\xi}),其中从 z\mathbf{z}ξ\boldsymbol{\xi} 的映射被构建到联合分布中。这种转换消除了对不可观测变量 z\mathbf{z} 的所有原始约束。然后 ADVI 在 ξ\boldsymbol{\xi} 上定义相应的变分问题,即最小化 KL(q(ξ)p(ξx)\mathrm{KL}(q(\boldsymbol{\xi}) \| p(\boldsymbol{\xi} \mid \mathbf{x} ) 。所有不可观测变量在转换后都被定义在了同一个实数空间上,这使得 ADVI 可以为所有模型使用统一的变分族。
  • 相应地,将变分目标函数的梯度重塑为在分布 q(ξ)q(\boldsymbol{\xi}) 上的期望,这将有利于计算关于不可观测变量 z\mathbf{z} 的对数概率梯度 zlogp(x,z)\nabla_{z} \log p(\mathbf{x,z})。将梯度表示为期望形式,就可以使得蒙特卡洛积分得到梯度的近似估计(参见第 4 节 的随机变分推断)。
  • 通过重参数化实现对梯度的估计。使用重参数化技巧,在简单的高斯分布基础上通过变换构造变分布。这将基于变分分布的期望梯度计算问题,转换为了基于标准高斯噪声分布的期望梯度计算问题,从而可以通过对高斯分布的采样和蒙特卡洛积分得到梯度的近似估计(参见 第 5.3 节 的重参数化梯度估计)。

在经过上述变换后,可以使用噪声梯度来优化变分分布,并且在实践中,通过自适应调整步长可以提供良好的收敛性(参见 第 5.3 节 的重参数化梯度估计)。

🔔 重参数化技巧提供了一种可能性,那就是变分分布可以被表示成 “确定性变换” + “噪声变量” 的组合形式,这意味着我们可以将不确定性问题暂时放到一边,而重点关注确定性变换的构造问题。如果该确定性变换可以被表示成可观测变量 x\mathbf{x} 的某种函数并且可学习,则可以将局部变量的推断问题转换为一个预测问题,而这正是变分自编码器的摊销变分推断原理(见 第 7 节)。

黑盒变分推断的相关文献

6 提升准确性 — 新的目标函数和变分分布结构

上一节讨论了如何使变分推断扩展至非共轭指数族的模型,但大部分工作仍然停留在平均场变分推断的标准设置,并使用 KL\mathrm{KL} 散度作为分布之间的距离度量。 本节中,我们将回顾超出此设置的新发展,其目的是避免局部最优和提高变分推断的准确性。总体上来说,推断网络、归一化流和相关方法都可以被视为非标准的变分推断,但我们将其单独放在 第 7 节 讨论。

我们首先回顾平均场变分推断在统计物理学中的起源并描述其局限性( 第 6.1 节);在 第 6.2 节 将讨论一些新的散度度量手段;在结构化方面将在 第 6.3 节 中讨论超出平均场的变分近似方法;第 6.4 节 是不属于前两类的相关替代方法。

6.1 平均场变分推断的起源和局限

变分方法在统计物理学中有着悠久的传统。平均场方法最初应用于对自旋玻璃的模拟,这是一种原子磁自旋不以规则模式排列的无序磁体。这种自旋玻璃模型的一个简单示例是 Ising 模型,它是具有成对耦合晶格上的二元变量模型。为了能够估计自旋态的最终统计分布,采用了一个简单的、可分解的分布作为其代理,以尽可能地近似自旋向上(或向下)的边缘概率(也称为“磁化”),同时忽略自旋之间的所有相关性。这意味着给定自旋与其邻居之间的许多相互作用,被自旋与其他自旋之间的平均场单一相互作用简化并取代了。统计物理学家习惯于将负对数后验表示为 能量函数哈密顿函数,这种表达形式也逐步被机器学习社区采纳,并在有向概率图模型和无向概率图模型中被用于近似推断,附录 A.6 对此进行了总结,供读者参考。

平均场方法首先由 Anderson 和 Peterson 在神经网络中采用,后来在机器学习社区中得到普及 Jordan 等,1999Opper 等,2001Saul 等, 1996

平均场近似的主要限制是明确忽略了不同变量之间的相关性。例如,伊辛模型。此外,Wainwright 等, 2008 表明,变分分布破坏的可能依赖关系越多,优化问题变得越非凸。相反,如果变分分布包含更多的结构,则某些局部最优值就不存在了。物理学界已经提出了许多改进平均场变分推断的倡议,并在机器学习界进一步发展。

在自旋玻璃系统中,超越平均场理论的一个早期例子是 Thouless-AndersonPalmer (TAP) 方程方法 Thouless 等,1976,该方法引入了对变分自由能的扰动校正。一个相关的想法依赖于功率扩展 Plefka, 1982,它已被各种作者扩展并应用于机器学习模型。

此外,信息几何提供了对平均场变分推断和 TAP 方程之间关系的洞察 TanakaZhang 等 进一步将 TAP 方程与散度测量联系起来。我们向读者推荐Opper 等,2001以获取更多信息。

6.2 使用新型散度的变分推断

KL\mathrm{KL} 散度提供了一种测量两个分布之间的距离的计算方法。它使某些模型类能够得到解析形式的期望表达式。但传统的 KL\mathrm{KL} 散度变分推断方法存在低估后验方差等问题。此外,当多个峰值比较接近时,它无法打破对称性。另外,它是一个相对松散的边界。针对这些问题,已经提出了许多其他的散度测量方法。

这些新的散度度量不仅在变分推断中起作用,在相关的近似推断方法中也能起作用,例如期望传播法。最近的一些期望传播扩展方法大都可以被视为在传统方法上改变了散度度量。由于这些方法推导复杂和可扩展性有限,因此在业界很难被使用。

变分推断的最新发展主要集中在黑盒方式的统一框架上,以实现可扩展性和可访问性。 黑盒变分推断在保持方法效率和简单性同时,还可以使用其他散度度量,例如 χχ 散度。

在本节中,我们将介绍相关的散度度量并展示其在变分推断中的应用。根据信息论知识, KL\mathrm{KL} 散度首先是 α\alpha -散度的一种特殊形式,而 α\alpha -散度是 ff -散度的一种特殊形式。所有上述分歧都可以写成 Stein\text{Stein} 差的形式。

6.2.1 α -散度

从信息几何和计算角度来看,α\alpha -散度是一组具有有趣特性的散度度量 [4]、[6]。 KL\mathrm{KL} 散度和 Hellinger 距离都是 α\alpha -散度的特例。

存在不同的 α\alpha -散度公式,并且各种变分推断方法可能使用不同的定义。在此我们仅专注 Renyi 的方案:

DαR(pq)=1α1logp(x)αq(x)1αdxD^R_\alpha(p \| q) = \frac{1}{\alpha-1} \log \int p(x)^\alpha q(x)^{1-\alpha} dx

其中 α>0,α1\alpha > 0, \alpha \neq 1。根据 α\alpha -散度的定义,较小的 α\alpha 会导致更多的质量覆盖效应,而较大的 α\alpha 会导致迫零效应,这意味着变分分布避免了后验概率较低的区域。当 α1\alpha \rightarrow 1 时,我们恢复标准变分推断(包含 KL\mathrm{KL} 散度)。

α\alpha -散度最近被用于变分推断。类似于 ELBO\mathrm{ELBO} 公式的推导。α\alpha -散度也可以推导出一个边缘似然的下界:

Lα=logp(x)DαR(q(z)p(zx))=1α1logEq[(p(z,x)q(z))1α]\begin{aligned} \mathcal{L}_\alpha &= \log p(\mathbf{x}) - D^R_\alpha (q(\mathbf{z}) \| p(\mathbf{z} \mid \mathbf{x})) \\ &= \frac{1}{\alpha -1 } \log \mathbb{E}_q \left[ \left(\frac{p(\mathbf{z},\mathbf{x})}{q(\mathbf{z})}\right)^{1-\alpha}\right] \end{aligned}

对于 α>0,α1\alpha > 0, \alpha \neq 1Lα\mathcal{L}_\alpha 是对数边缘似然的下界。有趣的是,上式也允许 α\alpha 为负值,此时它成为一个上界。但此时 DαRD^R_\alpha 不代表散度。在关于 α\alpha 散度的各种定义中,只有 Renyi 公式 能够产生上式中的下界,并且边缘似然 p(x)p(x) 在其中被抵消。

6.2.2 f -散度和广义变分推断

α\alpha -散度是更 ff -散度族的一个子集,ff -散度族的形式为:

Df(pq)=q(x)f(p(x)q(x))dxD_f(p \| q) = \int q(x) f \left( \frac{p(x)}{q(x)} \right) dx

此处不甚关心,暂时理解定义即可。

6.2.3 Stein 差和变分推断

Stein\text{Stein} 方法最初是作为误差边界提出的,用于衡量近似分布与感兴趣分布的拟合程度。不过,Stein\text{Stein} 差已在现代变分推断中得到了采用和推广。在这里,我们将介绍 Stein\text{Stein} 差及两种变分推断方法:Stein 变分梯度下降 (SVDG) Liu et al, 2016算子变分推断 Ranganath 等, 2016。这两种方法具有相同的目标,但采取了不同的优化方式。

Stein\text{Stein} 差是一个积分概率度量值。特别是,Liu、Ranganath等使用 Stein\text{Stein} 差作为一种散度度量:

Dstein(p,q)=supfFEq(z)[f(z)]Ep(zx)[f(z)]2D_{stein}(p,q) = \operatorname{sup}_{f\in \mathcal{F}} \left | \mathbb{E}_{q(\mathbf{z})} [f(\mathbf{z})] - \mathbb{E}_{p(\mathbf{z} \mid \mathbf{x})} [f(\mathbf{z})]\right |^2

F\mathcal{F} 表示一组平滑的实值函数。当 q(z)q(\mathbf{z})p(zx)p(\mathbf{z}|\mathbf{x}) 相等时,该散度值为零。更一般地,ppqq 越相似,Stein\text{Stein} 差越小。

上式中第二项是关于后验分布的期望,比较难处理。因此,在变分推断中 Stein\text{Stein} 差只能用于第二项等于 00F\mathcal{F} 函数类。我们按照如下方法找到具有此性质的函数类。我们通过在另一个函数 ϕ\phi 上应用微分算子 A\mathcal{A} 来定义 ff,其中 ϕ\phi 要求必须是平滑的:

f(z)=Aϕ(z)f(\mathbf{z}) = \mathcal{A} \phi(\mathbf{z})

其中 zp(z)\mathbf{z} \sim p(\mathbf{z}) 。算子 A\mathcal{A} 以使方程式中的第二个期望为 00 的方式构造;所有具有此性质的运算符都是有效的运算符。

满足上述要求的流行 A\mathcal{A} 算子是 Stein\text{Stein} 算子:

Aϕ(z)=ϕ(z)zlogp(z,x)+zϕ(z)\mathcal{A} \phi(\mathbf{z}) = \phi(\mathbf{z}) \nabla_{\mathbf{z}} \log p(\mathbf{z},\mathbf{x}) + \nabla_{\mathbf{z}} \phi(\mathbf{z})

算子变分推断Stein 变分梯度下降 都使用 Stein\text{Stein} 差与 Stein\text{Stein} 算子来构造变分目标。这两种方法的主要区别在于使用 Stein\text{Stein} 差优化变分目标的方式。

  • 算子变分推断 使用 minimax(GAN 风格)公式和黑盒变分推断直接优化变分目标;
  • Stein 变分梯度下降 使用核化的 Stein\text{Stein} 差。通过选择特定核和 qq,可以证明 Stein 变分梯度下降 确定了在 KL\mathrm{KL} 散度最陡梯度方向上的最佳扰动。 Stein 变分梯度下降 导致了一种 “隐空间中的样本被顺序变换以近似后验” 的方案,让人很容易想到归一化流方法。

备注:
(1)Stein 差及其相关推断算法值得进一步阅读和理解。
(2)原文此处并没有明确总结 Stein 的优势

相关参考文献

6.3 新结构的变分推断

平均场变分推断假设一个完全分解的变分分布;因此,它无法捕获后验相关性。

完全分解的变分模型准确性有限,特别是当不可观测变量高度相关时(例如在有层次结构的模型中)。本节考察未完全分解但包含不可观测变量之间依赖关系的变分分布。此类结构化的变分分布更具表现力,但通常会带来更高的计算成本。

允许使用结构化变分分布来捕获不可观测变量之间的依赖关系,这是一种建模选择;不同的依赖关系可能或多或少相关,并取决于所考虑的模型。例如,LDA 的结构化变分推断表明保持全局结构至关重要,而 Beta-Bernoulli 过程的结构化变分推断,则表明保持局部结构更为重要。

6.3.1 分层变分推断

对于许多模型,通过保持不可观测变量之间的依赖关系可以使变分近似更具表现力,但是这些依赖关系使得估计变分界的梯度更加困难。分层变分模型 (HVM) [156] 是用于结构化变分分布的黑盒变分推断框架,适用于广泛的模型类别。为了捕捉不可观测变量之间的依赖关系,我们从平均场变分分布 iq(zi;λi)\prod_i q(z_i;\lambda_i) 开始,但不是估计变分参数 λ\boldsymbol{\lambda} ,而是在它们上放置一个先验 q(λ;θ)q(\boldsymbol{\lambda}; \boldsymbol{\theta}) 并将其边缘化掉:

q(z;θ)=(iq(zi;λi))q(λ;θ)dλq(\mathbf{z};\boldsymbol{\theta}) = \int \left(\prod_i q(z_i;\lambda_i) \right) q(\boldsymbol{\lambda};\boldsymbol{\theta}) d \boldsymbol{\lambda}

新的变分分布 q(λ;θ)q(\boldsymbol{\lambda};\boldsymbol{\theta}) 通过边缘化过程捕获依赖关系。

通过模拟分层的过程也可以从该分布中采样。通过进一步降低生成的熵和从分层模型中采样,可以使生成的 ELBO\mathrm{ELBO} 易于处理。值得注意的是,此方法用于开发变分高斯过程(一种特殊的分层变分模型)。 变分高斯过程应用高斯过程来生成变分估计,进而形成贝叶斯非参数先验。由于高斯过程可以对丰富的函数类别进行建模,因此变分高斯过程能够自信地近似不同的后验分布。

另一种在不可观测变量之间建立依赖关系的方法是 copula 变分推断。 copula 变分推断没有使用完全分解的变分分布,而是采用变分族形式:

q(z)=(iq(zi;λi))c(Q(z1),,q(zN))q(\mathbf{z}) = \left( \prod_i q(z_i;\lambda_i) \right) c(Q(z_1),\ldots,q(z_N))

其中 cc 是 copula 分布,它是边缘累积分布函数 Q(z1),,Q(zN)Q(z1), \ldots, Q(z_N) 上的联合分布。该 copula 分布恢复了不可观测变量之间的依赖关系

6.3.2 时间序列的变分推断

时间序列模型是需要结构化变分近似的最重要模型类之一。重要例子包括:隐马尔可夫模型 (HMM) 和动态主题模型 (DTM)。这些模型在时间步长之间具有很强的依赖性,导致传统的完全分解平均场变分推断无法产生令人满意的结果。将变分推断用于时间序列时,通常会采用结构化变分分布,该分布明确捕获时间点之间的依赖关系,同时在剩余变量中保持完全分解。这通常要求模型具有特定的近似。Foti 等,2014Johnson 等,2014 为流行的时间序列模型推导出了随机变分推断方法,包括隐马尔科夫模型 HMM、隐半马尔可夫模型 (HSMM) 和分层 Dirichlet 过程-HMM。此外,JohnSon 等为 HSMM 推导出了一个加速的随机变分推断方法。 Bamler 等,20172017a 为非共轭隐扩散模型推导出结构化黑盒变分推断算法。

6.4 其他非标准的方法

本节包含了许多其他方法,这些方法属于提高变分推断准确性的范畴,但不会被归类为替代散度度量或结构化模型的范围。

6.4.1 变分推断与混合分布

混合分布形成一类非常灵活的分布,自 1990 年代以来一直用于变分推断。由于它们的灵活性和计算困难,推进混合模型的变分推断一直引起人们的兴趣。为了拟合混合模型,我们可以使用辅助边界、固定点更新,或强制执行其他假设,例如使用统一权重。受 boosting 方法的启发,最近提出的方法以连续的方式拟合混合成分。在这里,Boosting变分推断和变分提升通过一次添加一个组件同时保持先前拟合的组件固定来迭代地改进近似后验。在另一种方法中,利用强化学习文献中的随机策略搜索方法来拟合高斯混合模型。

6.4.2 通过随机梯度下降的变分推断

概率模型负对数后验的随机梯度下降,在某些情况下,可视为隐式变分推断算法。在这里,我们考虑具有恒定学习率的随机梯度下降(恒定 SGD)和提前停止的 SGD

常数 SGD 可以看作是一条收敛到平稳分布的马尔可夫链;因此,它类似于朗之万动力学[214]。平稳分布的方差由学习率控制。 [113]表明可以调整学习率以最小化得到的平稳分布和贝叶斯后验之间的KL散度。此外,[113] 导出了类似于 AdaGrad [42] 及其亲属的最佳学习率的公式。 [114] 中介绍了 SGD 的概括,包括动量和迭代平均。相比之下,[43] 将 SGD 解释为非参数变分推断方案。本文提出了一种基于 Hessian 估计来跟踪隐式变分目标中熵变化的方法。因此,作者考虑从非平稳分布中抽样。

6.4.3 对异常值和局部最优的鲁棒性

由于 ELBO 是非凸目标,VI 受益于先进的优化算法,有助于摆脱糟糕的局部最优。变分回火 [115] 使确定性退火 [136]、[164] 适应变分推断,使冷却计划具有自适应性和数据依赖性。可以全局或局部定义温度,其中局部温度特定于各个数据点。模型下具有相关小可能性的数据点(例如异常值)被自动分配为高温。这减少了它们对全局变分参数的影响,使推断算法对局部最优更鲁棒。变分回火也可以解释为数据重新加权[212],权重是反温度。在这种情况下,较低的权重被分配给异常值。使变分推断更健壮的其他方法包括 trustregion 方法 [189],它使用 KL\mathrm{KL} 散度来调整学习进度并避免局部最优,以及总体变分推断[92],它对自举数据样本的变分后验进行平均以获得更健壮建模性能。

7 摊销式变分推断与深度学习

考虑 第 3 节 的模型设置,其中每个数据点 xix_i 受其不可观测变量 ziz_i 和变分参数 ξi\xi_i 的支配。传统变分推断需要为每个数据点 xix_i 优化 ξi\xi_i,这在计算上是非常昂贵的,特别是当这种局部变量的变分优化过程被嵌入全局参数的更新循环时,代价更高。

摊销推断背后的基本思想是:使用强大的变分参数预测器,根据数据点 xix_i 直接预测最优的 ziz_i (或其分布),即假设局部变量 zi=fϕ(xi)z_i = f_\phi (x_i)。这样,局部变量的参数 ξi\xi_i 就被预测函数替代了,该预测函数的所有参数 ϕ\phi 在所有数据点之间共享,也就是说推断是被摊销了 ( Amortized ) 。

我们在 第 7.1 节 详细介绍这种方法背后的主要思想,并在 第 7.2 节第 7.3 节 展示了它如何以变分自动编码器的形式应用。

随机变分推断的概率图

图 7-1: 随机变分推断(a)和变分自编码器(b) 的概率图表示。虚线表示变分近似。

7.1 摊销变分推断与高斯过程

摊销推断指利用过去的推断计算来支持未来的推断计算任务 ( Gershman 等 )。对于变分推断来说,摊销推断主要针对局部变量。

摊销变分推断假设可以通过数据的某种可参数化的函数来预测 局部变量(或其分布),而不是像 图 7-1(a) 那样,为每个数据点单独推断一个局部变量。一旦能够估计得到这样一个函数,就可以利用该函数直接为新数据点计算局部变量(或其分布),如 图 7-22(b) 所示。用于这种情况的深度神经网络往往被称为推断网络。推断网络将概率建模与深度学习的表征能力结合到了一起。

摊销推断在之前已经被广泛应用于深度高斯过程(DGP)中( Damianou 等 )。在深度高斯过程中,推断难以处理,因此有人引入归纳点(稀疏高斯过程中的一个重要概念)和平均场变分推断。该模型涉及局部变量的推断问题,计算量非常大。因此,Dai 等 建议用推断网络函数来估计局部变量,而不是分别为每个样本点的局部变量做复杂推断,此想法允许 DGP 扩展到更大的数据集并加速收敛。不仅如此,通过将摊销误差反馈到推断模型中,还可以进行迭代摊销。

7.2 摊销变分推断与变分自编码器

摊销变分推断已成为深度隐高斯模型 (DLGM) 推断的流行工具。这进一步引发了变分自编码器(VAE) 概念的提出,该概念由两个研究组 [85]、[160] 分别独立提出。目前,变分自编码器比 DLGM 应用更为普遍。 有关变分自编码器的详细讨论参见 原始论文的译文

自编码器与变分自编码器的本质区别

“变分自编码器” 这一词汇源于这样一个事实,即生成网络和识别网络的联合训练类似于自编码器的结构,但从概率视角来看,两者有着非常本质的区别。

自编码器是一类无监督的 确定性模型。它是一种深度神经网络,经过训练以尽可能接近地重建其输入。其中比较重要的是:自编码器中涉及的神经网络具有沙漏结构,这意味着内层中有少量单元阻止神经网络学习不值得的恒等映射。这个 “瓶颈” 迫使网络学习有用且紧凑的数据表示。

相比之下,变分自编码器是一个概率模型,但在结构上与经典自编码器有着密切的对应关系。事实证明,变分自编码器中的不可观测变量可以被理解为自编码器瓶颈中数据的一种中间表示。在变分自编码器训练期间,通过将噪声注入该中间层,能够起到对中间层的正则化效果(类似于正则化项与贝叶斯先验的关系)。此外,先验和近似后验之间的 KL\mathrm{KL} 散度项迫使变分自编码器的隐表示接近先验,从而导致隐空间中的分布更加均匀,可以更好地推广到未被观测到的新数据。当噪声方差减小到零并且省略先验项后,变分自编码器就是经典的自编码器。

对此,在 初识变分自编码器 一文中有更为形象的解释。

7.3 变分自编码器的扩展

自变分自编码器提出以来,提出了越来越多的扩展。虽然对该主题的详尽报道需要一篇独立的综述文章,但我们在此还是总结了一些重要的扩展。虽然已经提出了变分自编码器的几个模型扩展,但本文更强调推断过程。因此本文将主要介绍变分分布 qϕq_\phi 的修改和对模型 pθp_\theta 的扩展,最后讨论在优化期间某些隐单元的后验仍然接近先验时的僵尸单元问题。

7.3.1 选择更灵活的变分分布

包括变分自编码器训练在内的传统变分推断,主要依赖于可参数化的推断模型,其中变分分布 qϕq_\phi 采用显式参数的概率分布,例如高斯分布。其实,我们还可以使用更灵活的变分分布形式,例如对某些可参数化的简单分布进行转换。基于这个思想,研究人员提出了 隐式变分分布归一化流重要性加权 等新型的变分自编码器。这些变分自编码器使用了更灵活的变分分布,不仅能够减少近似误差,还可以在一定程度上减少摊销误差(根据摊销变分推断的定义,指用可参数化函数替换局部变分参数推断而引入的误差)。

(1)隐式变分分布

隐式变分分布可以在变分推断中使用,因为封闭形式的密度函数并非推断模型的严格要求;我们所需要的只是能够从中取样。如下详述,它们的重参数化梯度仍然可以计算。除了标准的重参数化方法之外,还必须估计熵对梯度的贡献。变分推断的隐式分布是一个活跃的研究领域。

相关参考文献
  • F. Husz ́ ar. Variational inference using implicit distributions. arXiv:1702.08235, 2017.
  • T. Karaletsos. Adversarial message passing for graphical models. In NIPS WS. 2016
  • Y.Z. Li and Q. Liu. Wild variational approximations. In NIPS WS, 2016.
  • Y.Z. Li, R. E. Turner, and Q. Liu. Approximate inference with amortised MCMC. arXiv:1702.08343, 2017.
  • Q. Liu and Y. Feng. Two methods for wild variational inference. arXiv:1612.00081, 2016.
  • L. Mescheder, S. Nowozin, and A. Geiger. Adversarial variational bayes: Unifying variational autoencoders and generative adversarial networks. In ICML, 2017.
  • S. Mohamed and B. Lakshminarayanan. Learning in implicit generative models. arXiv:1610.03483, 2016.
  • D. Wang and Q. Liu. Learning to draw samples: With application to amortized MLE for generative adversarial learning. arXiv:1611.01722, 2016.

变分推断需要计算对数密度比 logp(z)logqϕ(zx)\log p(\mathbf{z}) − \log q_\phi (\mathbf{z}|\mathbf{x})。当 qq 是隐式时,标准训练过程面临对数密度比难以处理的问题。在这种情况下,可以使用生成对抗网络 (GAN) 风格的鉴别器 TT 来区分先验和变分分布,T(x,z)=logqϕ(zx)logp(z)T (\mathbf{x}, \mathbf{z}) = \log q_\phi (\mathbf{z}|\mathbf{x}) - \log p(\mathbf{z}) 。该公式非常通用,可以与其他想法结合使用,例如分层结构。

相关参考文献
  • I. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xuand D. Warde-Farley, S. Ozair, A. Courville, and Y. Bengio. Generative adversarial nets. In NIPS, 2014.
  • D. Tran, R. Ranganath, and D. M. Blei. Hierarchical implicit models and likelihood-free variational inference. arXiv:1702.08896, 2017.
  • M. Yin and M. Zhou. Semi-implicit variational inference. In ICML, 2018.
(2)归一化流

归一化流的主要思想是:通过一系列连续的可逆变换将简单的近似后验(例如平均场) q(z)q(\mathbf{z}) 转换为更具表现力的分布。为此,首先抽取一个随机变量 zq(z)z \sim q(\mathbf{z}),并使用一个可逆的平滑函数 ff 对其进行变换。令 z=f(z)z^\prime = f(z)。那么,新的分布是:

q(z)=q(z)f1z=q(z)fz1q(z^\prime) = q(z) \left| \frac{\partial f^{-1}}{\partial z^\prime} \right| = q(z) \left| \frac{\partial f}{\partial z^\prime} \right|^{-1}

相关参考文献
  • X. Chen, D. P. Kingma, T. Salimans, Y. Dua, P. Dhariwal, J. Schulman, I. Sutskever, and P. Abbeel. Variational lossy autoencoder. In ICLR, 2017.
  • L. Dinh, D. Krueger, and Y. Bengio. NICE: non-linear independent components estimation. arXiv:1410.8516, 2014.
  • L. Dinh, J. Sohl-Dickstein, and S. Bengio. Density estimation using real nvp. In ICLR, 2017.
  • D. P. Kingma, T. Salimans, R. Jozefowicz, X. Chen, I. Sutskever, and M. Welling. Improving variational autoencoders with inverse autoregressive flow. In NIPS, 2016.
  • D. Rezende and S. Mohamed. Variational Inference with Normalizing Flows. In ICML, 2015.

归一化流需要计算行列式,因为变分方法还要求估计变换后分布的熵。通过选择能够使 fz\frac{\partial f}{\partial z^\prime} 更易于计算的变换函数 ff ,归一化流可以形成一种从简单分布生成多峰复杂分布的有效方法。作为变体,已经提出了线性时间变换/朗之万/哈密顿流、逆自回归流和自回归流等。

相关参考文献
  • D. Rezende and S. Mohamed. Variational Inference with Normalizing Flows. In ICML, 2015.
  • D. P. Kingma, T. Salimans, R. Jozefowicz, X. Chen, I. Sutskever, and M. Welling. Improving variational autoencoders with inverse autoregressive flow. In NIPS, 2016.
  • X. Chen, D. P. Kingma, T. Salimans, Y. Dua, P. Dhariwal, J. Schulman, I. Sutskever, and P. Abbeel. Variational lossy autoencoder. In ICLR, 2017.

归一化流和前面提到的隐式分布,都采用了将简单分布转换为复杂分布的共同思想。两者的关键区别在于:归一化流采用了可逆变换函数,因此可以估计 q(z)q(z) 的密度。

(3)重要性加权变分自编码器

重要性加权变分自动编码器(IWAE)最初被提议用于收紧变分边界,可以被解释为从更灵活的分布中进行采样。重要性加权变分自编码器需要来自变分分布的 LL 个样本,这些样本按如下比率进行加权:

w^l=wll=1Lwl,where wl=pθ(xi,z(i,l))qϕ(z(i,l)xi)\hat{w}_l = \frac{w_l}{\sum^L_{l=1} w_l}, \text{where } w_l = \frac{p_\theta(x_i,z_{(i,l)})}{q_\phi (z_{(i,l)} \mid x_i)}

作者表明,参与评估的样本数量 LL 越多,变分界变得越紧致,意味着真正的对数似然在极限 LL \rightarrow \infty 内接近。对重要性加权变分自编码器的新解释表明:它们与变分自编码器相同,但从更具表现力的分布中进行了采样,该分布在 L \rightarrow \infity 时逐点收敛到真实后验。由于重要性加权变分自编码器引入了有偏差的估计器,因此可以考虑采取额外步骤来实现 “方差-偏差” 权衡。

相关参考文献
  • Y. Burda, R. Grosse, and R. Salakhutdinov. Importance weighted autoencoders. arXiv:1509.00519, 2015.
  • C. Cremer, Q. Morris, and D. Duvenaud. Reinterpreting importance-weighted autoencoders. In ICLR WS, 2017.
  • S. Nowozin. Debiasing evidence approximations: On importance-weighted autoencoders and jackknife variational inference. In ICLR, 2018.
  • T. Rainforth, R. Cornish, H. Yang, A. Warrington, and F. Wood. On Nesting Monte Carlo Estimators. In ICML, 2018.
  • T. Rainforth, A. R. Kosiorek, T. A. Le, C. J. Maddison, M. Igl, F. Wood, and Y. W. Teh. Tighter variational bounds are not necessarily better. In ICML, 2018.

7.3.2 选择更灵活的模型

建模选择会影响深度隐高斯模型的性能。特别是改进变分自编码器中的先验模型可以导致更可解释的拟合和更好的模型性能。

Johnson 等人(2016)结合传统概率图模型和推断网络的优点,提出了一种使用结构化先验的变分自编码器方法。这些混合模型使用识别模型来学习共轭分布的变分参数,进而克服了非共轭先验和似然的难处理性。这允许我们在保持共轭的同时,根据观测来近似后验。当编码器输出自然参数的估计时,依赖共轭的消息传递被应用于执行剩余的推断。

还有一些其他方法针对标准变分自编码器的缺点(假设似然可以在维度上进行分解)进行了研究,发现这种假设可能产生非常差的近似,例如对图像来说,可能结构化输出模型效果更好。

  • Deep Recurrent Attentive Writer 依赖于一个循环结构,该结构逐渐构建观测结果,同时自动关注感兴趣的区域。
  • PixelVAE 通过对图像中像素之间的依赖关系进行建模来解决这个问题,使用分解为 pθ(xizi)=jpθ(xijxi1,xij1,zi)p_\theta (x_i | z_i) = \prod_j p_\theta (x^j_i | x^1_i, \ldots x^{j−1}_i , z_i),其中 xijx^j_i 表示观测 ii 的第 jj 个维度。维度以顺序方式生成,这说明了图像像素内的局部依赖性。

建模选择的表现力是有代价的,如果解码器太强大,推断过程可能无法学习信息丰富的后验。该问题被称为 僵尸单元 问题,将在下节讨论。

相关参考文献
  • M. J. Johnson, D. Duvenaud, A. B. Wiltschko, S. R. Datta, and R. P. Adams. Structured VAEs: Composing probabilistic graphical models and variational autoencoders. In NIPS, 2016
  • K. Gregor, I. Danihelka, A. Graves, D. J. Rezende, and D. Wierstra. Draw: A recurrent neural network for image generation. In ICML, 2015.
  • I. Gulrajani, K. Kumar, F. Ahmed, A. A. Taiga, F. V. Visin, D. Vazquez, and A. Courville. PixelVAE: A latent variable model for natural images. 2017.

7.3.3 解决僵尸单元的问题

有一些建模选择和参数配置,会给变分自编码器的训练带来问题,造成学习数据的良好低维表示会失败。一个突出的问题被称为僵尸单元问题。造成这种现象的主要因素有两个:过于强大的解码器和 KL\mathrm{KL} 散度项。

在某些情况下,解码器的表达能力非常强,以至于变量 z\mathbf{z} 的某些维度被忽略了,即它可能独立于 z\mathbf{z}pθ(xz)p_\theta (\mathbf{x}|\mathbf{z}) 进行建模。在这种情况下,真实后验等于先验,变分后验会试图匹配先验,以满足变分自编码器损失函数中的 KL\mathrm{KL} 散度项。有损变分自动编码器通过在部分输入信息上调节每个输出维度的解码分布,来规避这个问题。以图像为例,给定像素的似然仅取决于直接周围像素的值和全局隐状态,这迫使分布在不可观测变量中编码全局信息。

KL\mathrm{KL} 散度对变分自编码器损失的贡献可能会加剧上述问题。要了解原因,我们可以将 ELBO\mathrm{ELBO} 重写为两个 KL\mathrm{KL} 散度之和 L^(θ,ϕ,xi)=DKL(qϕ(zxi)pθ(z))DKL(p(xi)pθ(xiz))+C\hat{\mathcal{L}} (\theta,\phi, x_i) = -D_{\mathrm{KL}} (q_\phi (z\mid x_i) \| p_\theta (z)) - D_{\mathrm{KL}}(p(xi) \| p_\theta (x_i \mid z)) + C。如果模型具有足够的表现力,则模型能够使第二项为零(与 z\mathbf{z} 的值无关)。在这种情况下,为了满足第一项,推断模型将其概率质量置于与先验相匹配的位置,造成无法学习数据的有用表示。即使解码器不强大,僵尸单元的问题也可能出现在优化的早期阶段,此时近似后验还没有携带有关数据的相关信息。当 zz 的维度很高时,这个问题会更加严重。在这种情况下,单元会向先验正则化,并且可能不会在优化的后期被重新激活。为了抵消 KL\mathrm{KL} 散度的早期影响,可以在训练期间将退火方案应用于 KL\mathrm{KL} 散度项。

相关参考文献
  • X. Chen, D. P. Kingma, T. Salimans, Y. Dua, P. Dhariwal, J. Schulman, I. Sutskever, and P. Abbeel. Variational lossy autoencoder. In ICLR, 2017.
  • S. R. Bowman, L. Vilnis, O. Vinyals, A. M. Dai, R. J ́ ozefowicz, and S. Bengio. Generating sentences from a continuous space. In CoNLL.
  • C. K. Sønderby, T. Raiko, L. Maaløe, S. K. Sønderby, and O. Winther. How to train deep variational autoencoders and probabilistic ladder networks. In ICML, 2016.
  • S. Zhao, J. Song, and S. Ermon. Towards deeper understanding of variational autoencoding models. CoRR, abs/1702.08658, 2017.

8 讨论

下面是一些活跃的研究方向和开放性问题:

8.1 变分推断理论方面

尽管在建模和推断方面取得了进展,但很少有作者讨论变分推断的理论方面。一个重要方向是 量化变分分布替换真实后验时的近似误差。与此相关的一个问题是 预测的误差,例如,使用变分推断近似来做贝叶斯预测性分布的边缘化计算。

我们还推测变分推断理论可以从与信息论的联系中受益。信息论还激发了新模型和推断方案的发展。例如,信息瓶颈最近推动了深度变分信息瓶颈。我们期望融合这两条研究线会产生更多有趣的结果。

Blei 在变分推断理论方面的一些建议

Blei (2017)在其著名文章 “” 中,提到了如下几个值得进一步研究的方向:
(1)开发用于优化的目标函数,例如:α-散度度量、Stein 散度。
(2)在保证优化效率的条件下,开发更好的近似分布。如:结构化变分推断。
(3)深入挖掘变分推断与 MCMC 之间的结合策略,有可能在领域内产生巨大影响。
(4)变分推断的统计特性还没有得到很好的理解,需要深入研究其相对于精确后验的统计特征。

相关参考文献

A. Alemi, I. Fischer, J. Dillon, and K. Murphy. Deep variational information bottleneck. In ICLR, 2017
D. Barber and F. Agakov. The IM algorithm: a variational approach to information maximization. In NIPS, 2003.
S. Lacoste-Julien, F. Husz ́ ar, and Z. Ghahramani. Approximate inference for the loss-calibrated bayesian. In AISTATS.
S. Nakajima and S. Watanabe. Variational bayes solution of linear neural networks and its generalization performance. Neural Computation, 19(4), 2007.
T. Tanaka. A theory of mean field approximation. In NIPS, 1999.
T. Tanaka. Information geometry of mean-field approximation. Neural Computation, 12(8), 2000.
N. Tishby, F. C. Pereira, and W. Bialek. The information bottleneck method. physics/0004057, 2000.
Yixin Wang and David M Blei. Frequentist consistency of variational bayes. 2018.

8.2 变分推断和深度学习

尽管最近在各领域取得了成功,但深度学习仍然缺乏原则性的不确定性估计、缺乏其特征表示的可解释性,并且难以包含先验知识。贝叶斯方法(例如贝叶斯神经网络和变分自动编码器)正在改进这些方面。最近的工作旨在使用可解释性概率模型作为变分自编码器的先验。在此类模型中,变分推断是必不可少的组成部分。在贝叶斯深度架构中,如何使变分推断计算更为高效且易于实现,正在成为一个重要研究方向。

相关参考文献

Z.W. Deng, R. Navarathna, P. Carr, S. Mandt, Y.S. Yue, I. Matthews, and G. Mori. Factorized variational autoencoders for modeling audience reactions to movies. In CVPR, 2017.
Y. Gal. Uncertainty in deep learning. PhD thesis, PhD thesis, University of Cambridge, 2016.
M. J. Johnson, D. Duvenaud, A. B. Wiltschko, S. R. Datta, and R. P. Adams. Structured VAEs: Composing probabilistic graphical models and variational autoencoders. In NIPS, 2016.
R. G. Krishnan, U. Shalit, and D. Sontag. Deep kalman filters. In NIPS WS, 2015.
R. M. Neal. Bayesian learning for neural networks, volume 118. Springer Science & Business Media, 2012.
A. Saeedi, M. D. Hoffman, S. J. DiVerdi, A. Ghandeharioun, M. J. Johnson, and R. P. Adams. Multimodal prediction and personalization of photo edits with deep generative models. arXiv:1704.04997, 2017.

8.3 变分推断和策略梯度

策略梯度估计对于强化学习 (RL) 和随机控制很重要。这些应用中的技术挑战与变分推断非常相似。例如,随机变分梯度下降已作为 Stein\text{Stein} 策略梯度被应用于强化学习设置。变分推断在强化学习中的应用目前是一个活跃的研究领域。

相关参考文献

S. Levine. Reinforcement learning and control as probabilistic inference: Tutorial and review. arXiv:1805.00909, 2018.
S. Levine and V. Koltun. Variational policy search via trajectory optimization. In NIPS, 2013.
Y. Liu, P. Ramachandran, Q. Liu, and J. Peng. Stein variational policy gradient. In UAI, 2017.
J. Schulman, S. Levine, P. Abbeel, M. Jordan, and P. Moritz. Trust region policy optimization. In ICML, 2015.
R. S. Sutton and A. G. Barto. Reinforcement learning: An introduction, volume 1. MIT press Cambridge, 1998.
Y. Wang, G. Williams, E. Theodorou, and L. Song. Variational policy for guiding point processes. In ICML, 2017.

8.4 自动变分推断

概率编程允许从业者快速实现和修改模型,而不必担心推断问题。用户只需要指定模型,推断引擎就会自动进行推断。流行的概率编程工具包括但不限于:Stan,涵盖了大量的高级变分推断和 MCMC 推断方法; Infer.Net 基于变分消息传递和期望传播;Automatic Statistician 和 Anglican 主要依靠采样方法;Ed-ward 支持黑盒变分推断和 Monte Carlo 采样 ; Zhusuan 的特点是用于贝叶斯深度学习的变分推断。这些工具的长期目标是改变概率建模的研究方法,使用户能够快速修改和改进模型,并使其他受众可以访问它们。

尽管目前努力使从业者更容易使用变分推断,但对于非专家来说,其使用仍然不简单。例如,人工识别后验的对称性并打破这些对称性是 Infer.Net 所必需的。此外,诸如控制变量等减少方差的方法可以极大地加速收敛,但需要模型进行特定设计才能获得最佳性能。在撰写本文时,当前的概率编程工具箱尚未解决此类问题。我们相信这些方向对于推进概率建模在科学和技术中的影响非常重要。

相关参考文献

[28] [126][52][198][200][176]
B. Carpenter, D. Lee, M. A. Brubaker, A. Riddell, A. Gelman, B. Goodrich, J. Guo, M. Hoffman, M. Betancourt, and P Li. Stan: A probabilistic programming language. Journal of Statistical Software, 2016.
T. Minka, J. M. Winn, J. P. Guiver, S. Webster, Y. Zaykov, B. Yangel, A. Spengler, and J. Bronskill. Infer.NET 2.6. http://research.microsoft.com/infernet, 2014.
J. Shi, J. Chen, J. Zhu, S. Sun, Y. Luo, Yihong Gu, and Yuhao Zhou. Zhusuan: A library for bayesian deep learning. arXiv:1709.05870, 2017.
D. Tolpin, J. W. van de Meent, H. Yang, and F. Wood. Design and implementation of probabilistic programming language anglican. arXiv:1608.05263, 2016.

9 总结

  • 概率机器学习是将领域知识与数据联系起来的机器学习方法
  • 它提供了一种用于分析数据的计算方法
  • 概率机器学习的最终目标是形成一种具有表现力、可扩展、易于开发的方法
  • 后验推断的关键是算法问题
    -变分推断为后验推断提供了可扩展和通用方法
  • 平均场近似和坐标上升方法是最为基础的变分推断方法
  • 随机变分推断将变分推断扩展到海量数据
  • 黑盒变分推断将变分推断泛化到多种模型
  • 摊销变分推断将变分推断与神经网络得到了结合