变分自编码器VAE详解

本文详细介绍了变分自编码器(VAE)的工作流程,包括其生成模型和流动逻辑。VAE通过引入隐层变量Z,使用编码器和解码器来近似数据的真实分布,解决了高维数据生成的挑战。文章探讨了VAE的优化目标——变分下限,以及如何通过最大化变分下限来训练模型。VAE在概率图模型和深度学习的结合上做出了重要贡献。
摘要由CSDN通过智能技术生成

emmmmm…先来一首BGM吧。

VAE的讲解

网络的逻辑输入和输出 这是我为了更加清晰的介绍流程图而设定的(不知专业的词哈)

   首先,对于一批数据来说,生成模型的目标就是学习得到一个分布 P ( X ) P(X) P(X),使得该分布和数据的真是分布 P g t ( X ) P_{gt}(X) Pgt(X)很接近,这样一来,我们就可以根据得到的 P ( X ) P(X) P(X)来生成该数据集中到数据,也就是达到了生成数据的目的,这就是生成模型的最终目标。但是,我们无法直接获得这样的 P ( X ) P(X) P(X),而且,随着 X X X的维度的变大,很多的方法例如蒙特卡洛近似就无法使用。既然是概率图的形式,我们可以采用如下的模型来生成 X X X–通过引进一个隐层变量,这样 P ( X ) = ∫ P ( X ∣ Z ) P ( Z ) d z P(X)=\int P(X|Z)P(Z)dz P(X)=P(XZ)P(Z)dz,而且我们假设 p ( z ) ∼ N ( 0 , 1 ) p(z) \sim N(0,1) p(z)N(0,1) P ( X ∣ Z ; θ ) = N ( X ∣ f ( Z ; θ ) , σ 2 ∗ I ) P(X|Z;\theta)=N(X|f(Z;\theta),\sigma^2*I) P(XZ;θ)=N(Xf(Z;θ),σ2I)。其中 f ( Z ; θ ) f(Z;\theta) f(Z;θ)是网络的输出, P ( X ∣ Z ) P(X|Z) P(XZ)是网络拟合的函数。这样我们就可以用过采样得到 Z Z Z,输入网络得到最后的 P ( X ) P(X) P(X)(这就是终极目标),再通过近似或者采样等操作生成 X X X。但是这个网络太难训练了,因此直接从一个正太分布中采样 Z Z Z输入到网络中,其对于网络拟合的 P ( X ) P(X) P(X)的贡献可能为0!这样,如果 X X X的维度也很高的话,网络学习的难度就更大了,因此这样的方法不符合实际。

  插播一则广告:网络的输出网络的拟合函数是不一样的,而且网络最终的逻辑输出也不一样!例如我们训练一个网络来拟合高斯分布,此时,你网络的输出可能是 ( μ , σ ) (\mu,\sigma) (μ,σ),但是网络最终拟合的是 P ( X ∣ Z ) = N ( μ , σ ) P(X|Z)=N(\mu,\sigma) P(XZ)=N(μ,σ),但是此时如果 Z Z Z也是一个随机变量的话,那么网络最终符合的逻辑输出是 P ( X ∣ Z ) P ( Z ) P(X|Z)P(Z) P(XZ)P(Z)
Snipaste_2019-06-14_14-41-17.png

  那么,怎么改进上面的生成模型呢,还是使用隐层变量的话,这时候,我们要保证采样得到的 Z Z Z是每个数据 X X X专属的变量,它是有利于构建P(X)的,因此我们决定从P(Z|X)中采样,这样一来, Z Z Z是依赖于输出的 X X X的,它对于重构出 X X X有很高的置信度。那么此时的P(Z|X)会是什么分布呢?当然是高分布 N ( 0 , I ) N(0,I) N(0,I)!这样,encoder的输出 ( μ , σ ) (\mu,\sigma) (μ,σ)就可以采用KL散度来训练。注意此时和之前的区别!!此时采样后输入到网络中的 Z Z Z虽然是 P ( Z ) ∼ N ( 0 , I ) P(Z)\sim N(0,I) P(Z)N(0,I),但是这是网络的拟合输出,网络的逻辑输出是 P ( Z ∣ X ) P(Z|X) P(ZX),也就是此时的Z是采样于 P ( Z ∣ X ) ∼ N ( 0 , I ) P(Z|X)\sim N(0,I) P(ZX)N(0,I),这是有区别的!逻辑输入就不一样了。这样,网络就变成了下面的例子:
Snipaste_2019-06-14_16-39-04.png

  VAE的关键是在隐层的处理,引进了 Q ( Z ∣ X ) Q(Z|X) Q(ZX)来近似 P ( Z ∣ X ) P(Z|X) P(ZX),这样就可以通过采样 Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值