VAE变分自编码器

AE与VAE的关系AE(自动编码器)与VAE(变分自动编码器)的区别和联系?_ae和vae的区别-CSDN博客


1)关于VAE

那么什么是VAE呢?简单来讲,一个可以和GAN相媲美的生成网络。我们可以输入一个低维空间的Z,映射到高维空间的真实数据。比如,生成不同样的数字,人脸,卡通头像等等。


上图就具体展示了VAE的作用,作图是经过一轮训练之后的输出结果,中间的图是经过9轮训练之后的输出结果,而右图就是我们真实地数据。(这里我猜测是将图片先编码,再解码这个全过程,而不是仅仅通过一个随机量去生成)。

2)VAE与GAN之间的差异性

既然VAE与GAN都是属于最近很火的生成网络序列,那么他们之间有什么不同呢?

假设,给定一系列猫的照片,我希望你能够对应我随机输入的一个n维向量,生成一张新的猫的照片,你需要怎么去做?对于GAN就是典型的深度学习时代的逻辑,你不清楚这个n维向量与猫的图片之间的关系,没关系,我直接拟合出来猫的图片对于n维向量的分布,通过对抗学习的方式获得较好的模型效果,这个方法虽然很暴力,但是却是有效的。

VAE则不同,他通过说我希望生成一张新的猫脸,那么这个n维向量代表的就是n个决定最终猫脸模样的隐形因素。对于每个因素,都对应产生一种分布,从这些分布关系中进行采样,那么我就可以通过一个深度网络恢复出最终的猫脸。VAE相比较于GAN它的效果往往会略微模糊一点,但是也不失为一种良好的解决方案。并且相对于GAN的暴力求解,VAE的建模思路无疑要复杂的多,它更能体现理科思维的艺术感。

3)VAE初识

想象这样一个网络,输入是一组全部为一的向量,目标是一张人脸,经过好多好多轮的训练。我们只要输入这个全部唯一的向量就可以得到这张你熟悉的脸。其实这是因为在训练的过程中,我们通过不断地训练,网络已经将这张人脸图片的参数保存起来了。

这个工作其实已经可以看出他的意义所在了,通过一个网络,将一个高维空间的人脸映射为低维空间的一个向量。那么如果我将这个向量定义为四维,采用one-hot的表达方式表达四张不同的脸,那么这个网络就可以表达四个脸,emm,你输入不同的数据,他就会输出不同的脸来。

你也许会说,那这个几维向量又代表什么呢?如果每增加一个脸就要相应增加空间的维度,那么这个过程也就太不科学了吧。嗯,科学的是,以上只是我随手为了方便大家理解举的例子,其实,在实际应用中,这个维度往往代表的是决定最后成型的各个因素,大家往往称之为隐形因素,也就是在大量的博客推导中我们所看到的Z。在下面这个图中,我们通过六个因素来描述最终的人脸形状,而这些因素不同的值则代表了不同的特性。

是不是有朋友会觉得,那你这个VAE到底有什么用呢,就为了把大量的数据存储到网络结构中去呀,当然不能是这么简单的一个事。想象一下,在一个末日大片中,我们需要去搞出一个许多机器人占领世界的场面,但是我们的特效师一张张去画,这无疑会是一个令人头疼的工作,利用VAE,只需要使用有限的数据输入,我们就可以通过隐形参数的调节,获得几乎无限的数量。

有人也许会问了,你为什么可以生成从来没有出现过的图片。这里就要介绍一下VAE中的编码器对于每个隐性参数他不会去只生成固定的一个数,而是会产生一个置信分布区间,这是一种连续的表达方式,通过采样,我们就可以获得许多从来没有见过的数据了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马鹏森

太谢谢了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值