【一文学会】变分推断及其求解方法
目录
变分推断(变分推理)
变分
背景描述
变分推断
古典方法
黑盒变分推断(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)
- 重新参数化技巧
古典方法
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/0c47595c969e4adfb46ea77ea621c747.gif)
文章图片
变分推断的核心思想就是在关于Q的有约束的分布簇上最大化L(Q)。一个非常常用的变分学习的方法是加入一些限制使得Q是一个因子分布(也就平均场均值场方法) 。
平均场(mean-field)
用电子来举例,每个电子受到其他电子的库仑相互作用,我们将所有其他电子对该电子的相互作用合并为一个有效场。利用有效场取代电子之间的库仑相互作用之后,每一个电子在一个有效场中运动,电子与电子之间的运动是独立的。同样的思想用在Q的假设上,变分分布Q(Z)可以通过参数和潜在变量的划分因式分解,比如将Z划分为Z1 ...... ZM。
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/145fbfe93e104634829c78921728943a.gif)
文章图片
代入到ELBO中:
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/51e9c9f2949047f5b6f2fcbc158f0aa1.gif)
文章图片
对第一项进行简化,
文章图片
既然
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/c2d60c0bc47742eba2e7516bb68cc97e.gif)
文章图片
是独立的,那么就可以将积分式展开,同时
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/806dc70d56884d66ba7e8fd4135fdb56.gif)
文章图片
的积分项提出来,这便是前两行所表达的。到此为止,我们是不是可以将简化的这一项看成
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/898a43ce874a45b4a69bf54f7e13c793.gif)
文章图片
在
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/6f1493de63564b189295358447f6f9b8.gif)
文章图片
下的期望?所以我们可以将右端再简化为第三行的形式。
对第二项进行简化,
文章图片
第二项的简化是怎么做的呢,将式子展开得到第二行,再展开分别进行积分,含
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/b4bc0d6da6e24a4189a157b1dc22e890.gif)
文章图片
的积分项可以将其他隐变量积掉,从而简化为第三行的形式。
合并简化后的两项,也就是将ELBO重新写为:
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/371c797b6c1943d1978225566e5c313f.gif)
文章图片
我们仔细端详一下这个式子,因为Q(Z)的各个成分是独立的,所以只看Q(Zj)的时候,第二项的Q的其他成分可以看成常量,不影响计算。而第一项中,再引入一个脑洞:
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/b8e1b486259f4b95a6ea01f0d38e1877.gif)
文章图片
为什么可以将这项期望标记成这样呢,我会在最后给出它简单的推理,不过现在有了这式后,我们又可以把ELBO重写了:
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/3dafe61c8a8b4aea8ea5d6d4c59c7392.gif)
文章图片
我们将ELBO重写通过将Q(Zj) 的成分展现出来,惊讶的发现这就是一个KL距离啊。固定其他Q(Zi) ,改变Q(Zj),如果我们想最大化ELBO,那不就是要最小化这个KL距离嘛!从变分推断的角度来说,我们就是要用这个复杂的期望去近似Q(Zj) 。所以,我们的核心部分就出来了。
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/bc14264626fe452393a9d9019090938a.gif)
文章图片
OK,最后简述一下优化步骤:
如图所示,固定Q(Zj),在
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/84b87c489d9b4890969be2aa7605d987.gif)
文章图片
(除了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)
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/0c47595c969e4adfb46ea77ea621c747.gif)
文章图片
假设Q的参数为
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/de532deeb2b0461b84e18dc8ef643b50.gif)
文章图片
,对
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/de532deeb2b0461b84e18dc8ef643b50.gif)
文章图片
求导,得到?梯度:
文章图片
我会在附录里证明这个式子的等价。
大牛们开了脑洞,把这个式子变为一个期望方程,期望方程长这样:
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/5d9d5fe2520e4c29b1849f94215af3a9.jpg)
文章图片
于是这个式子变为了:
文章图片
其中
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/352bf5c434e147a4a54afe38326ad603.gif)
文章图片
扮演了p(x)的地位。
于是?ELBO变成一个求取期望的过程。实际工程中,解析求解该过程是很难的;不过既然是求期望,那么我们随机采样的话就能估计出一个期望值。期望看做加权平均,换到蒙特卡洛方法,那么就是根据
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/352bf5c434e147a4a54afe38326ad603.gif)
文章图片
的概率来进行采样,取出S个Zs值后求平均即为期望。那么有:
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/45d78b55058c473ab9384e6d48a65d1c.gif)
文章图片
然后就是采用梯度下降法了,依然是先求解i系列变量,固定其他系列变量的过程:
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/e2107a65e42b4778b67a7b78d09b2767.gif)
文章图片
为了求解过程快速收敛、稳定,可以使用ada下降法等方法。
至于先验信息是怎么使用的。例如我们把w,b看做Z,那么改写为p(x|w,b)=p(X|Z),然后乘以p(Z)得到p(X,Z)代入求解式中。
方法研究补充:该方法直接后果是variance太大,从而导致收敛极慢。目前已有工作Rao-Blackwellization,O-BBVI。
reparameterization tricks
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/0c47595c969e4adfb46ea77ea621c747.gif)
文章图片
首先,我们说说什么是重新参数化技巧,其主题思想较为简单,如果我们能把一个复杂变量用一个标准变量来表示,比如
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/4f714fb75b2a4eadb832e463183aae58.gif)
文章图片
,其中,那么我们就可以用这个变量取代z。举个例子,假如q (z; θ)是个复杂分布
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/6c5b7fec64ec486c815a42e6f890889f.gif)
文章图片
,现在我们想将z再参数化,用q(ε)去表示q(z; θ),即,用一个one-liners(简单理解为一行变换)表示从ε到z的联系,令f(ε)为μ+Rε。
这样做会带来什么,假如我们要依据Q(z; θ) 采样,那么现在就可以根据Q(ε) 采样,用f(ε; θ)进行代替。这样做的好处在哪? 我们从Q(z; θ)中采样,然后再利用采样处的梯度修正Q,这样两次的误差就会叠加,这也是用黑盒变分推断方差大的原因。但做了这个重新参数化,我们只需要从一个分布非常稳定的random seed中采样,比如N(0,1)所以noise小得多。
好,现在我们假设有
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/bbae610aecc845748f7a3feab0a6dda3.gif)
文章图片
,ε称为一个random seed,
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/5ac11b44fef442d2a92f80ef9cf93940.gif)
文章图片
是一个被参数化的光滑函数族,比如一个DNN。有了这个技术,我们便有:
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/bb330f0b95f7451f94e986c152714bcb.gif)
文章图片
上式的证明会在附录中给出,接下来对θ求梯度便有:
文章图片
如果它是DNN决定的,就可以反向传播。对采样(),方差就小了很多。回到刚才的例子,我们假设Z满足的分布是一个正态分布,它的均值和方差由两个DNN算出来,那么我们就可以很简单的得到
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/8f4dfc03c9fd4b01b294e091b40d7d09.gif)
文章图片
,于是我们便可以对参数进行优化
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/14194b3336a84d75b5c8bb213abaaf7e.gif)
文章图片
。
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/a39a8bc0dda042beab03919eda294983.jpg)
文章图片
通过蒙特卡洛积分计算期望,得到梯度的无偏估计量
文章图片
这里面所用到的假设很简单:
1,连续随机变量z和一个已知的单行变换
2,较为容易的从base distribution或者random seed中生成样本ε
3,可微函数f
哪些对
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/a56c2bdf4eec4b3d9c75f9c54cbcec2e.gif)
文章图片
我们可以用这样的变换呢?
1,易处理的逆CDF
在这种情况下,变换
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/5ac11b44fef442d2a92f80ef9cf93940.gif)
文章图片
设为
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/a56c2bdf4eec4b3d9c75f9c54cbcec2e.gif)
文章图片
的逆CDF。如:指数(Exponential),柯西(Cauchy),逻辑(Logistic),瑞利(Rayleigh),帕累托(Pareto),威布尔(Weibull),倒数(Reciprocal),贡波茨(Gompertz),甘伯尔(Gumbel)和埃尔朗(Erlang)分布。
2,“location-scale”式分布
类似高斯分布的例子,选取标准分布ε作为辅助变量(此时location= 0,scale= 1),于是
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/02aaf4febd35488187115536d46a22d3.gif)
文章图片
。同样的有:拉普拉斯(Laplace),椭圆(Elliptical),学生t(Student’s t),逻辑(Logistic),均匀(Uniform),三角形(Triangular)和高斯(Gaussian)分布。
3,组合
这是将随机变量表示为辅助变量的不同变换,比如说将对数正态表示为正态分布变量的幂指数。如:Log-Normal(对数正态分布,正态分布变量的求幂),Gamma(伽马,指数分布变量的和),Dirichlet(狄利克雷,卡方变量的加权和),贝塔,卡方,和F分布。
我们这里给出常见的转换。
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/8974f3e858db41de86269183883e48a9.jpg)
文章图片
最后,我们再来看看这是如何运用到ELBO中的
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/198c1ef2e72542ba897d7620ba7775ce.gif)
文章图片
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/97023383e4a646de879695da7ae41d39.gif)
文章图片
方法研究补充:已被证明可更好解决variance问题,缺陷是无法处理离散分布,目前已有Gumbel-Softmax[1] [2]可以很好解决这个问题,不过能变换的分布有限,但也有normalizing flows (NFs)来处理了,简单说就是做多层函数变换(),具体可参阅文章。
附录 证明一:
![【一文学会】变分推断及其求解方法](https://img.it610.com/image/info8/17a24e5ac429425c829af7ebcea9863e.gif)
文章图片
可见,在面对非正态分布时,计算量很大。
证明二:
文章图片
文章图片
证明三:
【【一文学会】变分推断及其求解方法】
文章图片
我是小明,如果对文章内容或者其他想一起探讨的,欢迎前来。
本篇文章参考以下:
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
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长