监督对比损失(
SCL
)在视觉表征学习中很流行。但在长尾识别场景中,由于每类样本数量不平衡,对两类正样本进行同等对待会导致类内距离的优化出现偏差。此外,
SCL
忽略了负样本之间的相似关系的语义线索。为了提高长尾识别的性能,论文通过解耦训练目标来解决
SCL
的这两个问题,将
SCL
中的原正样本和增强正样本解耦并针对不同目标来优化他们的关系,从而减轻数据集不平衡的影响。论文进一步提出了一种基于块的自蒸馏方法,将知识从头类转移到尾类,以缓解尾类表征不足的问题。该方法挖掘不同实例之间共享的视觉模式,并利用自蒸馏过程来传输此类知识
论文地址:
https://arxiv.org/abs/2403.06151
论文代码:
https://github.com/SY-Xuan/DSCL
Introduction
在实际应用中,训练样本通常呈现长尾分布,其中少数头类贡献了大部分观察结果,而许多尾类仅与少数样本相关。长尾分布给视觉识别带来了两个挑战:
-
-
每个尾部类别包含的样本太少,无法表示视觉差异,导致尾部类别的代表性不足。
通过优化类内和类间距离,监督对比损失(
SCL
)在平衡数据集上取得了很不错的性能。给定锚定图像,
SCL
将两种正样本聚在一起,即(a)由数据增强生成的锚定图像的不同视图,以及(b)来自同一类的其他图像。这两种类型的正样本监督模型学习不同的表征:(a)来自相同类别的图像强制学习语义线索,而(b)通过外观差异增强的样本主要导致低级外观线索的学习。
如图 1(a)所示,
SCL
有效地学习了头类的语义特征,例如,学习到的语义“蜜蜂”对于杂乱的背景具有鲁棒性。而如图 1 (b) 所示,
SCL
学习的尾部类别表征对于形状、纹理和颜色等低级外观线索更具辨别力。
通过对
SCL
的梯度进行分析后,论文提出了解耦监督对比损失(
DSCL
)来处理这个问题。具体来说,
DSCL
解耦了两种正样本,重新制定了类内距离的优化策略,缓解了两种正样本的梯度不平衡。如在图 1(b)所示,
DSCL
学习到的特征对语义线索具有区分性,并且大大提高了尾部类别的检索性能。
为了进一步缓解长尾分布的挑战,论文提出了基于图像块的自蒸馏(
PBSD
),利用头类来促进尾类中的表征学习。
PBSD
采用自蒸馏策略,通过挖掘不同类之间的共享视觉模式并将知识从头类迁移到尾类,更好地优化类间距离。论文引入块特征来表示目标的视觉模式,计算块特征和实例级特征之间的相似度以挖掘共享视觉模式。如果实例与基于块特征共享视觉模式,则它们将具有很高的相似性,然后利用自蒸馏损失来维持样本之间的相似关系,并将知识融入到训练中。
Analysis of SCL
后面的分析有点长,总结起来,论文发现了
SCL
的三个问题:
给定训练数据集
. , 其中
表示图像,
是其类标签。假设
表示
中
类的数量, 并且类的索引按数量降序排序, 即如果 $a
对于图像分类任务, 算法旨在学习特征提取主干
和线性分类器, 先将图像
映射为全局特征图
并使用全局池化来获取
维特征向量, 随后将特征向量分为
维分类分数。通常来说, 测试数据集是平衡的。
特征提取主干一般采用监督对比学习(SCL)来训练。给定锚定图像
, 定义
为用主干和额外投影头
提取的归一化特征,
为正样本
通过数据增强生成的图片的归一化特征。定义
为可通过内存队列获取的一组样本特征,
为从
中抽取的
的正样本特征集。
SCL
通过拉近锚定图像与其它正样本来减小类间距离,同时通过将具有不同类别标签的图像推开来扩大类间距离,即
其中
是
的数量。使用
来表示预定义的温度参数, 条件概率
的计算如下:
公式 1 可以表示为分布对齐任务,
其中
是目标分布的概率。对于增强
和原
将它们同等地视为正样本,并将其目标概率设置为
。对于
中其它具有不同类标签的图像,SCL 将它们视为负样本,并将其目标概率设置为 0 。
对于锚定图像
的特征
的梯度为:
其中
是
的负集, 包含从
中提取的特征。
SCL 包含两种类型的正样本
和
, 锚定图像对于两种正样本的梯度计算分别为:
训练开始时,两种正样本的梯度
L2
范数之比为,
当
SCL
收敛时,
的最优条件概率为:
在 SCL 中, 内存队列
是从训练集中均匀采样的, 这导致
。在平衡数据集中,
, 不同类别的
数量是平衡的。对于具有不平衡
的长尾数据集, SCL 则会更加关注将头部类的针点
与从
得到的特征拉在一起, 因为梯度由公式 4 中的第三项主导。
另外, SCL 还存在两种正样本的梯度的 L2 范数的比例不平衡的问题, 如图 2 所示。当 SC L 的训练收玫时,
的最优值也受到
的影响, 如公式 7 所示。此外, 如图 1(a) 和 (b) 所示, 跨类别学习到的特征也不一致。
等式 4 还表明,
SCL
均匀地推开所有负样本,从而扩大了类间距离。这种策略忽略了不同类别之间有价值的相似性线索。为了寻求更好的方法来优化类内和类间距离,论文提出了解耦监督对比损失(
DSCL
)来解耦两种正样本以防止有偏差的优化,以及基于补丁的自蒸馏(
PBSD
)来利用类之间的相似性线索。
Decoupled Supervised Contrastive Loss
DSCL
的提出是为了确保不同类别的类内距离进行更平衡的优化,将两种正样本解耦并添加不同的权重,使梯度
L2
范数比和
的最优值不受类别的样本数量影响。
DSCL
可表示为:
其中
是预定义的超参数。DSCL 是 SCL 在平衡环境和不平衡环境的统一范式。如果数据集是平衡的, 通过设置
可以使得 DSCL 与 SCL 相同。
训练开始时,两种正样本的梯度L2范数比为:
当 DSCL 收玫时, z 的最优条件概率为
。
如公式 10 可以看出,两种正样本的梯度比不受
的影响。DSCL 也保证了
的最优值不受
的影响, 从而缓解了头部类和尾部类之间特征学习不一致的问题。
Patch-based Self Distillation
视觉模式可以在不同的类之间共享,例如视觉模式“车轮”在“卡车”、“汽车”和“公共汽车”共享。因此,尾类中的许多视觉特征也可以从共享这些视觉模式的头类中学习,从而降低了尾类表征学习的难度。
SCL
将来自不同类的两个实例在特征空间中推开,不管它们是否共享有意义的视觉模式。如图 4 所示,从黄色边界框中提取查询块特征,并从数据集中检索前 3 个相似样本。由
w/o PBSD
标记的
SCL
检索结果在语义上与查询块无关,表明
SCL
在学习和利用图像块级语义线索方面无效。
受细粒度图像识别中基于图像块的方法的启发, 论文引入了基于图像块的特征来编码视觉模式。给定主干提取的图像
的全局特征图
, 首先随机生成块