原题:A Beginner's Guide to Variational Methods: Mean-Field Approximation
给初学者的变分法指导:平均场近似
作者:Eric Jang
译者:尹肖贻
变分贝叶斯(Variational Bayeisan,后文简称VB)方法是统计机器学习领域中,一类很常见技术。通过应用VB方法,我们能够重新形式化统计推断问题(即,将给定一随机变量的值,推断另一些随机变量的值),而将其作为优化问题(即,找到参数值,使目标函数最小化)。
这种推断-优化的二元性,赋予我们强大的能力。我们既可以使用最新、最好的优化算法来解决统计机器学习问题,也可以反过来,使用统计技术来最小化函数。
这篇文章是关于变分方法的入门教程。 我将推导出最简单的VB方法的优化目标,称为平均场近似。 这个目标,也称为变分下界,与变分自动编码器(VAE)中使用的技术完全相同(我将在后续文章中相信介绍它,堪称入木三分,惜字如金)。
目录
1.问题的前提和符号约定
2.问题的表述
3.平均场近似的变分下界
4.前传KL与反传KL
5.与深度学习的联系
前提和符号约定
本文假设读者熟悉随机变量、概率分布和数学期望等概念。如果你忘了这些概念,可以在这里进行复习。机器学习和统计领域的符号约定没有被严格地标准化,因此在这篇文章中,我们约定如下符号,确定的符号将对理解文意很有帮助:
- 大写字母表示随机变量;
- 大写字母表示该变量的概率分布;
- 小写字母表示通过一些生成过程,为采样()概率分布中的值;
- 小写字母是分布的(概率)密度函数,它是的度量空间上的标量函数;
- (简写)表示在特定值处的密度函数值。
许多学术论文将术语“变量”、“分布”、“密度”,甚至“模型”互换使用。这种做法本身不一定导致错误,因为、和都可以通过一对一的对应关系相互指代。但是,将这些术语混合在一起,容易让人感到困惑。因为它们的指代范畴各不相同(比如对函数进行抽样没有意义,对分布积分同样没有意义)。
我们将系统建模为随机变量的集合,其中一些变量()是“可观察的”,而其他变量()是“隐藏的”。 【译者按:后文称二者为“观察变量”和“隐变量”】我们可以通过下图绘制这种关系:
从到,通过条件分布这条边,将两个变量联系在一起。
说一个更形象的例子:可能代表“图像的原始像素值”,而是二值变量。如果是猫的图像,。
P(Z=1)=0 (这一定不是猫)
P(Z=1)=0.1 (有点像猫)
贝叶斯定理给出了任意一对随机变量之间的一般关系:
其中的各项与如下常见名称相关联:
是后验概率:“给定图像,这是猫的概率是多少?” 如果我们可以从进行采样,我们可以用它作一个猫分类器,告诉我们给定的图像是否是猫。
是似然概率:“给定的值,计算出该图像在该类别下的‘可能’程度({是猫/不是猫})” 如果我们可以从进行采样,那么我们就可以生成猫的图像和非猫的图像,就像生成随机数一样容易。如果你想了解更多相关信息,请参阅我的关于生成模型的其他文章: [1], [2]。
是先验概率。它指代我们所知道的关于的任何先前信息——例如,如果我们认为所有图像中,有1/3是猫,那么并且。
隐变量作为先验概率
这部分是为了感兴趣的读者准备的。请直接跳到下一部分,继续学习本教程。
前面猫的示例提供了观察变量、隐变量和先验的理解角度,是传统的一个示例。 但是请注意,我们定义隐变量/观察变量之间的区别有些随意,你可以自由地将图形模型按需求进行分解。
我们可以通过交换等式的项来重写贝叶斯定理:
现在的“后验概率”是。
从贝叶斯统计框架,隐变量可以解释为附加到观察变量的先验信念。 例如,如果我们认为是多元高斯,则隐变量可以表示高斯分布的均值和方差。 另外,参数上的分布是的先验分布。
你也可以自由选择和代表的值。 例如,可以代之以“均值、方差的立方根、以及,其中”。 虽然有点突兀、奇怪,但只要相应地修改,结构仍然有效。
你甚至可以往系统中“添加”变量。先验本身可能通过依赖于其他随机变量,具有它们自己的的先验分布,并且那些先验仍然是有先验的,依此类推。任何超参数都可以被认为是先验的。 在贝叶斯统计中,先验是无穷递归的。【译者按:1.英文中俗语“turtles all the way down”表示问题无限循环、递归,作者用了"priors all the way down"来诙谐地表达先验系统的递归性。2.先验的层次越深,对结果的影响越小】
形式化
我们感兴趣的关键问题是隐变量的后验推断或密度函数。后验推断的一些典型例子:
- 给定监控录像,嫌疑人是否出现?
- 给定推特,作者的心情是否忧郁?
- 给定历史股票价格,会是什么?
我们通常假设,我们已知如何计算似然分布和先验分布【译者按:原文为“function”函数,应为讹误,后文类似情况以符号为准】。
然而,对于像上面的复杂任务,我们常常不知道如何从采样或计算。或者,我们可能知道的形式,但相应的计算十分复杂,以至于我们无法在合理的时间内对其评估【译者按:“评估”的意思是给定似然函数,求出该函数在某一点上的值】。 我们可以尝试使用像MCMC这样的基于采样的方法求解,但这类方法很难收敛。
平均场近似的变分下界
变分推断背后的想法是这样的:对简单的参数分布(就像高斯分布)进行推断。对这个函数,我们已经知道如何做后验推断,于是任务变成了调整参数使得尽可能接近。【译者按:“推断”在这里指的是从观察变量的概率分布导出隐变量的概率分布】
这在视觉上如下图所示:蓝色曲线是真实的后验分布,绿色分布是通过优化得到的拟合蓝色密度的变分近似(高斯分布)。
两个分布“接近”意味着什么? 平均场变分贝叶斯(最常见的类型)使用反向KL散度作为两个分布之间的距离度量。
反向KL散度测量出将“变形(distort)”成所需的信息量(以nat为单位或以2为底的对数bits为单位)。我们希望最小化这个量。【译者按:许多研究产生式模型的论文会比较不同方法下的散度值。】
根据条件分布的定义,。 让我们将这个表达式代入原来的KL表达式,然后使用分配律:
为了使相对于变分参数最小化,我们只需要最小化,因为对于来说是常数。 让我们重新写这个数量作为对分布的期望。
最小化上面的式子等价于最大化负的式子:
在文献中,被称为变分下界。如果我们能够估计、、,我们就可以计算它。我们可以继续调整式子里各项的顺序,使之更符合直觉:
如果说采样是将观察变量“编码”为隐变量的过程,则采样是从重建观察变量的“解码”过程。
由此得出是预期的“解码”似然(即变分分布能在多大程度上将样本解码回样本),再减去变分近似的分布与先验之间的KL散度【译者按:原文是“加上”,应该是减去】。如果我们假设是条件高斯的,那么先验通常被指定为平均值0、标准偏差1的对角高斯分布。
为什么称为变分下界? 将代入,我们有:
的含义,用大白话说就是,真实分布下的数据点的对数似然,等于,加上用来捕获在该特定值处和之间距离的差。
由于,必大于(或等于)。因此是的下界。 也被称为证据下界(ELBO),通过调整公式:
注意,本身包含近似后验和先验之间的KL散度,因此中总共有两个KL项。
前向KL与反向KL
KL散度函数不是对称距离函数,即(当时除外)第一个被称为“前向KL”,而后者是“反向KL””。 我们为什么要使用反向KL呢?因为推导的目标要求我们近似,所以【在和不能同时得到最优形式的情况下】我们要优先确保的形式准确。
我很喜欢Kevin Murphy在PML教科书中的解释,我在这里尝试重新说明一下:
让我们首先考虑正向KL。正如上述推导,我们可以将KL写为,权重函数加权下,“惩罚”函数的期望。
只要,惩罚函数在任何地方都会给总KL带来损失。对于,。 这意味着前向KL将在未能“掩盖”时,将会很大。
因此,当我们确保前向KL最小化时时,。 优化的变分分布被称为“避免零(zero-avoiding)”(密度为零时避免为零)。
最小化反向KL则具有相反的性质:
如果,我们必须确保分母的地方,加权功能的。否则KL会爆炸。这被称为“必设零(zero-forcing)”:
总而言之,最小化前向KL会“拉伸”变分分布覆盖整个,像一个篷布。与此相对,最小化反向KL“挤压”,使之落在之“下”。
在机器学习问题中,使用平均场近似时,留意反向KL的后果很重要。 如果我们将单峰分布拟合到多模态分布,我们最终会得到更多的假阴性的样例(也就是说,实际上存在概率,但我们依据认为没有可能性)。
与深度学习的联系
变分法对于深度学习非常重要。 我将在后面再写文章详细说明。这是“太长不看版”:
- 深度学习非常擅长使用大量数据,在非常大的参数空间上进行优化(特别是使用了梯度下降算法)。
- 变分贝叶斯为我们提供了一个框架,可以用来重写统计推断问题,变成优化问题。
结合深度学习和变分贝叶斯方法,我们可以对极其复杂的后验分布进行推理。 事实证明,像变分自动编码器这样的现代技术,可以优化得到上文中形式完全相同的平均场变分下界!
感谢阅读,敬请期待!
网友评论