Auto-encoder 属于Unsupervised Learning问题 经常用于数据集预处理 进行数据降维或者特征的提取
某些数据集使用时需要变为计算机能够更好处理的形式,需要先进行预处理,我们希望预处理后的数据能够最大保留原数据集信息,并且使最后的编码信息能够最大还原原数据,过程包含encoder和decode
自编码器其损失函数则定义为重建输出与原始输入之间的均方差/交叉熵,作为重建损失函数来惩罚网络生成与原始输入不同的输出
标准自编码器能学习生成紧凑的数据表达并重建输入数据,但应用有限,因为其转换后的数据表达并不是连续的,有数据空白,decode在解码时会造成非真实的输出噪声,因为解码器不知道如何处理空白处区域。
Variational auto-encoder VAE变分自编码器
其编码后的空间内为连续分布,在解码时方便随机采样和插值。
编码器的输出同自编码器有了区别,变为了输出两个n维矢量 均值μ和标准差σ,然后通过对均值和方差采样得到新的随机变量,n次采样的结果作为编码器输出,送入后续decode
训练好的模型即使新输入的数据在训练数据集中找不到,输出依然合理
这样训练得到的解码器不仅可以解码原始数据形成的编码,而且可以解码在范围发生了变化的编码,因为训练时的解码器就是在原始数据编码的基础上发生了一定规律变化的编码基础上训练的。通过采样得到的编码可以是这一区域里的任意位置,解码器学习到的不仅是单个点在隐含空间中的表示,而是整个邻域内点的编码表示。