码迷,mamicode.com
首页 > 其他好文 > 详细

变分自编码器:原来是这么一回事

时间:2018-04-03 22:16:22      阅读:877      评论:0      收藏:0      [点我收藏+]

标签:image   nbsp   ansi   auto   word   表达   variant   https   相似度   

链接:https://kexue.fm/archives/5253

分布变换

通常我们会拿VAEGAN比较,的确,它们两个的目标基本是一致的——希望构建一个从隐变量Z生成目标数据X的模型,但是实现上有所不同。更准确地讲,它们是假设了Z服从某些常见的分布(比如正态分布或均匀分布),然后希望训练一个模型X=g(Z),这个模型能够将原来的概率分布映射到训练集的概率分布,也就是说,它们的目的都是进行分布之间的变换。

技术分享图片

生成模型的难题就是判断生成分布与真实分布的相似度,因为我们只知道两者的采样结果,不知道它们的分布表达式

 

那现在假设Z服从标准的正态分布,那么我就可以从中采样得到若干个Z1,Z2,,Zn,然后对它做变换得到X1=g(Z1),X2=g(Z2),Xn=g(Zn)g有读者说不是有KL散度吗?当然不行,因为KL散度是根据两个概率分布的表达式来算它们的相似度的,然而目前我们并不知道它们的概率分布的表达式,我们只有一批从构造的分布采样而来的数据{X1,X2,Xn},还有一批从真实的分布采样而来的数据{X1,X2,,Xn}(也就是我们希望生成的训练集)。我们只有样本本身,没有分布表达式,当然也就没有方法算KL散度

虽然遇到困难,但还是要想办法解决的。GAN的思路很直接粗犷:既然没有合适的度量,那我干脆把这个度量也用神经网络训练出来吧就这样,WGAN就诞生了,详细过程请参考《互怼的艺术:从零直达WGAN-GP》。而VAE则使用了一个精致迂回的技巧。

 

VAE慢谈 

这一部分我们先回顾一般教程是怎么介绍VAE的,然后再探究有什么问题,接着就自然地发现了VAE真正的面目。

经典回顾 

首先我们有一批数据样本{X1,X2,,Xn},其整体用X来描述,我们本想根据{X1,X2,,Xn}得到X的分布p(X)如果能得到的话,那我直接根据p(X)来采样,就可以得到所有可能的X了(包括{X1,

X2,,Xn}外的),这是一个终极理想的生成模型了。当然,这个理想很难实现,于是我们将分布改一改

技术分享图片

 这里我们就不区分求和还是求积分了,意思对了就行。此时p(X|Z)就描述了一个由Z来生成X的模型,而我们假设Z服从标准正态分布,也就是p(Z)=N(0,I)如果这个理想能实现,那么我们就可以先从标准正态分布中采样一个Z,然后根据Z来算一个X,也是一个很棒的生成模型。接下来就是结合自编码器来实现重构,保证有效信息没有丢失,再加上一系列的推导,最后把模型实现。框架的示意图如下:

技术分享图片

 

变分自编码器:原来是这么一回事

标签:image   nbsp   ansi   auto   word   表达   variant   https   相似度   

原文地址:https://www.cnblogs.com/skykill/p/8710827.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!