WHAT SHOULD NOT BE CONTRASTIVE IN CONTRASTIVE LEARNING
现在的自监督对比学习方法,大多通过学习对不同的数据增强保持不变,从而学习到一个好的视觉表征。这里就隐含地假设了一组特定地表示不变性,(比如颜色不变性),但是如果下游任务不满足这种假设条件时,(比如区分黄色轿车和红色轿车),这种方法可能就会对任务起到反作用。
对于数据增强来说,我们在网络中引入的每一种增强都是鼓励网络对该种变换保持不变性。
如上图所示,自监督对比学习依赖于(a)中描述的数据扩充来学习视觉表征。然而,目前的方法通过鼓励神经网络对信息不太敏感来引入感应偏差,可能有帮助也可能有伤害。如(b)所示,旋转不变嵌入对某些花卉类别有帮助,但可能会损害动物识别性能;相反,颜色不变性通常似乎有助于粗粒度的动物分类,但会损害许多花卉类别和鸟类类别。
所以本文提出一种对比学习框架,它不需要特定地、任务相关地不变性的先验知识,通过构造独立的嵌入空间来学习捕获视觉表示的变化和不变因子,每个嵌入空间对除一个增广外的所有增广都是不变的。目的就是想在对比学习的框架中能够捕获到个体变换的因素。而无需假定下游不变性的先验知识。
**对比学习通过最大化数据样本的相似性和相异性来学习表示,这些数据样本分别被组织成相似和相异对。**也就是我们说的正样本对和负样本对。
我们一般使用的数据增强策略是通过一个数据增强模块,其中包含了几个数据增强的原子操作,比如随机裁剪,颜色、翻转等。对于一个样本图像 I I I,经过数据增强后得到随机视图 I ~ \widetilde{I} I , 正样本对是对同一模板图进行数据增强得到的,负样本对可以是对不同样本图进行数据增强得到的。然后经过特征提取网络,再经过projection head 提取表示 进一步映射到一个特征空间中进行度量。比如 InfoNCE损失函数:
该论文研究不同的任务可能适用不同的增强策略,比如,颜色在鸟类的细粒度分类中起着重要作用,再比如,旋转增强对于花和汽车的分类是有差异的,花旋转后可能会比较相似,但是汽车可能就完全不相似了。
本文提出了一个框架 Leave-one-out Contrastive Learning (LOOC),称为多元强化对比学习框架。该框架可以有选择地防止因扩充而导致的信息丢失。
每个embedding space专用于单个增强,共享层将包含增强变化和不变信息,我们通过几个嵌入空间共同学习一个共享表示。我们要么单独将共享表示,要么将所有空间的连接转移到下游任务。
以翻转和颜色的数据增强来看,首先参考图像 I I I被扩充为两个视图q、k。它们是经过了不同但有规律的数据增强得到的。视图 q q q和 K 0 K_0 K0分别经过两组独立的数据增强操作,或者可以理解为互斥。就是不同角度的旋转和不同颜色的增强。其他的几个视图分别是相对于视图 q q q来说只有一处增强不同,其他数据增强操作保持一致。 I q I_q Iq和 I k 1 I_{k_1} Ik1经过了相同的旋转角度,但是不同的颜色来增强, I q I_q Iq和 I k 2 I_{k_2} Ik2经过了相同颜色,但是不同的旋转角度来增强。
经过数据增强的视图,首先通过特征提取网络 f f f转化为特征空间 V V V的特征向量,之后经过projection映射到不同的子空间中,称为归一化的embedding space Z Z Z。在这些子空间中, Z 0 Z_0 Z0这个子空间中,一个样本图像经过增强后 所有的特征 v v v应该被映射到相近的同一区域。而在其他子空间 Z i Z_i Zi中,只有 v q v^q vq和 v k i v^{k_i} vki应该被映射到相近的同一区域。
有了上面的方法,我们还需要定义监督网络学习的损失函数,其实和InfoNCE相似:
说明:
实验比较对象:
实验数据集:
ImageNet-100(IN-100): ImageNet 子集 100类别
iNat-1k: 一个大规模分类数据集 1010种类别
CUB-200: 加州理工大学鸟类数据集,200种鸟类的细粒度分类数据集
Flowers-102: VGG Flowers数据集 102种类别
测试数据集:
实验结果:
测试在不同旋转角度下的分类准确性,对于MoCo来说,加了旋转增强,降低了它的分类准确性,而对于LooC来说,更好的利用了增强带来的信息增益。
测试连接到下游任务之后的性能,LooC++ 得到很好的实验结果
该组实验表明,旋转增强有利于ON-13,而纹理增强有利于IN-C-100
在训练时使用了不同的数据增强,在测试时测试不同的增强的各种排列组合的性能,从而间接说明,不同的任务会受不同的数据增强的影响。
就是说相当于需要做排列组合的测试:
使用全部数据增强,实验结果;
不同的下游任务对依赖于增强的或不变的表示显示出不同的偏好。