常见生成模型 -- 自动编码器 Auto-Encoder

1、Auto-Encoder

autoencoder是一种无监督的学习算法,主要用于数据的降维或者特征的抽取。

我们希望编码后的数据能够较好的保留原始数据的主要特征。那么,如何衡量编码后的数据是否保留了较完整的信息呢?答案是:如果编码后的数据能够较为容易地通过解码恢复成原始数据,我们则认为较好的保留了数据信息。自动编码器就必须捕捉可以代表输入数据的最重要的因素,就像PCA那样,找到可以代表原信息的主要成分。

例如下图所示,将手写数字图片进行编码,编码后生成的 , , , , ,  较完整的保留了原始图像的典型特征,因此可较容易地通过解码恢复出原始图像。

常见生成模型 -- 自动编码器 Auto-Encoder_第1张图片

autoencoder通过神经网络进行预训练,其目标是让输入值等于输出值。

该过程可以看作是对输入数据的压缩编码,将高维的原始数据用低维的向量表示,使压缩后的低维向量能保留输入数据的典型特征,从而能够较为方便的恢复原始数据。

需要注意的是:这里增加了一个约束条件,即在对数据进行编码和解码时,使用的是同一个参数矩阵。该约束可看作是一种regularization,用于减少参数的个数,控制模型的复杂度。

 

2、稀疏自动编码器Sparse AutoEncoder

从自动编码器获得有用特征的一种方法是限制h的维度比x小,这样将强制自动编码器捕捉训练数据中。

通过在AutoEncoder的基础上加上L1正则化(L1主要用来约束每一层中的结点中大部分都为0,只有少数不为0),就得到了稀疏自动编码器。

常见生成模型 -- 自动编码器 Auto-Encoder_第2张图片

如上图所示,稀疏AE就是限制每次得到的表达code尽量稀疏。这往往可以得到更有效的表达。

常见生成模型 -- 自动编码器 Auto-Encoder_第3张图片

 

 

你可能感兴趣的:(深度学习,自动编码器,autoencoder)