ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

深度学习《再探AE和VAE的区别》

2020-12-08 19:34:09  阅读:1007  来源: 互联网

标签:编码器 code AE VAE 深度 数据 正态分布


最近学习了VAEGAN,突然对VAE和AE的概念和理解上变得模糊了,于是赶紧搜索资料,重新理解一番。

一:AE
在这里插入图片描述

输入的图片数据X经过encoder后会得到一个比较确切的latent code Z,这个Z通过decoder重建出图像X’,我们的损失函数就是X和X’的重建损失值。
AE特点就是:
自动编码器是数据相关的(data-specific 或 data-dependent),这意味着自动编码器只能压缩那些与训练数据类似的数据,反过也是一类数据对应一种编码器,无法拓展一种编码器去应用于另一类数据。
自动编码器是有损的,意思是解压缩的输出与原来的输入相比是退化的,MP3,JPEG等压缩算法也是如此。这与无损压缩算法不同。

正是由于这些特点,目前自编码器的应用主要有两个方面,第一是数据去噪,第二是为进行可视化而降维。配合适当的维度和稀疏约束,自编码器可以学习到比PCA等技术更有意思的数据投影。

二:VAE
相比于自编码器,VAE更倾向于数据生成。只要训练好了decoder,我们就可以从某一个标准正态分布(一个区间)生成数据作为解码器decoder的输入,来生成类似的、但是但不完全相同于训练数据的新数据,也许是我们从来没见过的数据,作用类似GAN。

在这里插入图片描述

图中的向量e服从于正态分布N(μ_noise,σ_noise),它的作用就是在正态分布N(m,σ)中进行随机采样。

m,σ都是从数据X中产生的,也就是数据X会产生一个正太分布,这个正太分布的所有采样值,在理论上都是可以重建出X’,根据采样值的不同,重建出的X’是类似但不完全相同的。因此可以产生出一些新的数据,所以VAE更具有创造性,更偏向于数据生成。

假如我们有M个数据X,Latent code是N维度的,经过AE后训练的好的话,也就是在N为空间上产生了M个点,所以我们只能把这些数据作为压缩降维和取噪,数据集可以通过AE网络参数保存下来,以前我们需要保存M个数据,现在只需要保存对应的latent code和decoder即可。

但是如果是VAE的话,每个数据都会产生N个维度的正态分布,最后就会有M个N维度的正态分布,这样一来就类似于GMM(高斯混合模型),这样的铺的范围就大多了啊,我们可以在GMM上随意采样一个点,都可以生成一些高质量的数据出来,所以VAE更适合于数据生成。

三:总结
AE试图找到数据X 到latent code的单值映射,用于压缩降维和去噪。
VAE试图找到数据X到某个正太分布的映射,偏向于用于数据的生成。

标签:编码器,code,AE,VAE,深度,数据,正态分布
来源: https://blog.csdn.net/qq_29367075/article/details/110879937

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有