Autoencoders
自编码器是前馈神经网络的一种,用于重构训练数据(reconstruction),其有一个描述编码的隐藏层,该编码用于表示输入。该网络由两个部分组成,编码器 h = f ( x ) \boldsymbol{h}=f(\boldsymbol{x}) h=f(x)、解码器 r = g ( h ) \boldsymbol{r}=g(\boldsymbol{h}) r=g(h),其中 h \boldsymbol{h} h 称为 编码(code), 如下图
1、欠完备自编码器(Undercomplete Autoencoders)
通常我们期望训练自编码器执行输入拷贝任务(即 r = g ( f x ) \boldsymbol{r} = g(f{\boldsymbol{x}}) r=g(fx))使得 h \boldsymbol{h} h 获得有用的属性。通过自编码器获取有用特征的一种方法是限制 h \boldsymbol{h} h 的维度小于 x \boldsymbol{x} x 的维度。编码维度小于输入维度的自编码器称为欠完备自编码器。其学习过程可简单描述为最小化 L ( x , g ( f ( x ) ) ) L(\boldsymbol{x}, g(f(\boldsymbol{x}))) L(x,g(f(x)))。
- 当解码器是线性的且 L L L 是 MSE,欠完备自编码器可学习与 PCA 相同的子空间。
- 当编码和解码都为非线性函数时,自编码器可学到更强大的非线性 PCA 推广。但若自编码器过于强大,将不能够从训练数据种提取到突出的信息,极端情况为输出完整表示了输入。
2、正则自编码器(Regularized Autoencoders)
正则自编码器使用一个损失函数来鼓励模型学习除拷贝输入到输出之外的其他特性,如稀疏表示、 表示的小导数、以及对噪声或输入缺失的鲁棒性。即使模型容量大到足以学习一个无意义的恒等函数,非线性且过完备的正则自编码器仍然能够从数据中学到一些关于数据分布的有用信息。
2.1、稀疏自编码器(Sparse Autoencoders)
稀疏自编码器可简单看作具有额外稀疏惩罚项的自编码器,即目标函数为: L ( x , g ( f ( x ) ) ) + Ω ( h ) L(\boldsymbol{x}, g(f(\boldsymbol{x})))+\varOmega(\boldsymbol{h}) L(x,g(f(x)))+Ω(h)其中 h = f ( x ) \boldsymbol{h}=f(\boldsymbol{x}) h=f(x) 即编码器的输出, Ω ( h ) \varOmega(\boldsymbol{h}) Ω(h) 为作用在编码器输出上的稀疏惩罚项。
与正则化项不同,正则化项直接作用于权重向量。而稀疏自编码器的惩罚项作用于编码层的输出。
我们可以将整个稀疏自编码器看作是具有隐变量(latent variables)的生成模型的近似最大似然训练。假设模型有可见变量 x \boldsymbol{x} x 和隐变量 h \boldsymbol{h} h,且具有明确的联合分布 p