必威体育Betway必威体育官网
当前位置:首页 > IT技术

VAE全面理解(上)

时间:2019-06-04 20:41:04来源:IT技术作者:seo实验室小编阅读:73次「手机版」
 

vae

忏悔

前段时间学习了《Auto encoding variational bayes》这篇文章,处于种种原因,还写了一篇博客,https://blog.csdn.net/qq_31456593/article/details/77743840,近日想要自己再重新复习一下,发现当时的理解是相当的不到位,叙述也是模棱两可的,花了很大力气,又重新看了两天,有了许多新的理解,我决定把它写下来。当然认知水平的高低不可能一蹴而就,我希望下次我继续读这个内容的时候又会有新的理解。

1)关于VAE还是AEV

在上一篇博客中,我主要学习的是《Auto encoding variational bayes》这篇文章,所以我自作主张的讲它缩写为AEV。这几天,在大量阅读相关文献博客期间,发现,卧槽,人家叫VAE,全称variational auto encoding。经验主义害死人,看文献细看几眼总归是不会有错的。

言归正传,那么什么是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中的编码器,对于每个隐性参数他不会去只生成固定的一个数,而是会产生一个置信值得分布区间,这是一种连续的表达方式,通过采样,我们就可以获得许多从来没有见过的数据了。

这一篇先到这里,更多内容请阅读《VAE全面理解(下)》

参考:

1、VAE(Variational Autoencoder)的原理

2、https://www.jeremyjordan.me/variational-autoencoders/

3、读论文《Auto-Encoding Variational Bayes》

4、变分自编码器VAE:原来是这么一回事 | 附开源代码

相关阅读

对Java中反射机制的理解

简单的说,反射机制就是在程序的运行过程中被允许对程序本身进行操作,比如自我检查,进行装载,还可以获取类本身,类的所有成员变量和方法

Java中接口作用深入理解

关于Java中接口作用的深入理解。这是个很容易遇到的问题吧。 / 2019/3/1 补充 : 接口的存在也是为了弥补类无法多继承的缺点,假设

十五款真无线蓝牙耳机体验报告,全面分析真无线技术优缺

真无线蓝牙耳机,简称TWS耳机,正在以一发不可收拾之势席卷到整个数码终端市场。作为首批开始使用TWS耳机吃螃蟹的,小编到现在一共体验

初学者关于贝叶斯纳什均衡各类符号的一点理解

转载于:https://www.cnblogs.com/xuanlvshu/p/10349192.html

textContent和innerText以及innerHTML的区别,结合demo

先看看下面这个demo,不言自明: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</titl

分享到:

栏目导航

推荐阅读

热门阅读