一、Auto-Encoder (AE)
1)Auto-encoder概念
自编码器要做的事:将高维的信息通过encoder压缩到一个低维的code内,然后再使用decoder对其进行重建。“自”不是自动,而是自己训练[1],即无监督学习。
PCA要做的事其实与AE一样,只是没有神经网络。对于一个输入x,PCA通过一个转换矩阵W将x转换为c,因为是线性的过程,就可以再通过WT将其转换为x^,目的是使x和x^尽可能一致。而AE要做的就是,在这样一个过程中,将PCA的转换矩阵W,WT换成encoder和decoder。
在这样一个过程中,将input layer, bottleneck, output layer 换做深度神经网络,就变成了deep auto-encoder,最开始由hinton 在2006年提出,这一替换的明显好处是,引入了神经网络强大的拟合能力,使得编码(Code)的维度能够比原始图像(X)的维度低非常多。
在一个手写数字图像的生成模型中,这样的一个简单的Deep Auto-Encoder模型能够把一个784维的向量(28*28图像)压缩到只有30维,并且解码回的图像具备清楚的辨认度(如下图)[2]。
2)Auto-encoder的应用
Auto-encoder可以用于解决小样本学习,预训练 DNN:当labeled data比较少的时候,对前几层网络进行合适的initialization是有必要的(目的就是找到比较好的特征),这是可以先用 unlabelled data 使用AE技术分别train并fix W1,W2,W3,最后只需要使用label data训练W4即可。如果是分类任务,就是先使用AE技术以无监督学习的方式预训练好编码器部分,目的是使得提取的初始特征比较好,然后在最后加上一个检测头(全连接)来预测类别,使用少量标签数据以有监督的方式去微调即可。
但是以上这种思路是较早之前的做法,近些年来在逐渐开源了一些大规模预训练模型,上述的效果不如直接在这些模型(比如VGG)上去做微调。
在判别模型,比如说分类任务,最重要的是找特征,而且是找到有判别的特征。
Auto-encoder还可以用来降噪:首先加噪,然后进行AE,目的是使网络不仅可以重构,还可以过滤其中的noise。这种方法叫做DAE,过程如下。
3)Auto-encoder for CNN
在CNN中应用auto-encoder,主要是先使用convolution和pooling降维,然后再使用deconvolution和unpooling升维。deconvolution叫做逆卷积,也是一个卷积操作,其对feature map恢复的原理核心就是(k-1-p)扩展(padding),详细可以阅读:Deconvolution(逆卷积)。unpooling与upsampling还是有点区别,unpooling是在CNN中常用的来表示max pooling的逆操作,简单来说,记住做max pooling的时候的最大item的位置,比如一个3x3的矩阵,max pooling的size为2x2,stride为1,反卷积记住其位置,unpooling的操作就是让其余位置至为0就行。
参考:
[1] https://www.bilibili.com/video/av15889450/?p=33
[2] http://www.gwylab.com/note-vae.html
二、Variational Auto-Encoder (VAE)
主成分分析(PCA)和自编码器(AutoEncoders, AE)是无监督学习中的两种代表性方法。两者都是非概率方法。
1)为什么会有VAE?
假设原始数据为一张人脸图像F,它有256*256个维度。AE的编码器将F编码为N维的隐变量z,z的每一维对应一个特征(比如表情、肤色、发型等),每一维上的值表示样本F在这种特征上的取值。也就是说,AE是将样本编码为N个固定的特征值,用单个特征值描述输入图像F在每个潜在特征上的表现,每个特征值在对应的特征空间下是一个离散值。
因为神经网络只能去做学习过的事情,所以AE的解码器,只能基于隐变量z中每个潜在特征(每一维)出现过的特征值去恢复图像。比如,AE只学习过"smile"的特征值为-9的恢复过程(decode),那碰到"smile"的特征值为-8时,AE的解码器是没有能力去恢复的。也就是说,在每一个特征空间中,对于训练过程中没有涵盖过的地方,AE的解码器没办法去decode。

本文介绍了自编码器(Auto-Encoder,AE)的基本概念和应用,包括如何通过编码器和解码器进行信息压缩与重建,并讨论了深度自编码器在图像降噪和小样本学习中的作用。接着,深入探讨了变分自编码器(VariationalAuto-Encoder,VAE)的生成能力,解释了为什么VAE能生成新样本,以及其背后的数学原理,包括全概率公式、变分推理和KL散度损失。此外,还提到了条件VAE(CVAE)和VQ-VAE的相关内容。
最低0.47元/天 解锁文章
3764

被折叠的 条评论
为什么被折叠?



