自编码器的Auto是自己训练自己的意思,有两部分Encoder和Decoder组成。输出不在是类别而是与输入层有相同数量的神经元。其最大的特点就是中间隐藏层神经元个数非常少,起到的作用就像瓶口一样,把输入进行过滤,特征提取,有点像高度压缩,用很少的变量就能表示输入数据。
AE不同于传统的压缩算法,可以认为是一种全新的图像压缩或者表示方式。比如,谷歌就用它来减少图像下载的流量,先在云端把这些图像进行Encoder,然后只传送特征,到了手机上再通过Decoder进行重建,这样就极大的节省了传送的流量。
生活中常见的各种数据,无论文本、语音还是图像,都存在着大量的冗余信息。理论上来说,他们都可以用极少的变量来表示,实现这种思想的方法就是VAE模型。
Variation指的是分布,意思是不再把输入映射到固定的变量上,而是映射到一个分布上,比如混合高斯GMM上,网络模型中的bottle neck被分解成了两个向量。
VAE的损失函数比较复杂,具体包含两个部分,第一块是重建损失,和自编码器是一样的,另一块是KL散度,用来描述学习的分布和高斯分布之间的相似性。
VAE近两年非常火,除了用于图像压缩,图像降噪,也被应用于图像分割,比如自动驾驶中就常用来把道路场景进行分割,分成不同的感兴趣区域,还可以用于环境表示,例如Deep Mind 团队就用它来学习3D模拟世界,用Latent Model 来表示潜在空间,这些学习到的特征很多时候是可以解释的,有的变量改变了地板的颜色,有的变量改变了前进的方向。还有一个趋势就是与强化学习结合,用来进行环境的潜在空间表示,从高维的观测数据中有效提取特征,通过压缩大量信息来训练能够理解世界的agent
【变分自编码器VAE】可视化讲明白
[论文简析]VAE: Auto-encoding Variational Bayes[1312.6114]