本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~
Contractive Autoencoder(CAE)是Bengio等人在2011年提出的一种新的Autoencoder, 在传统的Autoencoder的重构误差上加上了新的惩罚项, 亦即编码器激活函数对于输入的雅克比矩阵(Jacobian matrix)的Frobenius Norm. CAE的核心思想是尽量捕获训练样本中观察到的variance, 而忽略其他的variance.
鲁棒特征
作者在围绕什么才是衡量特征好坏的标准上做了大量讨论(如同在DAE中一样).
- sDAE(stacked DAE)和sparse coding的观点是尽量捕获每个训练样本的信息, 如果样本服从某个潜在的生成式分布的话.
- RBM的观点是学到的特征可以很好地刻画输入的分布, 这可以通过直接优化一个生成式模型(比如RBM)的似然得到.
CAE的出发点是, 学到的特征应该对围绕训练样本的输入的细小变动有鲁棒性.
为了提高学到的特征的鲁棒性, CAE以编码器的激活函数对于输入的雅克比矩阵的Frobenius Norm为惩罚项:
$|J_f(x)|_F^2 = sum_{ij}(frac{partial h_j(x)}{partial x_i})^2$
惩罚$|J_f|_F^2$项使得到特征空间的映射在训练样本的邻域是紧缩的(contractive).
Contractive Auto-encoder
CAE的思想就是以$|J_f|_F^2$项作为autoencoder的正则化项, 亦即CAE的损失函数为
$mathcal{J}_{CAE}( heta)=sum_{xin D_n}(L(x, g(f(x))) + lambda|J_f(x)|_F^2)$
CAE与其他Autoencoder变种的关系:
- 与AE + weight decay的关系: 雅克比矩阵的Frobenius Norm的二次根等同于带$L_2$正则化的线性编码器
- 与sparse autoencoder的关系: sparse autoencoder的目的是使得每个样本的大部分中间特征为0, 对于sigmoid函数来说, 这对应于其域的左半部分, 这意味着其导数很小, 亦即其雅克比矩阵的对应部分的值很小, 所以二者之间很相似.
- 与DAE之间的关系: CAE显式的鼓励中间特征的鲁棒性, 而DAE鼓励其重构$(gcirc f)(x)$的鲁棒性. 因为对于分类来说, 我们只需要用到编码器以便得到中间特征, 学到的中间特征的鲁棒性要比重构的鲁棒性重要, 所以CAE比DAE更容易学到鲁棒的特征.
CAE的理论解释
Hugo Larochelle做过一个关于CAE的非常精辟的理论解释:
可以把CAE的损失函数的两个组成部分看成是CAE的两个优化目标:
第一部分(亦即重构误差)使得CAE会尽力去捕获输入图像的好多信息, 第二部分(亦即雅克比矩阵的Frobenius Norm)可以看做是CAE在丢弃所有的信息(因为最小化雅克比矩阵的Frobenius Norm的后果就是梯度会接近于0, 这样的话, 如果改变输入数据, 隐层单元的值不会改变, 亦即如果在训练样本上加一些噪音, 隐层节点的值不变). 所以CAE的目的就是只捕获那些在训练数据中出现的variance, 而对于其他的variance不敏感[2](论文原文为The proposed criterion[Frobenius Norm of Jacobian] is trying to make the features invariant in all directions around the training examples, but the reconstruction error (or likelihood) is making sure that that the representation is faithful, i.e., can be used to reconstruct the input example.)
CAE的特性还可以通过manifold learning来解释:
我们把高维数据投影到二位平面上, 假设训练样本分布在如图所示的manifold上, 那么我们希望CAE对于沿着manifold的variance比较敏感(否则的话对于不同的训练样本, 我们很难去重构), 而对于垂直于manifold的variance不敏感(论文原文为Hence the directions that resist to this contracting pressure (strong invariance to input changes) are the directions present in the training set. Indeed, if the variations along these directions present in the training set were not preserved, neighboring training examples could not be distinguished and properly reconstructed.).
原论文中还用了紧缩曲线做了解释, 暂时不甚明了, 求高人解答. 紧缩曲线的定义如下
令输出空间内两个样本之间的距离和特征空间内两个样本的距离的比值为紧缩率(contraction ratio), 对于验证集中的每个样本$x_0$, 我们从以$x_0$为球心, $r$为半径的球内随机选取一点$x_1$, 计算$x_0$和$x_1$的紧缩率, 取其平均值作为平均紧缩率. 最后以$r$为横轴, 以该半径下的平均紧缩率为纵轴, 就可以得到紧缩曲线(contractive curve):
可以看到, 只有CAE和DAE-g(Gaussian corruption DAE)的紧缩率会首先上升, 而其他算法的都是直接下降. 暂时的理解是, 对于那些和训练样本(实际上是验证样本, 但是假设样本的划分完全随机, 二者很接近)比较接近的随机样本($r$比较小时), CAE能够比较好的学到其特征(亦即该样本和随机样本在特征空间比较接近), 所以紧缩率会首先上升, 但是对于那些和训练样本距离比较远的随机样本, 学到的特征比较差, 所以紧缩率会下降.
参考文献:
[1]. Contractive Auto-Encoders: Explicit Invariance During Feature Extraction. S. Rifai, P. Vincent, X. Muller, X. Glorot, Y. Bengio. ICML, 2011.
[2]. Hugo Larochelle's Slides on CAE.
[3]. Extracting and Composing Robust Features with Denoising Autoencoders. Pascal Vincent, Hugo Larochelle, Yoshua Bengio, Poerre-Antoine Manzagol. ICML, 2008.