【一文学会】变分推断及其求解方法

目录
变分推断(变分推理)
变分
背景描述
变分推断
古典方法
黑盒变分推断(BBVI)
重新参数化技巧
附录
变分推断(变分推理) 变分 首先,什么是变分,对于 f(x) 我们是改变x来求出 f(x) 的极值,这里面的自变量是x; 变分就是,通过改变 f(x) 来求出 F(f(x)) 的极值,这里的自变量是 f(x)。所以,简单来说,变分就是将我们常见的函数的自变量改成一个函数的形式。

背景描述 先说我们在考虑什么问题:
1,我们拥有两部分输入:数据X,模型P(X,Z) 专家利用他们的知识,给出合理的模型假设P(X,Z) ,其中包括隐含变量Z和观察值变量X。(注意,隐变量Z在通常情况下不止一个,并且相互间存在依赖关系,这也使得问题难以求解)我们认为,观察值是从已知的隐含变量组成的结构中生成出来的(这就是生成模型)。以高斯混合模型举例,我们有2个相互独立的高斯分布,分别从中生成很多数据点,这些数据点混合在一起,组成了一个数据集。切换角度,单从每一个数据点出发,考虑它是如何被生成的呢?生成过程分两步,第一步,从2个类中选一个,然后,再根据这个类对应的高斯分布,生成了这个点在空间中的位置。隐含变量有两个,第一个是2个高斯分布的参数【一文学会】变分推断及其求解方法
文章图片
,第二个是每个点属于哪个高斯分布【一文学会】变分推断及其求解方法
文章图片
【一文学会】变分推断及其求解方法
文章图片
【一文学会】变分推断及其求解方法
文章图片
共同组成隐含变量Z。
2,后验概率P(Z|X) 是说,基于我们现有的数据集合X,推断隐含变量的分布情况。高斯混合模型为例,就是求每个高斯分布的参数【一文学会】变分推断及其求解方法
文章图片
和每个数据点所属各个分布的概率【一文学会】变分推断及其求解方法
文章图片
。根据贝叶斯公式,P(Z|X) = P(X,Z) / P(X)。我们根据专家提供的生成模型,可知 P(X,Z) 部分(可以写出表达式并且方便优化),但是边缘概率P(X) ,是不能求得的,因为当Z连续时,边缘概率需要对所有可能的Z求积分,难求;当Z离散时,计算复杂性随着X的增加而指数增长。
3,我们需要构造Q(Z; 【一文学会】变分推断及其求解方法
文章图片
),并且不断更新【一文学会】变分推断及其求解方法
文章图片
,使得Q(Z; 【一文学会】变分推断及其求解方法
文章图片
)更接近P(Z|X) 。首先注意,Q(Z; 【一文学会】变分推断及其求解方法
文章图片
)的表达,意思是Z是变量,【一文学会】变分推断及其求解方法
文章图片
是Z的概率分布Q的参数。所以在构造Q的时候也分两步,第一,概率分布的选择;第二,参数的选择。第一步,我们在选择Q的概率分布时,通常会直观选择P可能的概率分布,这样能够更好地保证Q和P的相似程度。例如高斯混合模型中,原始假设P服从高斯分布,则构造的Q依然服从高斯分布。之后,我们通过改变【一文学会】变分推断及其求解方法
文章图片
,使得Q不断逼近P。
4,优化问题的求解思路。优化目标很明确,减小KL散度的值即可。然而,KL的表达式中依然有一部分不可求的后验概率,这就是为什么转头去求ELBO的原因。利用下面的等式(见后),ELBO中只包括联合概率P(X,Z)和Q(Z; 【一文学会】变分推断及其求解方法
文章图片
),从而摆脱后验概率。给定数据集后,最小化KL等价于最大化ELBO,因此ELBO的最大化过程结束时,对应获得的Q(Z; 【一文学会】变分推断及其求解方法
文章图片
),就成为了我们的最后输出。

变分推断 现在进入正题,我们对一组数据【一文学会】变分推断及其求解方法
文章图片
【一文学会】变分推断及其求解方法
文章图片
表示模型生成数据的真实分布。机器学习中最常见的问题,就是求后验概率P(Z|X) ,这里的Z你可以认为是模型的响应变量,也可以说成隐变量。然而这个后验分布通常是复杂难求的,于是我们就考虑用一个相对简单的分布Q来对后验分布P近似。
【一文学会】变分推断及其求解方法
文章图片

我们从PRML上拿下一张经典的图,假设真实分布P用绿色曲线表示,现在我们希望用一组简单的Q不断逼近P,最终达到图d中的效果,这就是变分推断(VI)所做的事。如何去衡量Q与P之间的近似程度呢?VI中采用的衡量指标是KL散度。
接下来我们对P(X) 的做一些处理:
1,由条件概率公式:
【一文学会】变分推断及其求解方法
文章图片

2,两边取对数,并在等式右边引入Q(Z) 后:
【一文学会】变分推断及其求解方法
文章图片

3,在Q(Z) 下对上式取期望,Q(Z) 即为我们用来近似的分布:
【一文学会】变分推断及其求解方法
文章图片

4,等式左端P(X) 与Z无关,Q(Z) 对Z的积分为1; 等式右端简单展开,得到:
【一文学会】变分推断及其求解方法
文章图片

经过上述处理,我们看看得到了什么:我们将左式化为ELBO(Evidence Lower Bound Objective)和KL 距离的和。我们不知道样本X的真实分布,但是客观真理是不会改变的,所以P(X) 和lnP(X) 都是未知的常量。等式的右端,ELBO是一个泛函,是Q的函数,由于KL距离是非负的,所以ELBO的上界就是lnP(X) 。我们的目标是最小化KL距离,但其中P(Z|X) 是难以得知的,但式中KL距离和ELBO是此消彼长的关系,这等价于最大化ELBO。当然,一次性就找出ELBO中最佳的Q是不现实的,相反是不断的调整这个分布的参数,使得最后收敛到目标后验概率上。
【一文学会】变分推断及其求解方法
文章图片

因此,我们的目标变为最大化ELBO:
【一文学会】变分推断及其求解方法
文章图片

框架给出来了,那么如何求解上述式子呢,我们这里给出三种解法:

  • 古典方法(mean-field)
  • 黑盒变分推断(BBVI)
  • 重新参数化技巧

古典方法 【一文学会】变分推断及其求解方法
文章图片

变分推断的核心思想就是在关于Q的有约束的分布簇上最大化L(Q)。一个非常常用的变分学习的方法是加入一些限制使得Q是一个因子分布(也就平均场均值场方法) 。
平均场(mean-field)
用电子来举例,每个电子受到其他电子的库仑相互作用,我们将所有其他电子对该电子的相互作用合并为一个有效场。利用有效场取代电子之间的库仑相互作用之后,每一个电子在一个有效场中运动,电子与电子之间的运动是独立的。同样的思想用在Q的假设上,变分分布Q(Z)可以通过参数和潜在变量的划分因式分解,比如将Z划分为Z1 ...... ZM。
【一文学会】变分推断及其求解方法
文章图片

代入到ELBO中:
【一文学会】变分推断及其求解方法
文章图片

对第一项进行简化,
【一文学会】变分推断及其求解方法
文章图片

既然【一文学会】变分推断及其求解方法
文章图片
是独立的,那么就可以将积分式展开,同时【一文学会】变分推断及其求解方法
文章图片
的积分项提出来,这便是前两行所表达的。到此为止,我们是不是可以将简化的这一项看成【一文学会】变分推断及其求解方法
文章图片
【一文学会】变分推断及其求解方法
文章图片
下的期望?所以我们可以将右端再简化为第三行的形式。
对第二项进行简化,
【一文学会】变分推断及其求解方法
文章图片

第二项的简化是怎么做的呢,将式子展开得到第二行,再展开分别进行积分,含【一文学会】变分推断及其求解方法
文章图片
的积分项可以将其他隐变量积掉,从而简化为第三行的形式。
合并简化后的两项,也就是将ELBO重新写为:
【一文学会】变分推断及其求解方法
文章图片

我们仔细端详一下这个式子,因为Q(Z)的各个成分是独立的,所以只看Q(Zj)的时候,第二项的Q的其他成分可以看成常量,不影响计算。而第一项中,再引入一个脑洞:
【一文学会】变分推断及其求解方法
文章图片

为什么可以将这项期望标记成这样呢,我会在最后给出它简单的推理,不过现在有了这式后,我们又可以把ELBO重写了:
【一文学会】变分推断及其求解方法
文章图片

我们将ELBO重写通过将Q(Zj) 的成分展现出来,惊讶的发现这就是一个KL距离啊。固定其他Q(Zi) ,改变Q(Zj),如果我们想最大化ELBO,那不就是要最小化这个KL距离嘛!从变分推断的角度来说,我们就是要用这个复杂的期望去近似Q(Zj) 。所以,我们的核心部分就出来了。
【一文学会】变分推断及其求解方法
文章图片

OK,最后简述一下优化步骤:
如图所示,固定Q(Zj),在【一文学会】变分推断及其求解方法
文章图片
(除了Q(Zj) 以外的)上,用 ln(P(X,Z)) 去更新Q(Zj)
【一文学会】变分推断及其求解方法
文章图片

经过多次算法迭代,lnQ收敛于固定值,从而得到最大ELBO,进而确定所需KL散度与Q分布。
方法研究补充:条件mean-field就意味着断开了隐变量Z间的联系,也有一些工作来减少这部分gap,如auxiliary variables,hierarchical variational models (HVMs)。大体都是增加辅助变量,比如说还是先假设mean-field,但把变分参数看成变量,在之上加上新的先验。

黑盒变分推断(BBVI) 【一文学会】变分推断及其求解方法
文章图片

假设Q的参数为【一文学会】变分推断及其求解方法
文章图片
,对【一文学会】变分推断及其求解方法
文章图片
求导,得到?梯度:
【一文学会】变分推断及其求解方法
文章图片

我会在附录里证明这个式子的等价。
大牛们开了脑洞,把这个式子变为一个期望方程,期望方程长这样:
【一文学会】变分推断及其求解方法
文章图片

于是这个式子变为了:
【一文学会】变分推断及其求解方法
文章图片

其中【一文学会】变分推断及其求解方法
文章图片
扮演了p(x)的地位。
于是?ELBO变成一个求取期望的过程。实际工程中,解析求解该过程是很难的;不过既然是求期望,那么我们随机采样的话就能估计出一个期望值。期望看做加权平均,换到蒙特卡洛方法,那么就是根据【一文学会】变分推断及其求解方法
文章图片
的概率来进行采样,取出S个Zs值后求平均即为期望。那么有:
【一文学会】变分推断及其求解方法
文章图片

然后就是采用梯度下降法了,依然是先求解i系列变量,固定其他系列变量的过程:
【一文学会】变分推断及其求解方法
文章图片

为了求解过程快速收敛、稳定,可以使用ada下降法等方法。
至于先验信息是怎么使用的。例如我们把w,b看做Z,那么改写为p(x|w,b)=p(X|Z),然后乘以p(Z)得到p(X,Z)代入求解式中。
方法研究补充:该方法直接后果是variance太大,从而导致收敛极慢。目前已有工作Rao-Blackwellization,O-BBVI。

reparameterization tricks 【一文学会】变分推断及其求解方法
文章图片

首先,我们说说什么是重新参数化技巧,其主题思想较为简单,如果我们能把一个复杂变量用一个标准变量来表示,比如【一文学会】变分推断及其求解方法
文章图片
,其中,那么我们就可以用这个变量取代z。举个例子,假如q (z; θ)是个复杂分布【一文学会】变分推断及其求解方法
文章图片
,现在我们想将z再参数化,用q(ε)去表示q(z; θ),即,用一个one-liners(简单理解为一行变换)表示从ε到z的联系,令f(ε)为μ+Rε。
这样做会带来什么,假如我们要依据Q(z; θ) 采样,那么现在就可以根据Q(ε) 采样,用f(ε; θ)进行代替。这样做的好处在哪? 我们从Q(z; θ)中采样,然后再利用采样处的梯度修正Q,这样两次的误差就会叠加,这也是用黑盒变分推断方差大的原因。但做了这个重新参数化,我们只需要从一个分布非常稳定的random seed中采样,比如N(0,1)所以noise小得多。
好,现在我们假设有【一文学会】变分推断及其求解方法
文章图片
,ε称为一个random seed,【一文学会】变分推断及其求解方法
文章图片
是一个被参数化的光滑函数族,比如一个DNN。有了这个技术,我们便有:
【一文学会】变分推断及其求解方法
文章图片

上式的证明会在附录中给出,接下来对θ求梯度便有:
【一文学会】变分推断及其求解方法
文章图片

如果它是DNN决定的,就可以反向传播。对采样(),方差就小了很多。回到刚才的例子,我们假设Z满足的分布是一个正态分布,它的均值和方差由两个DNN算出来,那么我们就可以很简单的得到【一文学会】变分推断及其求解方法
文章图片
,于是我们便可以对参数进行优化【一文学会】变分推断及其求解方法
文章图片

【一文学会】变分推断及其求解方法
文章图片

通过蒙特卡洛积分计算期望,得到梯度的无偏估计量
【一文学会】变分推断及其求解方法
文章图片

这里面所用到的假设很简单:
1,连续随机变量z和一个已知的单行变换
2,较为容易的从base distribution或者random seed中生成样本ε
3,可微函数f
哪些对【一文学会】变分推断及其求解方法
文章图片
我们可以用这样的变换呢?
1,易处理的逆CDF
在这种情况下,变换【一文学会】变分推断及其求解方法
文章图片
设为【一文学会】变分推断及其求解方法
文章图片
的逆CDF。如:指数(Exponential),柯西(Cauchy),逻辑(Logistic),瑞利(Rayleigh),帕累托(Pareto),威布尔(Weibull),倒数(Reciprocal),贡波茨(Gompertz),甘伯尔(Gumbel)和埃尔朗(Erlang)分布。
2,“location-scale”式分布
类似高斯分布的例子,选取标准分布ε作为辅助变量(此时location= 0,scale= 1),于是【一文学会】变分推断及其求解方法
文章图片
。同样的有:拉普拉斯(Laplace),椭圆(Elliptical),学生t(Student’s t),逻辑(Logistic),均匀(Uniform),三角形(Triangular)和高斯(Gaussian)分布。
3,组合
这是将随机变量表示为辅助变量的不同变换,比如说将对数正态表示为正态分布变量的幂指数。如:Log-Normal(对数正态分布,正态分布变量的求幂),Gamma(伽马,指数分布变量的和),Dirichlet(狄利克雷,卡方变量的加权和),贝塔,卡方,和F分布。
我们这里给出常见的转换。
【一文学会】变分推断及其求解方法
文章图片

最后,我们再来看看这是如何运用到ELBO中的
【一文学会】变分推断及其求解方法
文章图片

【一文学会】变分推断及其求解方法
文章图片

方法研究补充:已被证明可更好解决variance问题,缺陷是无法处理离散分布,目前已有Gumbel-Softmax[1] [2]可以很好解决这个问题,不过能变换的分布有限,但也有normalizing flows (NFs)来处理了,简单说就是做多层函数变换(),具体可参阅文章。

附录 证明一:
【一文学会】变分推断及其求解方法
文章图片

可见,在面对非正态分布时,计算量很大。
证明二:
【一文学会】变分推断及其求解方法
文章图片

【一文学会】变分推断及其求解方法
文章图片

证明三:
【【一文学会】变分推断及其求解方法】【一文学会】变分推断及其求解方法
文章图片


我是小明,如果对文章内容或者其他想一起探讨的,欢迎前来。


本篇文章参考以下:
https://blog.csdn.net/lpsl1882/article/details/74018284
https://www.cnblogs.com/yifdu25/p/8181185.html
http://blog.shakirm.com/2015/10/machine-learning-trick-of-the-day-4-reparameterisation-tricks/
https://arxiv.org/pdf/1312.6114.pdf
https://www.zhihu.com/question/41765860/answer/331070683
https://gabrielhuang.gitbooks.io/machine-learning/reparametrization-trick.html
https://www.zhihu.com/question/31032863

    推荐阅读