type
status
date
slug
summary
tags
category
icon
password
paper
github
个人博客位置

1 Motivation

经典的自监督对比学习方法以instance discrimination作为pretext task。在这种方法中,会对batch的图片进行数据增强,以同一图片不同的数据增强为正例,其它作为负例,以自监督对比损失(式1)作为训练目标进行学习。
是一个batch的索引。(这个batch有原始数据经过两个不同的数据增强形成)
:索引的positive sample的索引,对于每一个都有1个positive,个negative
: 索引的图片表征
然而,在某些特定场景下,我们可能已经掌握了类别标签信息,或者至少能够明确哪些实例属于同一类别,而无需具体的类名。在这种情况下,直接沿用传统的自监督对比学习方法进行优化,显然未能充分利用这些宝贵的先验知识。
为了解决这一问题,supervised contrastive learning应运而生。其核心思想在于,将传统的自监督对比学习框架扩展至包含正例信息的场景中。该方法从同一类别中进行采样来构建正例,如下图所示。
notion image

2 Supervised Contrastive Learning(SupCon)

对于SupConbatch中第个sample,它不像式(1)中只有而是由多个。假定在该batch中的所有positive的索引集合,那么应当将式(1)改为
但这样改有个小问题。同一个batch中对于不同的大小可能不一致(可以理解成样本不均衡)。为了均衡不同大小的,作者引入了一个normalize系数。针对这个normalize系数的位置对式(2)提出了两种变体:
(一)outside supervised contrastive learning
(二)inside supervised contrastive learning
这两个等式并不等价,由于是凹函数,根据Jensen's inequality有。可见的上界。分别分析式(3)和式(4)的梯度信息:(附录有完整求导过程)
其中,且
可以发现,当时,两个loss等价。
从上述的梯度分析中,可以发现相比用了positive的mean,训练过程应当更稳定,从作者的实验观察,outside比inside有较大的提升。
notion image

3 Experiment&Analysis

作者用分类准确率来评估SupCon的性能。

3.1 不同loss function的分类准确率

notion image

3.2 不同augmentation在ImageNet1K的分类准确率

此处作者给出了一些在不同augmentation的实验结果。
notion image
notion image

3.3 SupCon的训练稳定性

3.3.1 超参稳定性

作者分别评估不同Augmentation (RandAugmentAutoAugmentSimAugmentStacked RandAugment)、Optimizer(LARS, SGD with Momentum and RMSProp)、learning rate模型的性能。实验发现,SupCon对Augmentation,Optimizer相对不敏感,对learning rate相对敏感。
总体上SupCon的超参稳定性远胜于CE。
notion image

3.4 模型对加噪数据的鲁棒性

As we know,深度学习模型拟合的是训练数据,其对OOD数据(out of domain)的鲁棒性是难以保证的。此节作者评估模型对加噪声后的数据的鲁棒性,评估的benchmark为ImageNet-C,评估指标为mCE(Mean Corruption Error)、rel.mCE (Relative Mean Corruption Error metrics)和ECE(Expected Calibration Error)
notion image
notion image

3.5 SupCon 训练参数的配置建议

3.5.1 Effect of Number Batch Size

batch size对SupCon有较多增益。作者实验中所用的batch size为6144。如果计算资源有限,可以结合moco的思路,用menory来缓存,作者实验发现,memory缓存的向量为8192,即使采用256的batch size也能达到79.1%的精度。
backbone为resnet50
backbone为resnet50

3.5.2 Effect of Temperature in Loss Function

temperature越小会让式(3)softmax后的结果约接近onehot,此次的梯度强度大,有利于加速训练。但过小的temperature可能会带来数值不稳定的问题。可以配置为0.1
backbone为resnet50
backbone为resnet50

3.5.3 Effect of Number Positives

作者测试positive number对分类精度的增益。测试表明:当positive number增加时,分类精度稳定增长。可能受限于成本,作者没有给出什么时候这个收益会达到bottleneck。
batch size=6144. 当positive-num=1时就是simCLR
batch size=6144. 当positive-num=1时就是simCLR

小结

本文系统总结了Supervised Contrastive Learning这篇paper的主要内容。并对文中部分推导进行了补充,以便理解。若有不当之处,恳请指出。

拓展阅读

《Selective-Supervised Contrastive Learning with Noisy Labels》 引入一个filter机制,用高置信的positive来做supervised contrastive learning,提升监督质量。
《Balanced Contrastive Learning for Long-Tailed Visual Recognition》提出了balanced supervised contrastive learning loss。1)通过class-averaging来平衡不均衡负类的梯度;2)通过class-complement方法实现每次梯度更新都会考虑所有类别信息。
《Learning Vision from Models Rivals Learning Vision from Data》 将SupCon应用到合成数据表征学习领域。

附录

A. 两种SupCon两种形式loss的梯度分析

的梯度

其中
(二) 的梯度
其中

B. SupCon具备隐式的Hard Sample Mining的能力

hard sample mining在表征学习上是一个非常常用的trick。SupCon有一个非常好的性质:它能隐式的做hard sample mining这个操作。
对于向量表征,我们通常会使用normalize这个操作。不妨记:,计算对的梯度:
其中:
将B.2及式(5)带入B.1中有:
为easy sample时,,此时
为hard sample时,,此时
首先来看梯度的强度(先不考虑前面的系数
当为easy sample时,此时的梯度强度接近0
当为hard sample时,B.5 可以简化为
考虑outside形式的SupCon ,有
由于,因此
从式B.8不难得出,梯度强度受益于negative和positive sample的数量。
此处有个假设,
对于positive的easy sample,由于,导致较小的梯度强度。
对于positive的hard sample,此时,根据式B.8,梯度强度进一步受益于negative和positive sample的数量。
同理可以分析negative场景下的梯度信号,此处不再赘述。

C SupCon和其他loss的关系

(一) 与自监督对比学习loss的联系

自监督对比学习时SupCon的一个特例。当positive的数量为1时,此时SupCon等同于自监督对比损失。

(二) 与triplet loss的联系

假定一个batch为一个三元组(anchor, positive, negative), 分别为anchor image, positive image, negative image的表征,且有。假设的距离远大于的距离,此时的SupCon为
由此我们从SupCon推出了triplet loss的形式,它是SupCon的一个特例。

(三) 与N-pair loss的联系

时,SupCon等价于N-pair loss。表示图片作为anchor时生成的图片索引。
 
CLIP相关论文泛读diffusion model(十八):diffusion model中negative prompt的工作机制
  • Twikoo