变分贝叶斯初探

原题: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.与深度学习的联系

1.前提和符号约定

本文假设读者熟悉随机变量、概率分布和数学期望等概念。如果你忘了这些概念,可以在这里进行复习。机器学习和统计领域的符号约定没有被严格地标准化,因此在这篇文章中,我们约定如下符号,确定的符号将对理解文意很有帮助:

  • 大写字母X表示随机变量;
  • 大写字母P(X)表示该变量的概率分布;
  • 小写字母x \sim P(X)表示通过一些生成过程,x为采样(\sim)概率分布P(X)中的值;
  • 小写字母p(X)X分布的(概率)密度函数,它是X的度量空间上的标量函数;
  • p(X = x)(简写p(x))表示在特定值x处的密度函数值。

许多学术论文将术语“变量”、“分布”、“密度”,甚至“模型”互换使用。这种做法本身不一定导致错误,因为XP(X)p(X)都可以通过一对一的对应关系相互指代。但是,将这些术语混合在一起,容易让人感到困惑。因为它们的指代范畴各不相同(比如对函数进行抽样没有意义,对分布积分同样没有意义)。

我们将系统建模为随机变量的集合,其中一些变量(X)是“可观察的”,而其他变量(Z)是“隐藏的”。 【译者按:后文称二者为“观察变量”和“隐变量”】我们可以通过下图绘制这种关系:

ZX,通过条件分布P(X|Z)这条边,将两个变量联系在一起。

说一个更形象的例子:X可能代表“图像的原始像素值”,而Z是二值变量。如果X是猫的图像,Z = 1

P(Z=1)=1 (这一定是猫)

P(Z=1)=0 (这一定不是猫)

P(Z=1)=0.1 (有点像猫)

贝叶斯定理给出了任意一对随机变量之间的一般关系:
p(Z|X) = \frac{p(X|Z)p(Z)}{P(X)}
其中的各项与如下常见名称相关联:

p(Z|X)是后验概率:“给定图像,这是猫的概率是多少?” 如果我们可以从z\sim P(Z|X)进行采样,我们可以用它作一个猫分类器,告诉我们给定的图像是否是猫。

p(X|Z)是似然概率:“给定Z的值,计算出该图像X在该类别下的‘可能’程度({是猫/不是猫})” 如果我们可以从x\sim P(X|Z)进行采样,那么我们就可以生成猫的图像和非猫的图像,就像生成随机数一样容易。如果你想了解更多相关信息,请参阅我的关于生成模型的其他文章: [1], [2]

p(Z)是先验概率。它指代我们所知道的关于Z的任何先前信息——例如,如果我们认为所有图像中,有1/3是猫,那么p(Z=1)=\frac{1}{3}并且p(Z=0)=\frac{2}{3}

隐变量作为先验概率

这部分是为了感兴趣的读者准备的。请直接跳到下一部分,继续学习本教程。

前面猫的示例提供了观察变量、隐变量和先验的理解角度,是传统的一个示例。 但是请注意,我们定义隐变量/观察变量之间的区别有些随意,你可以自由地将图形模型按需求进行分解。

我们可以通过交换等式的项来重写贝叶斯定理:
\frac{p(Z|X)p(X)}{p(Z)} = p(X|Z)
现在的“后验概率”是P(X|Z)

从贝叶斯统计框架,隐变量可以解释为附加到观察变量的先验信念。 例如,如果我们认为X是多元高斯,则隐变量Z可以表示高斯分布的均值和方差。 另外,参数P(Z)上的分布是P(X)的先验分布。

你也可以自由选择XZ代表的值。 例如,Z可以代之以“均值、方差的立方根、以及X+Y,其中Y\sim N(0,1)”。 虽然有点突兀、奇怪,但只要相应地修改P(X|Z),结构仍然有效。

你甚至可以往系统中“添加”变量。先验本身可能通过P(Z|\theta)依赖于其他随机变量,P(Z|\theta)具有它们自己的P(\theta)的先验分布,并且那些先验仍然是有先验的,依此类推。任何超参数都可以被认为是先验的。 在贝叶斯统计中,先验是无穷递归的。【译者按:1.英文中俗语“turtles all the way down”表示问题无限循环、递归,作者用了"priors all the way down"来诙谐地表达先验系统的递归性。2.先验的层次越深,对结果的影响越

2.问题的表述(形式化)

我们感兴趣的关键问题是隐变量Z的后验推断或密度函数。后验推断的一些典型例子:

  • 给定监控录像X,嫌疑人是否出现?
  • 给定推特X,作者的心情是否忧郁?
  • 给定历史股票价格X_{1:t-1}X_t会是什么?

我们通常假设,我们已知如何计算似然分布P(X|Z)和先验分布P(Z)【译者按:原文为“function”函数,应为讹误,后文类似情况以符号为准】。

然而,对于像上面的复杂任务,我们常常不知道如何从P(Z|X)采样或计算p(Z|X)。或者,我们可能知道p(Z|X)的形式,但相应的计算十分复杂,以至于我们无法在合理的时间内对其评估【译者按:“评估”的意思是给定似然函数,求出该函数在某一点上的值】。 我们可以尝试使用像MCMC这样的基于采样的方法求解,但这类方法很难收敛。

3.平均场近似的变分下界

变分推断背后的想法是这样的:对简单的参数分布Q(Z|X)(就像高斯分布)进行推断。对这个函数,我们已经知道如何做后验推断,于是任务变成了调整参数\phi使得Q_\phi尽可能接近P。【译者按:“推断”在这里指的是从观察变量X的概率分布导出隐变量Z的概率分布】

这在视觉上如下图所示:蓝色曲线是真实的后验分布,绿色分布是通过优化得到的拟合蓝色密度的变分近似(高斯分布)。


两个分布“接近”意味着什么? 平均场变分贝叶斯(最常见的类型)使用反向KL散度作为两个分布之间的距离度量。

KL(Q_\phi(Z|X)||P(Z|X)) = \sum_{z \in Z}{q_\phi(z|x)\log\frac{q_\phi(z|x)}{p(z|x)}}

反向KL散度测量出将P(Z)“扭曲(distort)”成Q_\phi(Z)所需的信息量(以nat为单位或以2为底的对数bits为单位)。我们希望最小化这个量。【译者按:1.“扭曲”的意思是,把P(Z)Q_\phi(Z)贴合在一起,即通过某种映射引发函数图像的形变,使二者图像一致;2.许多研究产生式模型的论文会比较不同方法下的散度值。】

根据条件分布的定义,p(z|x) = \frac{p(x,z)}{p(x)}。 让我们将这个表达式代入原来的KL表达式,然后使用分配律:
\begin{align} KL(Q||P) & = \sum_{z \in Z}{q_\phi(z|x)\log\frac{q_\phi(z|x)p(x)}{p(z,x)}} && \text{(1)} \\ & = \sum_{z \in Z}{q_\phi(z|x)\big(\log{\frac{q_\phi(z|x)}{p(z,x)}} + \log{p(x)}\big)} \\ & = \Big(\sum_{z}{q_\phi(z|x)\log{\frac{q_\phi(z|x)}{p(z,x)}}}\Big) + \Big(\sum_{z}{\log{p(x)}q_\phi(z|x)}\Big) \\ & = \Big(\sum_{z}{q_\phi(z|x)\log{\frac{q_\phi(z|x)}{p(z,x)}}}\Big) + \Big(\log{p(x)}\sum_{z}{q_\phi(z|x)}\Big) && \text{note: $\sum_{z}{q(z)} = 1 $} \\ & = \log{p(x)} + \Big(\sum_{z}{q_\phi(z|x)\log{\frac{q_\phi(z|x)}{p(z,x)}}}\Big) \\ \end{align}
为了使KL(Q||P)相对于变分参数\phi最小化,我们只需要最小化\sum_{z}{q_\phi(z|x)\log{\frac{q_\phi(z|x)}{p(z,x)}}},因为\log{p(x)}对于\phi来说是常数。 让我们重新写这个数量作为对分布Q_\phi(Z|X)的期望。
\begin{align} \sum_{z}{q_\phi(z|x)\log{\frac{q_\phi(z|x)}{p(z,x)}}} & = \mathbb{E}_{z \sim Q_\phi(Z|X)}\big[\log{\frac{q_\phi(z|x)}{p(z,x)}}\big]\\ & = \mathbb{E}_Q\big[ \log{q_\phi(z|x)} - \log{p(x,z)} \big] \\ & = \mathbb{E}_Q\big[ \log{q_\phi(z|x)} - (\log{p(x|z)} + \log(p(z))) \big] && \text{(via $\log{p(x,z)=p(x|z)p(z)}$) }\\ & = \mathbb{E}_Q\big[ \log{q_\phi(z|x)} - \log{p(x|z)} - \log(p(z))) \big] \\ \end{align} \\
最小化上面的式子等价于最大化负的式子:
\begin{align} \text{maximize } \mathcal{L} & = -\sum_{z}{q_\phi(z|x)\log{\frac{q_\phi(z|x)}{p(z,x)}}} \\ & = \mathbb{E}_Q\big[ -\log{q_\phi(z|x)} + \log{p(x|z)} + \log(p(z))) \big] \\ & = \mathbb{E}_Q\big[ \log{p(x|z)} + \log{\frac{p(z)}{ q_\phi(z|x)}} \big] && \text{(2)} \\ \end{align}
在文献中,\mathcal{L}被称为变分下界。如果我们能够估计p(x|z)p(z)q(z|x),我们就可以计算它。我们可以继续调整式子里各项的顺序,使之更符合直觉:
\begin{align*} \mathcal{L} & = \mathbb{E}_Q\big[ \log{p(x|z)} + \log{\frac{p(z)}{ q_\phi(z|x)}} \big] \\ & = \mathbb{E}_Q\big[ \log{p(x|z)} \big] + \sum_{Q}{q(z|x)\log{\frac{p(z)}{ q_\phi(z|x)}}} && \text{Definition of expectation} \\ & = \mathbb{E}_Q\big[ \log{p(x|z)} \big] - KL(Q(Z|X)||P(Z)) && \text{Definition of KL divergence} && \text{(3)} \end{align*}
如果说采样z\sim Q(Z|X)是将观察变量x“编码”为隐变量z的过程,则采样x\sim Q(X|Z)是从z重建观察变量x的“解码”过程。

由此得出\mathcal{L}是预期的“解码”似然(即变分分布Q_\phi能在多大程度上将样本Z解码回样本X),再减去变分近似的分布与先验Z之间的KL散度【译者按:原文是“加上”,应该是减去】。如果我们假设Q(Z|X)是条件高斯的,那么先验Z通常被指定为平均值0、标准偏差1的对角高斯分布。

为什么\mathcal{L}称为变分下界? 将\mathcal{L}代入Eq. (1),我们有:
KL(Q||P) = \log{p(x)} - \mathcal{L}
\log{p(x)} = \mathcal{L} + KL(Q||P) \text{(4)}
Eq. (4)的含义,用大白话说就是,真实分布下的数据点x的对数似然\log{p(x)},等于\mathcal{L},加上KL(Q||P)用来捕获在该特定值xQ(Z|X=x)P(Z|X=x)之间距离的差。

由于KL(Q||P)\geq 0\log{p(x)}必大于(或等于)\mathcal{L}。因此\mathcal{L}\log{p(x)}的下界。 \log{p(x)}也被称为证据下界(ELBO),通过调整公式:
\mathcal{L} = \log p(x) - KL(Q(Z|X)||P(Z|X)) = \mathbb{E}_Q\big[ \log{p(x|z)} \big] - KL(Q(Z|X)||P(Z))

注意,\mathcal{L}本身包含近似后验和先验之间的KL散度,因此\log p(x)中总共有两个KL项。

4.前向KL与反向KL

KL散度函数不是对称距离函数,即KL(P||Q)\neq KL(Q||P)(当Q≡P时除外)第一个被称为“前向KL”,而后者是“反向KL””。 我们为什么要使用反向KL呢?因为推导的目标要求我们近似p(Z|X),所以【在p(Z|X)q(Z|X)不能同时得到最优形式的情况下】我们要优先确保p(Z|X)的形式准确。

我很喜欢Kevin Murphy在PML教科书中的解释,我在这里尝试重新说明一下:

让我们首先考虑正向KL。正如上述推导,我们可以将KL写为,权重函数p(z)加权下,“惩罚”函数log{\frac{p(z)}{q(z)}}的期望。
\begin{align*} KL(P||Q) & = \sum_z p(z) \log \frac{p(z)}{q(z)} \\ & = \mathbb{E}_{p(z)}{\big[\log \frac{p(z)}{q(z)}\big]}\\ \end{align*}
只要P(Z)>0,惩罚函数在任何地方都会给总KL带来损失。对于P(Z)>0\lim_{q(Z) \to 0} \log \frac{p(z)}{q(z)} \to \infty。 这意味着前向KL将在Q(Z)未能“掩盖”P(Z)时,将会很大。

因此,当我们确保前向KL最小化时P(Z)>0时,Q(Z)>0。 优化的变分分布Q(Z)被称为“避免零(zero-avoiding)”(密度P(Z)为零时Q(Z)避免为零)。


最小化反向KL则具有相反的性质:

\begin{align*} KL(Q||P) & = \sum_z q(z) \log \frac{q(z)}{p(z)} \\ & = \mathbb{E}_{q(z)}{\big[\log \frac{q(z)}{p(z)}\big]} \end{align*}

如果P(Z)=0,我们必须确保分母 P(Z)=0的地方,加权功能的Q(Z)=0,否则KL会爆炸。这被称为“必设零(zero-forcing)”:


总而言之,最小化前向KL会“拉伸”变分分布Q(Z)覆盖整个P(Z),像一个篷布。与此相对,最小化反向KL“挤压”Q(Z),使之落在P(Z)之“下”。

在机器学习问题中,使用平均场近似时,留意反向KL的后果很重要。 如果我们将单峰分布拟合到多模态分布,我们最终会得到更多的假阴性的样例(也就是说,P(Z)实际上存在概率,但我们依据Q(Z)认为没有可能性)。

5.与深度学习的联系

变分法对于深度学习非常重要。 我将在后面再写文章详细说明。这是“太长不看版”:

  • 深度学习非常擅长使用大量数据,在非常大的参数空间上进行优化(特别是使用了梯度下降算法)。
  • 变分贝叶斯为我们提供了一个框架,可以用来重写统计推断问题,变成优化问题。

结合深度学习和变分贝叶斯方法,我们可以对极其复杂的后验分布进行推断。 事实证明,像变分自动编码器这样的现代技术,可以优化得到上文中形式完全相同的平均场变分下界!

感谢阅读,敬请期待!

补充说明:为啥叫“平均场近似”

鉴于标题,我们值得给出“平均场近似”这个名字背后的一些动机。

从统计物理学的观点来看,“平均场”是指忽略二阶效应,将困难的优化问题放松到更简单的问题。例如,在图模型的情境中,我们可以把估计马尔可夫随机场的配分函数(partition function)问题,转为最大化吉布斯自由能(对数配分函数减去相对熵)的问题。这显著地简化了全概率测量空间的全局优化的形式(参见M. Mezard和A. Montanari,Sect 4.4.2)。

整体分解:
p(x_1, ..., x_N) = p(x_1)p(x_2|x_1)...p(x_N|x_1,...,x_{N-1})
平均场近似的分解:
p(x_1, ..., x_N) = p(x_1)p(x_2)...p(x_N)

从算法的观点来看,“平均场”是指用于计算马尔可夫随机场边缘概率的朴素平均场算法(naive mean field algorithm)。回想一下,朴素平均场算法的固定点【即最终解】是吉布斯变分问题的平均场近似的最优点。这种方法是“均值”,因为它是吉布斯采样器的平均/期望/ LLN版本,因此忽略了二阶(随机)效应(参见,M.Wainwright和M. Jordan,(2.14)和(2.15))。

【译者按:
1.上述说明主要针对配分函数而言的。
2.VAE的隐空间为标准高斯分布,协方差矩阵为对角单位阵,而不考虑非对角元素的影响。这体现了“平均场”的思想。
3.VAE的实验效果显示,产生图像较为模糊或“平均”,不够锐利,也许正是平均场近似的结果】

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容