Auto-Encoding Variational Bayes

  • 论文地址:https://arxiv.org/abs/1312.6114
  • 来源:CoRR, 2013
  • 作者:Diederik P Kingma, Max Welling
  • 关键词:Variational Bayes, Auto-Encoding, Bayes Inference, Probalistic Model

1. 前言

论文为bayes概率图模型难以求解的问题提供了一种有效的思路,利用auto-encoding方法结合variational lower bound求解bayes图模型隐变量的后验分布。

在推断和学习中,我们可以认为数据是根据某个隐变量生成的 — 可以从数据得到隐变量,也能够根据隐变量得到数据 — 就像一个编码、解码的过程。但是,通常隐变量的分布是未知的、复杂的,难以通过假定一个已知的分布来近似隐变量的真实分布。

简单谈一下个人对隐变量的理解:宽泛的讲,隐变量就像现实背后的某种神秘的、未知的因素,我们所见的现实背后蕴含着这种神秘的因素 — 隐变量,但我们通常是看不到隐变量的,也无法对它进行直接的观测,比如直接描述它是什么、它的形式、它发生的概率等等。但当我们得知隐变量后我们就像获得了某种神奇的力量,知道隐变量发生后现实中会发生什么。从数据的角度来看,隐变量可以是数据背后的“真理” — 特征、数据产生的原因。当我们能够描述隐变量后,我们就能够根据隐变量生成我们想要的数据。这就像一个编码-解码的过程,将原始数据编码为特征,再根据特征产生数据。

在这里插入图片描述

那么问题来了:如何得到隐变量呢?

2. 变分下界

如上图所示,图中实线可以看作生成(即解码)过程 — p θ ( z ) p θ ( x ∣ z ) p_{\theta}(\boldsymbol{z})p_{\theta}(\boldsymbol{x}|\boldsymbol{z}) pθ(z)pθ(xz),虚线可以看作编码过程 — q ϕ ( z ∣ x ) q_{\phi}(\boldsymbol{z}|\boldsymbol{x}) qϕ(zx) θ \theta θ表示真实的分布的参数, ϕ \phi ϕ表示近似ho后验分布的参数 — 该近似分布用于近似真实的后验分布 p θ ( z ∣ x ) p_{\theta}(\boldsymbol{z}|\boldsymbol{x}) pθ(zx)。为了使近似分布 q ϕ ( z ∣ x ) q_{\phi}(\boldsymbol{z}|\boldsymbol{x}) qϕ(zx)和真实分布 p θ ( z ∣ x ) p_{\theta}(\boldsymbol{z}|\boldsymbol{x}) pθ(zx)尽量相同,可以使用KL散度进行衡量。
在这里插入图片描述
由上述公式可得,对于训练数据中的每一个样本有:
log ⁡ p θ ( x ( i ) ) = K L ( q ϕ ( z ∣ x ( i ) ) ∣ ∣ p θ ( z ∣ x ( i ) ) ) + L ( θ , ϕ ; x ( i ) ) \log p_{\theta}(\boldsymbol{x}^{(i)}) = KL(q_{\phi}(\boldsymbol{z}|\boldsymbol{x}^{(i)})||p_{\theta}(\boldsymbol{z}|\boldsymbol{x}^{(i)})) + \mathcal{L}(\theta, \phi; \boldsymbol{x}^{(i)}) logpθ(x(i))=KL(qϕ(zx(i))pθ(zx(i)))+L(θ,ϕ;x(i))
其中,
L ( θ , ϕ ; x ( i ) ) = E q ϕ ( z ∣ x ) [ − log ⁡ q ϕ ( z ∣ x ) + log ⁡ p θ ( z , x ) ] \mathcal{L}(\theta, \phi; \boldsymbol{x}^{(i)}) = E_{q_{\phi}(\boldsymbol{z}|\boldsymbol{x})}[ -\log q_{\phi}(\boldsymbol{z}|\boldsymbol{x}) + \log p_{\theta}(\boldsymbol{z},\boldsymbol{x})] L(θ,ϕ;x(i))=Eqϕ(zx)[logqϕ(zx)+logpθ(z,x)]
因为KL是大于等于零的,那么显然有这样的关系: log ⁡ p θ ( x ( i ) ) ≥ L ( θ , ϕ ; x ( i ) ) \log p_{\theta}(\boldsymbol{x}^{(i)}) \ge \mathcal{L}(\theta, \phi; \boldsymbol{x}^{(i)}) logpθ(x(i))L(θ,ϕ;x(i))。所以 L ( θ , ϕ ; x ( i ) ) \mathcal{L}(\theta, \phi; \boldsymbol{x}^{(i)}) L(θ,ϕ;x(i))又叫做变分下界(variational lower bound)。 log ⁡ p θ ( x ( i ) ) \log p_{\theta}(\boldsymbol{x}^{(i)}) logpθ(x(i))相当于样本的对数似然函数,当给定了数据后,其实 log ⁡ p θ ( x ( i ) ) \log p_{\theta}(\boldsymbol{x}^{(i)}) logpθ(x(i))应该是确定的,那么为了使近似分布尽量接近真实分布,那么则应该让变分下界尽可能的大,这样近似分布就会尽可能地接近真实分布。OKAY!现在问题转化成了最大化 L ( θ , ϕ ; x ( i ) ) \mathcal{L}(\theta, \phi; \boldsymbol{x}^{(i)}) L(θ,ϕ;x(i))了。

那么问题又来了:如何最大化变分下界呢?

经过一顿操作后,变分下界可写为:
L ( θ , ϕ ; x ( i ) ) = − K L ( q ϕ ( z ∣ x ( i ) ) ∣ ∣ p θ ( z ) ) + E q ϕ ( z ∣ x ( i ) ) [ log ⁡ p θ ( x ( i ) ∣ z ) ] \mathcal{L}(\theta, \phi; \boldsymbol{x}^{(i)}) = -KL(q_{\phi}(\boldsymbol{z}|\boldsymbol{x}^{(i)})||p_{\theta}(\boldsymbol{z})) + E_{q_{\phi}(\boldsymbol{z}|\boldsymbol{x}^{(i)})}[\log p_{\theta}(\boldsymbol{x}^{(i)}|\boldsymbol{z})] L(θ,ϕ;x(i))=KL(qϕ(zx(i))pθ(z))+Eqϕ(zx(i))[logpθ(x(i)z)]
其中第一项可以看作正则化项(当增加隐变量的数量时,可以防止过拟合),第二项可以看作重构损失。为了最大化变分下界,可以使用梯度下降的方法,但是上式中变分下界难以计算,且近似分布 q ϕ ( z ∣ x ( i ) ) q_{\phi}(\boldsymbol{z}|\boldsymbol{x}^{(i)}) qϕ(zx(i))是未知的。如果直接使用蒙特卡洛方法计算变分下界,将会带来较大方差。论文中针对这个问题使用了重参数化(reparameterization)来表示隐变量: z ^ = g ϕ ( ϵ , x ) \hat{\boldsymbol{z}} = g_{\phi}(\boldsymbol{\epsilon}, \boldsymbol{x}) z^=gϕ(ϵ,x),其中 ϵ \boldsymbol{\epsilon} ϵ服从于某个分布 p ( ϵ ) p(\boldsymbol{\epsilon}) p(ϵ)。那么问题就转化成了选择合适的函数 g g g和分布 p ( ϵ ) p(\boldsymbol{\epsilon}) p(ϵ)。已知一个函数关于其自变量的后验分布的的蒙特卡洛估计为下式:
E q ϕ ( z ∣ x ( i ) ) [ f ( z ) ] = E p ( ϵ ) [ f ( g ϕ ( ϵ , x ( i ) ) ) ] ≃ 1 L ∑ l = 1 L f ( g ϕ ( ϵ ( l ) , x ( i ) ) ) E_{q_{\phi}(\boldsymbol{z}|\boldsymbol{x}^{(i)})}[f(\boldsymbol{z})] = E_{p(\boldsymbol{\epsilon})}[f(g_{\phi}(\boldsymbol{\epsilon}, \boldsymbol{x}^{(i)} ) ) ] \simeq \frac{1}{L} \sum_{l=1}^{L} f(g_{\phi}(\boldsymbol{\epsilon}^{(l)}, \boldsymbol{x}^{(i)} ) ) Eqϕ(zx(i))[f(z)]=Ep(ϵ)[f(gϕ(ϵ,x(i)))]L1l=1Lf(gϕ(ϵ(l),x(i)))
其中 L L L为对每个数据 x ( i ) \boldsymbol{x}^{(i)} x(i)进行蒙特卡洛采样的次数。那么使用蒙特卡洛估计重参数化后的变分下界,形式为:
L ( θ , ϕ ; x ( i ) ) = 1 L ∑ l = 1 L log ⁡ p θ ( z ( i , l ) , x ( i ) ) − log ⁡ q ϕ ( z ( i , l ) ∣ x ( i ) ) \mathcal{L}(\theta, \phi; \boldsymbol{x}^{(i)}) = \frac{1}{L} \sum_{l=1}^{L} \log p_{\theta}(\boldsymbol{z}^{(i, l)},\boldsymbol{x}^{(i)}) - \log q_{\phi}(\boldsymbol{z}^{(i, l)}|\boldsymbol{x}^{(i)}) L(θ,ϕ;x(i))=L1l=1Llogpθ(z(i,l),x(i))logqϕ(z(i,l)x(i))
其中, z ( i , l ) = g ϕ ( ϵ ( i , l ) , x ( i ) ) , ϵ ( l ) ∼ p ( ϵ ) \boldsymbol{z}^{(i, l)}=g_{\phi}(\boldsymbol{\epsilon}{(i, l)}, \boldsymbol{x}{(i)}), \boldsymbol{\epsilon}^{(l)} \sim p(\boldsymbol{\epsilon}) z(i,l)=gϕ(ϵ(i,l),x(i)),ϵ(l)p(ϵ)。之后便可以使用小批量的随机梯度下降算法优化参数 θ , ϕ \theta, \phi θ,ϕ

关于VAE的tutorial可以参考:Tutorial on Variational Autoencoders。未使用重参数化技巧与使用了重参数化技巧对比如下图所示:
在这里插入图片描述

一些网上的参考资料:

3. 方法解决的问题/优势}

  • 从参数化变分下界,使得能够使用随机梯度下降算法优化参数

4. 方法的局限性/未来方向}

  • 时序模型
  • 具有隐变量的监督学习模型,可用于学习复杂的噪声分布

欢迎访问我的个人博客~~~

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Copula变分贝叶斯(Copula Variational Bayes)是一种用于推断高维联合概率分布的方法。Copula是一种函数,可以用来建模多维随机变量之间的依赖关系,而变分贝叶斯是一种概率推断方法。 Copula变分贝叶斯方法的基本思想是通过独立变量的变换,将多维联合概率分布转化为边缘分布和Copula函数的乘积形式。其中,边缘分布用于描述各个变量的边际特征,Copula函数则用于描述变量之间的依赖结构。 在推断过程中,Copula变分贝叶斯方法引入了一个变分分布来近似真实的后验概率分布。通过最小化真实后验概率分布与变分分布之间的差异,可以得到近似后验概率分布,并获取参数的估计值。同时,使用最优化方法来更新变分分布的参数,使其逼近真实后验概率分布。 Copula变分贝叶斯方法的优点之一是可以处理高维问题。传统的分析方法难以处理高维联合概率分布,而Copula变分贝叶斯方法可以通过边际分布和Copula函数的乘积形式有效地对高维联合概率分布进行建模和推断。 此外,Copula变分贝叶斯方法还可以应用于依赖结构分析、风险评估、金融衍生品定价等领域。在这些应用中,我们可以利用Copula函数来研究不同变量之间的依赖关系,从而提供更准确的分析结果和决策依据。 总的来说,Copula变分贝叶斯方法是一种用于推断高维联合概率分布的强大工具,具有广泛的应用前景。它可以通过边际分布和Copula函数的乘积形式对高维概率分布进行建模,并通过变分贝叶斯方法得到概率分布的近似后验,为我们提供了一种有效的分析和决策工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值