前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >理解变分自编码器VAE

理解变分自编码器VAE

作者头像
水球喵子
发布2020-03-20 16:16:35
8320
发布2020-03-20 16:16:35
举报
文章被收录于专栏:计算机视觉计算机视觉

VAE的理解 转述记录

参考文章 https://arxiv.org/pdf/1312.6114.pdf https://dfdazac.github.io/01-vae.html https://spaces.ac.cn/tag/vae/ https://cloud.tencent.com/developer/article/1096650

自编码模型,输入是数据X,经过网络生成中间变量,然后通过中间表示,再去生成数据X’,最终是使用重构Loss,让输入数据X与生成数据X’之间差距变小。

VAE将自编码模型做了改进,输入数据是X,然后求X下的一个高斯分布,如何求呢,使用了两个神经网络,分别预测了X下均值μ和方差σ,这样就形成了均值μ,方差σ一个高斯分布,然后正常想法是,将这个高斯分布进行随机取样作为中间表示(隐向量),【相比于自编码器,在高斯分布中随机取值呢能够使得输入相同数据,得到的中间表示形式是在一个高斯范围内的,这使得可以操纵中间表示(隐向量),通过改变一个样本的编码而产生一定程度的局部变化,导致在局部尺度上潜在空间的平滑,即产生相似的样本。】然后再去生成数据X’,但是随机取样这个行为,在网络里是不可导的,所以采用了重采样技术,通过添加服从0~1分布的高斯噪声ε,利用μ+σε来代替随机采样的行为,也就是,相当于ε是随机参数,这样网络就可以优化μ和σ这两个参数,μ+σε成为一种中间表示,(sampling from Z~N(μ, σ^2) is the same as sampling from μ + σX, X~(0,1))再去生成对应于该分布下的输出数据X’。整个网络的损失,一部分是跟自编码器一样的重构损失,目的是为了保证X和X’的一致性。另一方面是希望预测的高斯分布与标准正太分布趋近,所以求其KL损失。

KL损失公式

原始的自编码模型,会使得两个类别之间的推理表示不能生成合理结果,也可以说没有泛化性,例如:已有0和8这两个数字的编码,我们对这两个编码进行加权求值得到一个中间表示,放到解码器中,自编码模型没有办法预测合理结果。这是因为在原始自编码器中,不同数字的中间表示(隐向量)之间完全没有重叠,因此无法生成中间结果 。如下如的1和7的编码聚类结果之间没有重叠。

VAE模型通过使用让中间表示从X预测的高斯分布分布中采样,从而来增加中间表示的噪声(采样过程中获得的噪声),同时这增加了不同类别之间的重叠度,使得网络能够学习到几个不同类别之间生成图像的变化。

可以自己思考下下面问题

为什么要求高斯分布?

为什么要求分布要趋近正态分布?

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档