乐读窝

深度学习

乐读窝 > 文学理论 > 深度学习

14.7 收缩自编码器

书籍名:《深度学习》    作者:伊恩.古德费洛



收缩自编码器(Rifai  et  al.,2011a,b)在编码h=f(x)的基础上添加了显式的正则项,鼓励f的导数尽可能小:

惩罚项Ω(h)为平方Frobenius范数(元素平方之和),作用于与编码器的函数相关偏导数的的Jacobian矩阵。

去噪自编码器和收缩自编码器之间存在一定联系:Alain  and  Bengio(2013)指出在小高斯噪声的限制下,当重构函数将x映射到r=g(f(x))时,去噪重构误差与收缩惩罚项是等价的。换句话说,去噪自编码器能抵抗小且有限的输入扰动,而收缩自编码器使特征提取函数能抵抗极小的输入扰动。

分类任务中,基于Jacobian的收缩惩罚预训练特征函数f(x),将收缩惩罚应用在f(x)而不是g(f(x))可以产生最好的分类精度。如第14.5.1节所讨论的,应用于f(x)的收缩惩罚与得分匹配也有紧密的联系。

收缩(contractive)源于CAE弯曲空间的方式。具体来说,由于CAE训练为抵抗输入扰动,鼓励将输入点邻域映射到输出点处更小的邻域。我们能认为这是将输入的邻域收缩到更小的输出邻域。

说得更清楚一点,CAE只在局部收缩——一个训练样本x的所有扰动都映射到f(x)的附近。全局来看,两个不同的点x和x'会分别被映射到远离原点的两个点f(x)和f(x')。f扩展到数据流形的中间或远处是合理的(见图14.7中小例子的情况)。当Ω(h)惩罚应用于sigmoid单元时,收缩Jacobian的简单方式是令sigmoid趋向饱和的0或1。这鼓励CAE使用sigmoid的极值编码输入点,或许可以解释为二进制编码。它也保证了CAE可以穿过大部分sigmoid隐藏单元能张成的超立方体,进而扩散其编码值。

我们可以认为点x处的Jacobian矩阵J能将非线性编码器近似为线性算子。这允许我们更形式地使用“收缩”这个词。在线性理论中,当Jx的范数对于所有单位x都小于等于1时,J被称为收缩的。换句话说,如果J收缩了单位球,它就是收缩的。我们可以认为CAE为鼓励每个局部线性算子具有收缩性,而在每个训练数据点处将Frobenius范数作为f(x)的局部线性近似的惩罚。

如第14.6节中描述,正则自编码器基于两种相反的推动力学习流形。在CAE的情况下,这两种推动力是重构误差和收缩惩罚Ω(h)。单独的重构误差鼓励CAE学习一个恒等函数。单独的收缩惩罚将鼓励CAE学习关于x是恒定的特征。这两种推动力的折衷产生导数大多是微小的自编码器。只有少数隐藏单元,对应于一小部分输入数据的方向,可能有显著的导数。

CAE的目标是学习数据的流形结构。使Jx很大的方向x,会快速改变h,因此很可能是近似流形切平面的方向。Rifai  et  al.(2011a,b)的实验显示训练CAE会导致J中大部分奇异值(幅值)比1小,因此是收缩的。然而,有些奇异值仍然比1大,因为重构误差的惩罚鼓励CAE对最大局部变化的方向进行编码。对应于最大奇异值的方向被解释为收缩自编码器学到的切方向。理想情况下,这些切方向应对应于数据的真实变化。比如,一个应用于图像的CAE应该能学到显示图像改变的切向量,就像图14.6中物体渐渐改变状态。如图14.10所示,实验获得的奇异向量的可视化似乎真的对应于输入图像有意义的变换。

图14.10 通过局部PCA和收缩自编码器估计的流形切向量的图示。流形的位置由来自CIFAR-10数据集中狗的输入图像定义。切向量通过输入到代码映射的Jacobian矩阵的前导奇异向量估计。虽然局部PCA和CAE都可以捕获局部切方向,但CAE能够从有限训练数据形成更准确的估计,因为它利用了不同位置的参数共享(共享激活的隐藏单元子集)。CAE切方向通常对应于物体的移动或改变部分(例如头或腿)。经Rifai  et  al.(2011c)许可转载此图

收缩自编码器正则化准则的一个实际问题是,尽管它在单一隐藏层的自编码器情况下是容易计算的,但在更深的自编码器情况下会变得难以计算。根据Rifai  et  al.(2011a)的策略,分别训练一系列单层的自编码器,并且每个被训练为重构前一个自编码器的隐藏层。这些自编码器的组合就组成了一个深度自编码器。因为每个层分别训练成局部收缩,深度自编码器自然也是收缩的。这个结果与联合训练深度模型完整架构(带有关于Jacobian的惩罚项)获得的结果是不同的,但它抓住了许多理想的定性特征。

另一个实际问题是,如果我们不对解码器强加一些约束,收缩惩罚可能导致无用的结果。例如,编码器将输入乘一个小常数,解码器将编码除以一个小常数。随着趋向于0,编码器会使收缩惩罚项Ω(h)趋向于0而学不到任何关于分布的信息。同时,解码器保持完美的重构。Rifai  et  al.(2011a)通过绑定f和g的权重来防止这种情况。f和g都是由线性仿射变换后进行逐元素非线性变换的标准神经网络层组成,因此将g的权重矩阵设成f权重矩阵的转置是很直观的。