序言
在深度学习的广阔领域中,如何有效地处理高维数据并提升模型的泛化能力一直是研究的热点。为了解决“维数灾难”问题,研究者们提出了多种基于流形假设的方法,其中切面距离、正切传播和流形正切分类器是颇具代表性的技术。这些方法通过假设数据位于低维流形附近,探索数据之间的内在结构和关系,从而提高模型的分类和识别能力。
简要概括
切面距离(Tangent Distance)
- 这是一种非参数的最近邻算法,它不使用传统的欧几里德距离作为度量标准,而是根据邻近流形关于聚集概率的知识来导出距离度量。
- 该算法假设同一流形上的样本具有相同的类别,通过测量样本所在流形之间的距离来确定它们之间的最近邻关系。这种方法有助于在局部区域内保持分类的稳定性。
正切传播(Tangent Prop)
- 该算法训练带有额外惩罚的神经网络分类器,使网络输出对沿流形移动的已知变化因素保持局部不变性。
- 通过要求网络的梯度与流形的切向量正交,或通过正则化惩罚项来减小网络在特定方向上的导数,从而实现局部不变性。
- 正切传播不仅用于监督学习,还在强化学习中有所应用,且与数据集增强密切相关。
流形正切分类器(Manifold Tangent Classifier)
- 这一方法通过自编码器学习流形的结构,并利用估计的切向量来正则化神经网络分类器。
- 与正切传播需要用户手动指定切向量不同,流形正切分类器能够自动估计流形的切向量,从而避免了人为干预的复杂性。
- 这种方法使得分类器能够在不随数据沿流形移动而剧烈变化的同时,更好地捕捉数据之间的内在关系。
切面距离、正切传播和流形正切分类器
-
如深度学习的动机与挑战篇 - 流形学习所述,许多机器学习的目标旨在假设数据位于低维流形附近来克服维数灾难。
-
切面距离 (tangent distance)
- 一个利用流形假设的早期尝试是切面距离 (tangent distance) 算法 (Simard et al., 1993, 1998)。
- 它是一种非参数的最近邻算法,其中度量使用的不是通用的欧几里德距离,而是是从邻近流形关于聚集概率的知识导出的。
- 这假设我们正在尝试的分类样本,且同一流形上的样本共享相同的类别。
- 由于分类器应该对变化的局部因素(对应于流形上的移动)不变,将点 x 1 \boldsymbol{x}_1 x1和 x 2 \boldsymbol{x}_2 x2分别所在的流形 M 1 M_1 M1和 M 2 M_2 M2的距离作为点 x 1 \boldsymbol{x}_1 x1和 x 2 \boldsymbol{x}_2 x2的最近邻距离是合理的。
- 尽管这可能是在计算上是困难(它需要解决一个找到 M 1 M_1 M1和 M 2 M_2 M2最近对点的优化问题),一种廉价的替代是局部合理的,即使用 x i \boldsymbol{x}_i xi点处切平面近似 M i M_i Mi,并测量两条切平面或一个切平面和点的距离。
- 这可以通过求解一个低维线性系统(流形的维数)实现。
- 当然,这种算法需要制定一个切向量。
-
正切传播(tangent prop)
- 受相关启发,正切传播(tangent prop) 算法 (Simard et al., 1992)(图例1)训练带有额外惩罚的神经网络分类器,使神经网络的每个输出 f ( x ) f(\boldsymbol{x}) f(x)对已知的变化因素是局部不变的。
- 这些变化因素对应于沿着的相同样本聚集的流形的移动。
- 局部不变性是通过要求
∇
x
f
(
x
)
\nabla_xf(\boldsymbol{x})
∇xf(x)与已知流形的切向
v
(
i
)
\boldsymbol{v}^{(i)}
v(i)正交实现的,或者等价地通过正则化惩罚
Ω
\Omega
Ω使
f
f
f在
x
\boldsymbol{x}
x的
v
(
i
)
\boldsymbol{v}^{(i)}
v(i)方向的导数是小的:
Ω ( f ) = ∑ i ( ( ∇ x f ( x ) ⊤ v ( i ) ) ) 2 — 公式1 \Omega(f)=\sum\limits_i\left((\nabla_xf(\boldsymbol{x})^\top\boldsymbol{v}^{(i)})\right)^2\quad\textbf{---\footnotesize{公式1}} Ω(f)=i∑((∇xf(x)⊤v(i)))2—公式1- 这个正则化项当然可以通过适当的超参数缩放,并且对于大多数神经网络,我们将需要对许多输出求和 (此处为描述简单, f ( x ) f(\boldsymbol{x}) f(x)为唯一输出)。
- 与切面距离算法一样,切向量推导先验,通常是从变换(如平移、旋转和缩放图像)的效果获得形式知识。
- 正切传播不仅用于监督学习(Simard et al., 1992),还在强化学习(Thrun, 1995) 中有所应用。
- 正切传播与数据集增强密切相关。
- 在这两种情况下,该算法的用户通过指定一组不改变网络输出的转换, 编码其先验知识。
- 不同的是在数据集增强的情况下,网络是显式地训练正确分类这些施加大量变换后产生的不同输入。
- 正切传播不需要显式访问一个新的输入点。
- 取而代之,它解析地对模型正则化在对应于指定转换的方向抵抗扰动。
- 虽然这种分析方法是聪明优雅的,它有两个主要的缺点。
- 首先,模型的正则化只能抵抗无穷小扰动。显式的数据集增强能对抗较大扰动。
- 其次,无限小的做法对基于整流线性单元的模型是困难的。
- 这些模型只能通过关闭单元或缩小它们的权重才能缩小它们的导数。他们不能像 sigmoid \text{sigmoid} sigmoid或 tanh \text{tanh} tanh单元一样通过大的权重在高值处饱和以收缩导数。
- 数据集增强在整流线性单元上工作得很好,因为整流单元的不同子集针对每一个原始输入不同的转换版本激活。
- 正切传播也涉及到双反向传播(Drucker and LeCun, 1992) 和对抗训练(Szegedy et al., 2014a; Goodfellow et al., 2014b)。
- 双反向传播正则化 Jacobian \text{Jacobian} Jacobian要小,而对抗训练找到原输入附近的点,训练模型以在这些点产生与原来输入相同的输出。
- 正切传播和手工指定转换的数据集增强都要求模型对输入变化的某些特定的方向是不变的。
- 双反向传播和对抗训练都要求模型对输入所有方向中的变化(只要该变化较小)都应当是不变的。
- 正如数据集增强是正切传播非无限小的版本,对抗训练是双反向传播非无限小的版本。
-
流形正切分类器(Manifold Tangent Classifier)
- 流形正切分类器 (Rifai et al., 2011d) 无需知道切线向量的先验。
- 正如我们将在后续篇章:自编码器看到,自编码器可以估算流形的切向量。
- 流形正切分类器使用这种技术来避免用户指定切向量。
-
图例1:正切传播算法 (Simard et al., 1992)和流形正切分类器主要思想的示意图 (Rifai et al.,2011c),它们都正则化分类器的输出函数 f ( x ) f(\boldsymbol{x}) f(x)。
-
图例1说明:
- 每条曲线表示不同类别的流形,这里表示为嵌入在二维空间中的一维流形。
- 在一条曲线上,我们选择单个点并绘制了一个与类别流形(平行并接触流形)相切的向量以及与类别流形(与流形正交)垂直的向量。
- 在多维情况下,可以存在许多切线方向和法线方向。
- 我们希望分类函数沿垂直于流形方向上的移动而快速改变,并且不随着沿类别流形方向的移动而改变。
- 正切传播和流形正切分类器都正则化 f ( x ) f(\boldsymbol{x}) f(x)不随 x \boldsymbol{x} x沿流形的移动而大量改变。
- 正切传播需要用户手动指定计算正切方向的函数(例如指定小平移后的图像保留在相同类别的流形中),而流形正切分类器通过训练自编码器拟合训练数据来估计流形的正切方向。
- 我们将在后续篇章:自编码器中讨论使用自编码器来估计流形。
总结
切面距离、正切传播和流形正切分类器作为基于流形假设的深度学习方法,为解决高维数据的分类和识别问题提供了有力工具。它们通过探索数据之间的内在结构和关系,提高了模型的泛化能力和稳定性,为深度学习的进一步发展奠定了坚实基础。