论文:对比学习 Contrastive Learning

Dimensionality Reduction by Learning an Invariant Mapping

论文:http://www.cs.toronto.edu/~hinton/csc2535/readings/hadsell-chopra-lecun-06-1.pdf


介绍

降维的目的是将高维数据转换为低维表示,以便将类似的输入对象映射到流形上的附近点。大多数现有的降维技术都有两个缺点。首先,它们不会产生一个从输入到流形的函数(或映射),这个函数可以应用到与训练点的关系未知的新点上。其次,许多方法都假设输入空间中存在有意义的(可计算的)距离度量。

例如,局部线性嵌入(LLE)线性组合作为邻居的输入向量。LLE和类似方法对图像数据的适用性是有限的,因为线性组合图像只对完全配准且非常相似的图像有意义。Laplacian Eigenmap和Hessian LLE不需要输入空间中有意义的度量(它们只需要每个样本的邻居列表),但与LLE一样,无法处理与训练样本关系未知的新点。已经提出了对几种降维技术的样本外扩展,允许在不重新计算所有样本[3]的情况下一致地嵌入新的数据样本。然而,这些扩展假设存在可计算的核函数,用于生成邻域矩阵。这种依赖性可归结为对输入空间中可计算距离度量的依赖性

现有方法的另一个局限性是它们倾向于在输出空间中聚集点,有时密集到足以被认为是退化解。相反,有时希望找到被样本均匀覆盖的流形。

本文提出的基于不变映射的降维方法(DrLIM)为上述问题提供了一种解决方案。DrLIM是一种学习全局相干非线性函数的方法,将数据映射到低维流形。该方法具有四个基本特征:

  • 它只需要训练样本之间的邻域关系。这些关系可以来自先验知识,或者手工标记,并且与任何距离度量无关。
  • 它可以学习对输入的复杂非线性变换不变的函数,如光照变化和几何畸变。
  • 学习后的函数可以在没有先验知识的情况下映射训练过程中没有看到的新样本。
  • 在某种意义上,函数生成的映射在输出空间中是“平滑的”和连贯的。

采用对比损失函数来学习参数化函数 G W G_W GW的参数W,使得邻域被拉到一起,非邻域被推到一起。先验知识可以用来识别每个训练数据点的邻居。

该方法采用基于能量的模型,利用给定的邻域关系来学习映射函数。G的家庭功能,参数化W W的目标是找到一个值映射的一组高维输入管汇,在管汇上的点之间的欧氏距离, D W ( X → 1 , X → 2 ) = ∣ ∣ G W ( X → 1 ) − G W ( X → 2 ) ∣ ∣ 2 D_W (\overrightarrow{X} _1, \overrightarrow{X} _2) = | | G_W (\overrightarrow{X} _1)−G_W (\overrightarrow{X} _2) | | _2 DW(X 1,X 2)=GW(X 1)GW(X 2)2接近“语义相似度”输入的输入空间,由一系列的邻里关系提供。除了对W是可微的外,没有对函数 G W G_W GW作任何假设。


学习低维映射

问题是找到一个函数,将高维输入模式映射到低维输出,给定输入空间中样本之间的邻域关系。邻域关系图可能来自于测试点无法获得的信息源,如先验知识、手工标注等。更准确地说,给定一组输入向量 I = { X → 1 , … , X → P } I = \{\overrightarrow{X}1,…,\overrightarrow{X}P \} I={X 1X P},其中 X → i ∈ ℜ D , ∀ i = 1 , … w : ℜ D → ℜ d with d ≪ D \overrightarrow{X}i∈ℜ^D,∀i = 1,…w:ℜ^D→ℜ^d \quad \text{with} \quad d≪D X iDi=1w:DdwithdD,因此它具有以下属性:

  1. 输出空间中的简单距离度量(如欧几里得距离)应该近似输入空间中的邻域关系。
  2. 映射不应该局限于在输入空间中实现简单的距离度量,并且应该能够学习复杂变换的不变性。
  3. 即使对于邻里关系未知的样本,它也应该是可靠的。

对比损失函数

考虑高维训练向量 X → i \overrightarrow{X}_i X i 的集合 I I I。假设对于每个 X → i ∈ I \overrightarrow{X}_i∈I X iI,都有一个训练向量集合 S X → i S_{\overrightarrow{X}_i} SX i,这些训练向量被认为与 X → i \overrightarrow{X}_i X i 相似。这个集合可以通过一些先验知识来计算——例如,扭曲的不变性或时间接近性——而不依赖于简单的距离。从高维空间到低维空间的有意义映射将相似的输入向量映射到输出流形上的附近点,将不同的向量映射到远处点。本文提出了一种新的损失函数,它的极小化可以产生这样的函数。不像传统的学习系统,损失函数是对样本的和,这里的损失函数是对样本的累加。设 X → 1 , X → 2 ∈ I \overrightarrow{X}_1,\overrightarrow{X}_2∈I X 1X 2I 是表示给系统的一对输入向量。设Y是分配给这一对的二进制标号。如果认为 X → 1 \overrightarrow{X}_1 X 1 X → 2 \overrightarrow{X}_2 X 2 相似,则Y = 0,如果认为不相似,则Y = 1。将 X → 1 \overrightarrow{X}_1 X 1, X → 2 \overrightarrow{X}_2 X 2 之间需要学习的参数化距离函数 D W D_W DW 定义为 G W G_W GW 输出之间的欧氏距离。这是
D W ( X → 1 , X → 2 ) = ∣ ∣ G W ( X → 1 ) − G W ( X → 2 ) ∣ ∣ 2 D_W (\overrightarrow{X} _1, \overrightarrow{X} _2) = | | G_W (\overrightarrow{X} _1)−G_W (\overrightarrow{X} _2) | | _2 DW(X 1,X 2)=GW(X 1)GW(X 2)2

D W ( X → 1 , X → 2 ) D_W (\overrightarrow{X} _1, \overrightarrow{X} _2) DW(X 1,X 2) 记作 D W D_W DW 。那么最一般形式的损失函数是
L ( W ) = ∑ i = 1 P L ( W , ( Y , X → 1 , X → 2 ) i ) L(W) = \sum_{i=1}^P L(W,(Y,\overrightarrow{X}_1,\overrightarrow{X}_2)^i) L(W)=i=1PL(W,(Y,X 1,X 2)i)

L ( W , ( Y , X → 1 , X → 2 ) i ) = ( 1 − Y ) L S ( D W i ) + Y L D ( D W i ) L(W,(Y,\overrightarrow{X}_1,\overrightarrow{X}_2)^i) = (1 − Y )L_S(D^i_W)+ Y L_D(D^i_W) L(W,(Y,X 1,X 2)i)=(1Y)LS(DWi)+YLD(DWi)

其中 ( Y , X → 1 , X → 2 ) i ) (Y,\overrightarrow{X}_1,\overrightarrow{X}_2)^i) (Y,X 1,X 2)i) 为第 i 个标记样本对, L S L_S LS 为一对相似点的部分损失函数, L D L_D LD 为一对不同点的部分损失函数,P为训练对的个数(可以是样本个数的平方)。

L S L_S LS L D L_D LD 必须设计成 L L L 相对于W的最小值将导致 D W D_W DW 值对相似和 D W D_W DW 值对不同。

确切的损失函数是
L ( W , ( Y , X → 1 , X → 2 ) i ) = ( 1 − Y ) 1 2 ( D W i ) 2 + ( Y ) 1 2 { max ⁡ ( 0 , m − D W i ) } 2 L(W,(Y,\overrightarrow{X}_1,\overrightarrow{X}_2)^i) = (1 − Y )\frac{1}{2}(D^i_W)^2 + (Y )\frac{1}{2} \{ \max(0,m-D^i_W) \}^2 L(W,(Y,X 1,X 2)i)=(1Y)21(DWi)2+(Y)21{max(0,mDWi)}2

其中m > 0为边距。边界定义了以 D W ( X → ) D_W(\overrightarrow{X}) DW(X ) 为中心的半径。只有当它们的距离在这个半径内时,不同对才对损失函数有贡献(见下图)。涉及不同对的对比项 L D L_D LD 是至关重要的。简单地在所有相似对的集合上最小化 D W ( X → 1 , X → 2 ) D_W (\overrightarrow{X} _1, \overrightarrow{X} _2) DW(X 1,X 2)通常会导致一个坍缩解,因为可以通过设置 G W G_W GW 为常数使 D W D_W DW 损失L为零。大多数基于能量的模型要求在损失函数中使用明确的对比术语。
在这里插入图片描述

损失函数 L 与能量 $D_W$ 的图。虚线(红色)是相似对的损失函数,实线(蓝色)是不同对的损失函数。

弹簧模型类比

对一个特定的机械弹簧系统进行了类比,以直观地了解当损失函数最小化时会发生什么。GW的输出可以被认为是质量与弹簧相互吸引和排斥。考虑弹簧的方程

F = − K X F = −KX F=KX

其中F是力,K是弹簧常数,X是弹簧从静止长度开始的位移。只有当弹簧的静止长度等于零时,它才具有吸引力。因此,任何正位移X将在其两端之间产生引力。弹簧是m-repulse-only如果它的长度等于m。因此两个点与m-repulse-only弹簧将推动如果X小于m。然而今年弹簧有一个特殊的属性,如果弹簧是拉伸长度X > m,那么没有吸引力使它回到休息长度。每个点用这两种弹簧与其他点相连。由损耗函数可知,每个点与相似点之间由纯吸引弹簧连接,与不同点之间由m-纯排斥弹簧连接。参见图2。

考虑与相似对相关的损耗函数 L S ( W , X → 1 , X → 2 ) L_S (W,\overrightarrow{X} _1, \overrightarrow{X} _2) LS(W,X 1,X 2)
L S ( W , X → 1 , X → 2 ) = 1 2 ( D W i ) 2 L_S (W,\overrightarrow{X} _1, \overrightarrow{X} _2) = \frac{1}{2}(D^i_W)^2 LS(W,X 1,X 2)=21(DWi)2

利用随机梯度下降算法最小化损失函数L。 L S L_S LS 的梯度为
∂ L S ∂ W = D W ∂ D W ∂ W \frac{∂L_S}{∂W}= D_W \frac{∂D_W}{∂W} WLS=DWWDW

比较方程5和7,很明显, L S L_S LS 的梯度 ∂ L S ∂ W \frac{∂L_S}{∂W} WLS 给出了两点之间的吸引力。 ∂ D W ∂ W \frac{∂D_W}{∂W} WDW 定义了弹簧常数K和 D W D_W DW,这是两点之间的距离,给出了弹簧的扰动X从它的静止长度。显然,即使 D W D_W DW 的值很小,也会产生一个梯度(力)来降低 D W D_W DW 。因此,类似的损失函数对应于仅吸引弹簧(图2)。

现在考虑部分损失函数 L D L_D LD
∂ L D ∂ W = 1 2 ( D W i ) 2 + ( Y ) 1 2 { max ⁡ ( 0 , m − D W i ) } 2 \frac{∂L_D}{∂W}= \frac{1}{2}(D^i_W)^2 + (Y )\frac{1}{2} \{ \max(0,m-D^i_W) \}^2 WLD=21(DWi)2+(Y)21{max(0,mDWi)}2

D W > m D_W> m DW>m 时, ∂ L D ∂ W = 0 \frac{∂LD}{∂W} = 0 WLD=0。因此在距离 D W > m D_W> m DW>m 的两个不同点上没有梯度(力),如果 D W < m D_W< m DW<m
∂ L D ∂ W = − ( m − D W ) ∂ D W ∂ W \frac{∂L_D}{∂W}= −(m − D_W)\frac{∂D_W}{∂W} WLD=(mDW)WDW

再次,比较方程5和方程9,可以清楚地看到,不同的损失函数ld对应于只有m-斥力的弹簧;它的梯度给出了弹簧的力, ∂ D W ∂ W \frac{∂D_W}{∂W} WDW 给出了弹簧常数K, ( m − D W ) (m - D_W) (mDW) 给出了扰动x。负号表示这个力只是排斥的事实。可见,当 D W = 0 D_W= 0 DW=0 时力最大,当 D W = m D_W= m DW=m 时力不存在,见下图。

在这里,特别是在 L S L_S LS 的情况下,人们可能会认为,简单地使所有吸引弹簧的 D W = 0 D_W= 0 DW=0 就会使系统处于平衡状态。但是,请考虑图2e。假设b1与b2和b3用吸引弹簧连接。那么降低b1和b2之间的dw1将会增加b1和b3之间的dw1。因此,通过最小化所有弹簧的全局损失函数,最终将系统驱动到平衡状态。
在这里插入图片描述
显示弹簧系统的图。实心圆表示与中心点相似的点。空心圆代表不同的点。弹簧显示为红色之字形。作用在点上的力用蓝色箭头表示。箭头的长度大致反映了力的大小。在右边的两个图中,x轴是距离 D W D_W DW, y轴是损失函数的值。(a).显示与具有吸引弹簧的相似点相连的点。(b).与相似对相关的损失函数及其梯度。c)只与半径为m的圆内的不同点相连的点,弹簧为m-斥力。(d)显示与不同对相关的损失函数及其梯度。(e)说明一个点被其他点拉向不同方向,从而产生平衡的情况。


算法

该算法首先生成训练集,然后对机器进行训练。

步骤1:对于每个输入样本 X → i \overrightarrow{X}_i X i,执行以下步骤:
(a)利用先验知识找到样本集 S X → i = { X → j } j = 1 p S_{\overrightarrow{X}_i}= \{\overrightarrow{X}_j \}^p _{j=1} SX i={X j}j=1p,使 X → j \overrightarrow{X}_j X j被认为与 X → i \overrightarrow{X}_i X i相似。

(b)将样本 X → i \overrightarrow{X}_i X i 与所有其他训练样本配对,并将其标记为:如果 X → i ∈ S X → i \overrightarrow{X}_i∈S_{\overrightarrow{X}_i} X iSX i,则 Y i j = 0 Y_{ij}= 0 Yij=0,否则 Y i j = 1 Y_{ij}= 1 Yij=1
将所有的训练对组合成有标记的训练集。

第二步:重复直到融合:
(a)对训练集中的每一对 ( X → i , X → j ) (\overrightarrow{X}_i,\overrightarrow{X}_j) (X i,X j),做
i. 如果 Y i j = 0 Y_{ij}= 0 Yij=0,则更新W以减小 D W = ∣ ∣ G W ( X → 1 ) − G W ( X → 2 ) ∣ ∣ 2 D_W = | | G_W (\overrightarrow{X} _1)−G_W (\overrightarrow{X} _2) | | _2 DW=GW(X 1)GW(X 2)2
ii. 如果 Y i j = 1 Y_{ij}= 1 Yij=1,则更新W,使 D W = ∣ ∣ G W ( X → 1 ) − G W ( X → 2 ) ∣ ∣ 2 D_W = | | G_W (\overrightarrow{X} _1)−G_W (\overrightarrow{X} _2) | | _2 DW=GW(X 1)GW(X 2)2 增加

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值