今天来学习一下这篇古早的论文,可以算得上是对比学习的鼻祖了。
论文地址:https://ieeexplore.ieee.org/abstract/document/1640964
摘要
降维是将一组高维的输入点映射到低维流形上,让输入空间中相似的点映射到流形相近的点上。作者提出了通过不变映射的学习实现降维的方法,这个方法是为了让数据均匀的映射到输出流形上而学习的全局均衡非线性函数。这个方法的学习仅仅依赖于相邻点的关系,而不要求任何在输入空间上的距离测量。这个方法可以学习对输入的某些变换不变的映射。同时也与其他技术,特别是LLE(Localy Linear Embedding, 局部线性嵌入)进行了比较。
1 引言
降维的目的是将一个高维数据转换到一个低维的表示上,使得相似的输入对象被映射到流形的相近点上。目前的大多数降维技术存在下面两个缺点:
- 它们没有提供一个函数或映射能够将与训练点关系未知的新点从输入映射到流形上。
- 很多方法都需要有一个在输入空间上有意义的并且能够计算的距离度量
比如,LLE将识别为相邻的输入向量进行了线性的组合。LLE和类似方法对图像数据的适用性是有限的,因为线性组合图像只对完美配准和非常相似的图像有意义。
当前已有的方法另一个限制是倾向于在输出空间中聚集点,有时密集到被认为是退化解。其实有时只需要找到被样本均匀覆盖的流形。
这篇论文提出的方法包含四个重要的特征:
- 它仅仅需要训练样本之间的相邻关系,这些关系来自于先验知识,或手工标记,它独立于任何距离度量。
- 它能学习一个 对于输入进行亮度变化和几何转变这种复杂的非线性转换 的不变映射的函数。
- 这个学习到的函数能够用于映射在训练中没有出现的新样本,并且不需要任何先验知识。
- 由函数生成的映射在输入空间中某种意义上是“光滑的”并且一致的。
采用对比损失函数来学习参数化函数GW的参数W,使相邻点被拉到一起,非相邻点被推开。用先验知识去定义每个训练数据点的相邻点。该方法使用一个基于能量的模型,这个模型利用给定的邻域关系来学习映射函数。对于一个用W参数化的函数GW,这个函数的目的是去找一个W的值将一系列高维的输入映射到流形上,使得由一组邻域关系提供的在流形上点的欧几里得距离——\(D_W(\vec{X_1}, \vec{X_2})=||G_W(\vec{X_1})-G_W(\vec{X_2})||\)——近似输入空间中输入的“语义相似性”。这个函数GW要求对W可微。
1.1 已有方法的简介
两种经典的降维方法——PCA(Principal Component Analysis)和MDS(Multi-Dimensional Scaling).
PCA是将输入投影到一个使方差最大化的低维子空间。在MDS中,算法的核心是计算能够最优保持输入点间成对距离的投影。然而,无论是常规的主成分分析(PCA),还是经典标度情形下的多维尺度分析(MDS)(当距离度量采用欧氏距离时),二者生成的均为线性嵌入。
之前提出的各种方法(ISOMAP, LLE, Laplacian Eigenmaps, Hessian LLE)都有三个主要的步骤:
- 定义每个点的邻近列表
- 然后基于该信息计算格拉姆矩阵(gram matrix)
- 求解该矩阵的特征问题
这些方法都没有尝试计算一个函数在不用重新计算整个嵌入和不知道它与训练点的关系来映射一个新的未知数据点。一些方法(Out-of-sample extensions)太依赖于预先计算好的距离度量。
2 低维映射学习
问题给定输入空间中样本之间的邻域关系,找到一个函数将高维输入模式映射到低维输出。邻域关系图可能来自测试点中无法获得的信息源,如先验知识、人工标注等。更准确的说,是给定一组输入向量\(\mathcal{I}=\{\vec{X_1},\cdots,\vec{X_P}\}, \vec{X_i} \in \mathfrak{R}^D, \forall i =1,\cdots,n\),找到一个参数函数\(G_w: \mathfrak{R}^D \longrightarrow \mathfrak{R}^d, d \ll D\)。因此它具有以下四个性质:
- 在输出空间中简单距离度量(如欧几里得距离)应该近似于在输入空间中的相邻关系
- 该映射不应局限于实现输入空间中的简单距离度量,而应能够学习对复杂变换的不变性。
- 该映射应保持泛化忠实性,即使对于邻域关系未知的样本亦能成立。
2.1 对比损失函数
假设对于每个样本 \(X_i \in \mathcal{i}\),都存在一个相似训练向量集\(S_{\vec{X_i}}\),其中包含被判定与Xᵢ相似的训练向量。该相似集的计算可基于先验知识(例如对形变的不变性或时序邻近性),而非依赖简单的距离度量。从高维空间到低维空间的有意义的映射是将相似的输入向量映射到输出流形上附近的点,将不相似的向量映射到远处的点。
与对样本求和的损失函数不同,这个损失函数在成对的样本上运行。设\(\vec{X_1}, \vec{X_2} \in \mathcal{I} \)为输入系统的一对向量样本。设Y是这对样本的二进制标签。当\(\vec{X_1}\)和\(\vec{X_2}\)相似时Y=0,当\(\vec{X_1}\)和\(\vec{X_2}\)不相似时Y=1。让参数距离函数去学习\(\vec{X_1}, \vec{X_2}\)之间的DW,DW时输出GW之间的欧几里得距离:
\(\begin{equation} D_W(\vec{X_1}, \vec{X_2})=||G_W(\vec{X_1})-G_W(\vec{X_2})||_2 \tag{1} \end{equation}\)
\(D_W(\vec{X_1}, \vec{X_2})\)在下文简化表示为DW。损失函数形式可表示为:
\(\begin{equation} \mathcal{L}(W)=\sum_{i=1}^P L(W,(Y,\vec{X_1},\vec{X_2})^i) \tag{2} \end{equation}\)
\(\begin{equation} L(W,(Y,\vec{X_1},\vec{X_2})^i) = (1 – Y)L_S(D_W^i) + Y L_D(D_W^i) \tag{3} \end{equation}\)
\((Y,\vec{X_1},\vec{X_2})^i)\)时第i个标记样本对,LS是相似点对之间的损失函数,LD是不相似点对的损失函数,P是训练样本对的数量(P的大小可能和样本数量的平方差不多大)。
在设计 LS 和 LD 时,必须确保通过优化 W 最小化损失函数 L 时,能够使相似样本对的 DW 距离趋近于较小值,而不相似样本对的 DW 距离趋近于较大值。所以得到一个准确的损失函数:
\(\begin{equation} L(W,(Y,\vec{X_1},\vec{X_2})^i) = (1 – Y)\frac{1}{2}(D_W)^2+ (Y) \frac{1}{2}\{max(0,m-D_W)\}^2 \tag{4} \end{equation}\)
这个m定义为\(G_W(\vec{X})\)的圆周距离,不相似样本对只有在m这个圆周范围内才会对损失函数有贡献,如果超出这个圆周则不计入损失函数中,如下图所示:
包含不同对的对比损失LD是很有必要的。若仅针对所有相似样本对简单最小化\(D_W(\vec{X_1}, \vec{X_2})\)通常会导致坍塌解(collapsed solution),因为此时通过将 GW 设为常函数,即可使 DW 和损失 L 同时降为零。大多数基于能量的模型(Energy-Based Models, EBMs)都需在损失函数中引入显式对比项(explicit contrastive term)。
2.2 弹簧模型类比
通过类比特定机械弹簧系统的行为,可直观理解损失函数最小化时的优化过程。可将 GW 的输出视为通过弹簧相互吸引与排斥的质点系统。下面是弹簧的等式说明:
\(\begin{equation} F=-KX \tag{5} \end{equation} \)
其中F是力,K是弹簧常数,X是弹簧相对于其自然长度的位移。若弹簧的自然长度(rest length)为零,则该弹簧仅表现为单向吸引。因此,任何正位移量 X 都会在弹簧两端之间产生吸引力。若弹簧的自然长度为m(GW的圆周范围),则该弹簧仅表现为单向排斥。因此,用仅斥型弹簧连接的两点会在X小于m时相互排斥,但当弹簧被拉伸至X大于m时,不会产生任何将其拉回自然长度的吸引力。每个点通过这两种弹簧连接到其他点。从损失函数来看,每个点都是由纯吸引弹簧连接到相似点,并由m-纯排斥弹簧连接到不同点。看下图(a)和(b):
考虑与相似样本对相关的损失函数\(L_S(W,\vec{X_1},\vec{X_2})=\frac{1}{2}(D_W)^2\):
\(\begin{equation} L_S(W,\vec{X_1},\vec{X_2})=\frac{1}{2}(D_W)^2 \end{equation} \tag{6}\)
这个损失函数L使用随机梯度下降算法最小化,这个LS的梯度是:
\(\begin{equation} \frac{\partial L_S}{\partial W} = D_W \frac{\partial D_W}{\partial W} \end{equation} \tag{7}\)
对比等式5和7,\(\frac{\partial L_S}{\partial W}\)类似于两个点之间的吸引力。\(\frac{\partial D_W}{\partial W} \)可以定义为弹簧常量K,DW可以被认为是两个点之间的距离,类似于弹簧从自然长度的位移X。即使一个很小的DW也会产生一个梯度降低(力)DW,类似图2(b)。
考虑不相似样本对的损失函数LD:
\(\begin{equation} L_D(W,\vec{X_1},\vec{X_2})=\frac{1}{2}(max\{0,m-D_w\})^2 \end{equation} \tag{8}\)
当\(D_W > m\)时,\(\frac{\partial L_D}{\partial W}=0\)。如果\(D_W < m\):
\(\begin{equation} \frac{\partial L_D}{\partial W} = -(m-D_W) \frac{\partial D_W}{\partial W} \end{equation} \tag{9}\)
对比等式5和9,\( \frac{\partial L_D}{\partial W}\)这个梯度相当于弹簧的力,\(\frac{\partial D_W}{\partial W} \)定义为弹簧常量K,(m-DW)相当于弹簧的位移,负号相当于该力为斥力。当DW=0的时候,这个力是最大的,当DW=m的时候,力是最小的。类似图2 (d) 。
在LS的情况下,人们可能会认为简单地对所有的纯吸引弹簧使DW =0将使系统处于平衡状态。但是看图2(e),设b1与b2和b3是通过纯吸引性弹簧连接的,通过降低b1和b2之间的DW(缩小b1和b2之间的距离,减少作用力)会增加b1和b3之间的DW(因为b1被b2拉走了,所以b1与b3的距离远了),通过缩小所有弹簧的全局损失L,最终会驱使系统到达平衡状态。
2.3 算法
该算法首先生成训练集,然后训练机器。
步骤1:对每个输入样本\(\vec{X_i}\),进行如下操作:
(a)使用先验知识去找到\(S_{\vec{X_i}}=\{ \vec{X_j} \}_{j=1}^P,\vec{X_j}\)被认为和\(\vec{X_i}\)相似
(b)将样本\(\vec{X_i}\)与所有其他训练样本配对,并对配对进行标记,使得当\(\vec{X_j} \in S_{\vec{X_i}},Y_{ij}=0\),否则\(Y_{ij}=1\)
结合所有样本对去生成标签训练集。
步骤2:重复步骤直到收敛
(a)对每个在训练集中的样本对\((\vec{X_i}, \vec{X_j})\)执行以下步骤:
- 如果\(Y_{ij}=0\),则更新W去减小\(D_W=||G_W(\vec{X_i})-G_W(\vec{X_j})||_2\)
- 如果\(Y_{ij}=1\),则更新W去增加\(D_W=||G_W(\vec{X_i})-G_W(\vec{X_j})||_2\)
通过减小损失函数来增加或减少在输出空间的欧几里得距离。
3 实验
本节中提供的实验演示了作者的方法所提供的不变性,并阐明了LLE等技术的局限性。本节将详细说明用于学习映射函数的参数化机器 GW。
3.1 训练架构
学习的架构称为孪生架构(Siamese Architecture),由两个共享相同参数集 W 的 GW 函数副本及一个成本模块组成。在该架构的输出端接入了一个损失模块(loss module),其输入即为此架构的输出。整个系统的输入是一对图像\((\vec{X_1}, \vec{X_2})\)和一个标签Y。样本对经过这个函数后得到两个输出——\(G(\vec{X_1})\)和\(G(\vec{X_2})\)。这个成本模块生成这个输出之间的欧几里得距离\(D_W(G_W(\vec{X_1}), G_W(\vec{X_2}))\)。损失模块结合DW和标签Y去计算损失LS和LD,具体计算谁取决于Y的值(Y=0计算LS,Y=1计算LD)。使用随机梯度更新参数W。梯度可通过损失模块、成本模块以及两个 GW 实例的反向传播计算得出。总梯度是这两个实例的贡献总和。
这个实验在来自NORB数据集的飞机图像上,是使用两层的全连接网络表示GW。这两层的全连接网络,所使用的隐藏单元和输出单元数量分别为20个和3个。在MNIST数据集上使用了一个卷积网络表示GW,如图3。
卷积神经网络是一种可训练的非线性学习机器,其直接在像素级别进行操作,并以集成方式同时学习低级特征与高级表征。它们经过端到端训练,将图像映射到输出。得益于共享权重结构和多层设计,卷积神经网络能够学习最优的平移不变局部特征检测器,同时保持对输入图像几何形变的不变性。
该卷积网络的层结构包含:1.具有15个特征图的卷积层 C1;2.降采样层 S2;3.具有30个特征图的第二卷积层 C3;4.含2个单元的全连接层 F3。C1和C3核的尺寸分别为6*6和9*9。
3.2 MNIST样本的已学习映射
第一个实验旨在建立DrLIM方法的基本功能。邻域图是在没有先验知识的情况下,用欧氏距离生成的。训练集又随机从MNIST数据集中选择的3000张手写数字4和3000张手写数字9。测试集由1000张这两种手写数字构成。这些图像经过随机打乱、配对,并根据简单的欧氏距离度量进行标注:每个样本\(\vec{X_i}\)与其5个最近邻样本配对,形成相似样本集\(S_{X_i}\)。所有与\(\vec{X_i}\)组成的其他样本对标记为不相似。
如图4测试集映射到2维流形上,较浅的蓝色点是数字9,较深的红色点是数字4。几个输入测试样本显示在他们的流形位置旁边。数字4和9在两个有些重叠的区域,其整体排布主要由样本的倾斜角度决定。样本在分布区域内呈现相对均匀的散布。
3.3 MNIST样本的平移不变映射学习
在本实验中,DrLIM方法通过使用两类MNIST数据(加入水平平移样本以制造形变)进行评估。目标是学习一个对水平平移不变的2D映射。在形变数据集中,将3000张数字4和3000张数字9的图像分别水平平移-6、-3、3和6个像素,并与原始图像合并,最终共生成30000个样本。在测试集中的两千个样本使用相同方式进行变换。
首先,该系统采用与实验1相同的方法,基于欧氏距离邻域图(每个样本选取5个最近邻)生成的样本对进行训练。样本平移后产生的较大间距导致邻域关系图出现断裂,进而使生成的映射也呈现不连续特性。输出点根据输入样本的平移位置聚类,如图5所示。然而,在每个集群中,样本组织良好且分布均匀。
作为对比,LLE算法采用相同的欧氏距离邻域图对形变后的MNIST数据集进行映射。最终生成的嵌入表示存在退化现象,不同配准状态的样本被完全分离,如图6所示。虽然存在零星的局部组织结构,但该嵌入表示整体上缺乏全局一致性。
为了使映射函数具有平移不变性,我们在欧氏最近邻样本对的基础上,补充了基于先验知识构建的样本对。每个样本通过以下方式构建配对: (a) 与其5个最近邻样本配对 (b) 与其自身的4个平移版本配对 (c) 与其5个最近邻样本各自的4个平移版本配对 同时,该样本的每个平移版本还额外与以下对象配对: (d) 上述所有最近邻样本及其平移版本。其他所有的样本对标签设置为不相似。
测试集的映射如图7所示。较浅的蓝色点是数字4,较深的红色点是数字9。如预期所示,嵌入空间中的样本分布不再以平移变换为组织依据;实际上,同一字符的所有平移版本都紧密聚集在流形上的微小区域内。
3.4 基于时序邻域与光照不变性学习的映射方法
最后的实验演示了对单个物体的一组图像的降维。对象是来自于具有一致背景的NORB数据集的一个飞机。该研究对象为NORB数据集[9]中背景统一的飞机样本。该数据集共包含972张飞机图像,覆盖观测半球空间内的多种姿态及不同光照条件。图像采集视角包含:1.光照条件:6种灯光组合(4盏光源的不同开关组合)2.方位角:18个观测位置(每20度间隔环绕一周)3.俯仰角:9个高度角(从30度至70度,每5度间隔)。该研究旨在学习一个全局一致的3D流形映射,且具备光照条件不变性。基于摄像机运动的时序连续性模式,作者构建了邻域关系图:当两幅图像的拍摄视角在俯仰角或方位角上连续相邻时(无论光照条件如何),即判定为相似样本。在像素空间的欧氏距离上可能相隔甚远的图像,只要视角连续,仍可被视为邻域样本——这正是光照差异导致的表象差异与几何相似性的本质区别。
数据集被分成了660张训练图片和312张测试图片。通过对10,989组相似样本对和206,481组非相似样本对的训练,最终学习到的三维流形呈现圆柱体几何结构,如图8所示。该圆柱体的圆周方向对应输入空间中的方位角变化,而圆柱高度方向则对应输入空间中的俯仰角变化。该映射完全具备光照不变性。这一成果非常显著:仅利用局部邻域关系学习到的流形,在全局尺度上完美对应了生成该数据集时相机的实际空间位置。
通过分析网络权重可解释该映射如何习得光照不变性,如图9所示。同心圆将飞机上的边缘匹配到特定的方位角和高度,其余的权重接近于0。以机翼暗边和阴影为例,这些特征在不同光照条件下保持相对稳定。
作为对比,本实验采用相同的先验知识定义邻域关系,通过局部线性嵌入(LLE)方法生成对应嵌入表示。尽管LLE算法可以使用任意邻域,但该算法需要计算线性重构权重来嵌入样本,这严重限制了使用远邻域的预期效果。如图10所示为LLE生成的嵌入图。显然,该三维嵌入表示并未实现光照不变性,且方位角与俯仰角的组织结构未能真实反映邻域图的拓扑关系。
4 谈论和未来工作
本实验表明,若不利用先验知识构建不变性约束,光照变化和配准差异等干扰因素将主导并扭曲降维结果。本研究提出的DrLIM方法提供了解决方案:通过引入先验知识,能够学习到低维流形的不变映射。DrLIM方法能够学习的不变性特征的复杂程度,完全取决于参数化函数GW的表达能力。实验结果表明,该映射函数能够将输入数据均匀地覆盖在流形表面。该方法还能将未见过的测试样本准确地映射到流形上有意义的位置。
DrLIM的优势在于其对比损失函数。通过为相似与不相似样本对分别设计损失函数,该系统避免了映射函数坍缩为常值函数,并在输出空间中保持动态平衡——其原理类似于相互连接的弹簧力学系统。
实验证明,LLE方法在输入样本局部高度相似且配准良好时最为有效。否则,LLE可能产生退化结果。尽管LLE可以使用任意邻域关系进行计算,但其样本的线性重构特性会削弱远距离邻域点的实际影响。其他降维方法虽然规避了这一局限,但都无法生成可直接处理新样本的映射函数(无需重新计算或依赖先验知识)。
利用先验知识构建降维映射还具有其他重要应用价值。根据NORB实验的成功经验——该实验通过图像间时序关联的先验知识学习相机位姿,表明从图像序列中学习机器人的位置与朝向是可行的。
学到的知识总结
个人感觉这个所谓二维和三维流形,其实就是数据分布图。通过最小化相似图片的欧几里得距离来控制流形之间的分布。这个流形很像那种病理图,一个一个小点像一个个细胞,能否结合?
学会了如何自己去设计一个损失函数,只需要把考虑一下减小这个损失函数能否把真正想减小的东西减小,想增大的东西增大(比如相似样本间的距离减小,不相似样本间的距离增大,同样还有L2正则化,把权重值减小来防止过拟合)。