[论文阅读-Contrastive Learning(1)] 2006 CVPR Dimensionality Reduction by Learning an Invariant Mapping
前言:最近在阅读近几年来CV领域无监督学习的主流方法,想把一些无监督领域的思想引入到我做的底层图像复原中来,克服实测数据难以解决的问题。对比学习(Contrastive Learning,后面统一简称CL)当属目前最火的无监督学习方法之一,因此最近的论文阅读以CL为专题,首先阅读CL的原理,主要是CL一些baseline的方法,后面阅读CL是如何在各个任务中的应用的。
动机
这篇文章应是contrastive learning的起源,该文章的目的是做特征降维,类似于LLE、tSNE等方法,解决他们存在的问题。说白了也就是图像表达的学习(representation learning),将高维的数据输入降维成信息量丰富的低维表达。这篇文章主要解决了当时特征降维的两个问题:
1. 这些方法假设输入数据空间中的点是存在相关性的(如LLE中认为每个点可以被领域内的点线性加权表示)。
2. LLE、tSNE等降维方法都需要已知所有特征后,再去进行降维,如果此时进来一个新的特征,则需要全部重新计算。
方法
作者要学习一个特征提取器Gw,或者说一个映射mapping,这个mapping需要满足以下几个特征:
1. 映射后的空间上,足够简单的距离测度(如欧拉距离)就能表征特征间的关系,其目的是为了保证这种关系是的确建模在特征中,而非建模在复杂的距离测度中。也就是直接就能看出特征间的关系,而不是还需要再处理一次才能看到
2. 这个映射不应该是简简单单的,而是要学习具有不变性的特征(invariant to complex transformations)
3. 对未知的样本仍然适用
作者用两层神经网络作为Gw,并用contrastive loss来学习Gw的参数。
contrastive loss的目的实际上就是让近的更近,远的更远。具体表达形式如下:

与以前LLE等无监督方法不同的是,这里作者提出来的时候是有监督的,也就是一个label,表达两个样本X1和X2是否是相关的,0或者1,如果是0(相关)的话,用LD让他们的特征更近,如果是1(不相关的)的话,用LS让他们的特征更远。具体如下式:

值得注意的是作者特别说明了若在Y全部等于0,也就是样本全部相关的条件下是训练不好的,会直接导致Gw(X)=0,此时Ls=0就够了。
作者随后用了两个弹簧来类比了contrastive loss。一般来说,弹簧满足胡克定律F=-kX。其中X是形变量,k是劲度系数。现有两个特殊的弹簧,一个长度为0,即只会产生拉力,另一个只会在长度小于m后产生推力。这两个弹簧分别用在了相似样本和不相似样本上。即系统总是会对相似样本产生拉力,对不相似距离又小于m的样本产生推力,最后达到一个力学平衡,即下图:

(a)(b)表示了第一个弹簧,(c)(d)表示了第二个弹簧,(e)表示达到力学平衡的状态。
物理模型F=-kX在对比学习里也是有相应的物理含义的:


上式中微分表达了劲度系数,Dw和m-Dw表达了形变量。
作者主要在MNIST上做了实验,如前所述,每次的输入是两个样本和一个是否相似的标签。
思考
这篇文章我认为有两个亮点,一是抛弃了LLE、tSNE那种完全非参数降维方法,建模了一个特征提取器,去学习输入空间到特征空间的映射,也可以算一种非参数方法,但是建立了一个mapping,解决了新输入样本的问题;二是区别对待正样本和负样本,也就是相关样本和不相关样本,正样本拉得更近,负样本推得更远。
但问题是这种方法都是instance-level的,也就是以单张图片为单位,提取不同图片的特征,对图片进行分类。而问题是底层任务如去雨去噪都是pixel level的,在pixel level上也可以直接这样用吗?首先对每个Pixel附带标签是不可能的,自己对每个pixel进行transform生成正样本负样本也不现实。如何使用这个思想?
