九、正切传播算法
切面距离算法是最近邻算法的一种,其中的度量使用的不是通用的欧几里得距离,而是流形距离。
假设分类样本有这样的性质:在同一个流形上的样本分类相同,不同流形上的样本分类不同。则分类器会有这样的特点:对于样本的局部变化不敏感。即:样本在流形上的移动时,分类器的输出不变。
假设样本 的流形为 ,样本 的流形为 。则这两个点的距离定义为:流形 到流形 的距离。
问题是计算两个流形的距离代价很高,因为它要求解两个集合的最近点。一个替代方案:用 点的切平面来近似 , 然后测量两个切平面的距离(或者一个切平面到一个点的距离)。
受切面距离算法的启发,正切传播算法训练神经网络分类器的策略是:使得神经网络的输出 沿着同样类别样本所在的流形上移动时,保持局部不变性。
- 局部不变性:要求输出 沿着流形的方向变化很小。即: 在流形的切向的分量为零。
- 对于样本点 ,其流形切向量为 。则局部不变性要求 与 正交。
正切传播算法的正则化惩罚项 要求 在 的 方向的导数是较小的:
这里并没有严格要求其为零,而是比较小即可。
是这样算出的:
- 首先根据样本的类别来分成不同的流形。
- 然后找出 在本流形的近邻点来计算出梯度。
正切传播有两个主要缺点:
模型的正则化只能抵抗无穷小的扰动。因为若扰动较大,则可能切平面变化较大。
作为对比:显式的数据集增强能够抵抗较大扰动。
梯度沿着切向方向分量很小的假设对于采用了
relu
单元的模型是困难的。因为relu
单元的导数与 无关,是个常数。sigmoid
或者tanh
单元就没有这个问题,因为可以通过采用大权重在饱和区来收缩导数。
正切传播算法和人工数据集增强(如:沿着 轴的平移)都要求模型对于输入变化的某些特定的方向是不变的。
- 正切传播算法要求模型对于输入位于流形切平面上的所有方向上的小变化都是不变的。
- 正切传播算法能够抵抗较大扰动。
- 流形正切分类器:使用自编码器通过无监督学习来学习流形的结构,然后使用正切传播算法来正则化神经网络分类器。