论文简介
对比学习作为一种无监督的表示学习方法,近年来取得了显著进展。传统的对比学习方法通常使用较弱的数据增强,以保证图像转换后仍能保持实例的身份信息。然而,这种方法限制了对新模式的探索。本文提出了*使用更强增强的对比学习(CLSA)*框架,旨在克服这一局限性。
主要贡献
- 更强的数据增强:CLSA使用了14种不同的增强技术(如剪切、平移、旋转、颜色调整等),生成更强的增强图像,使得图像转换更加多样和具有挑战性。
- 分布差异最小化(DDM):为避免由于强增强导致图像身份信息丢失的问题,CLSA通过分布差异最小化方法(DDM),在表示存储库中最小化弱增强和强增强图像之间的分布差异,从而实现弱增强图像向强增强图像的知识转移。
- 泛化能力强:CLSA能够与现有的对比学习方法(如MoCo、SimCLR、BYOL等)结合,并显著提升它们的性能。
- 实验结果:
- ImageNet:在ImageNet数据集上,CLSA取得了76.2%的Top-1准确率,几乎与有监督学习方法持平。
- VOC07:在VOC数据集上,CLSA的Top-1准确率达到93.6%,超越了之前的所有方法。
- COCO目标检测:在小目标检测任务中,CLSA取得了显著提升
问题定义:
如何在对比学习中引入强增强数据作为正样本对,让系统在学习到强增强数据的同时不被强增强数据误导降低效率。
具体架构设计如下:
1. 编码器(Encoder)
- CLSA采用标准的ResNet-50作为主干网络(backbone)。ResNet-50是一个经典的卷积神经网络,用于提取图像的特征表示。
- 在ResNet-50的基础上,论文还引入了一个两层的多层感知器(MLP),该MLP具有2048维的隐藏层,并在其后接有ReLU激活函数,最后通过全连接层得到最终的特征表示。
2. 投影头(Projection Head)
- 在对比学习的过程中,特征在编码器之后会被送入一个投影头(MLP),将图像表示映射到对比学习的低维空间。这一投影头帮助优化对比损失。
3. 对比学习框架
- CLSA基于经典的对比学习框架,如MoCo(Momentum Contrast)和SimCLR等。在这种框架中,网络的目标是通过对比正样本和负样本,使同一图像的不同增强视图的特征更加相似,而不同图像的特征保持区分。
- 正样本是由同一图像的两种不同增强版本构成的,负样本则是批次中的其他图像。
4. 分布差异最小化(DDM)
- 为了有效利用强增强生成的图像,CLSA引入了分布差异最小化的设计。具体而言,论文在对比损失之外增加了一个额外的损失项,用于最小化弱增强图像与强增强图像在特征表示上的分布差异。这一方法帮助网络学习强增强图像的表示,避免过度依赖弱增强的图像特征。
- 弱增强图像的表示被用于监督强增强图像的特征分布,通过表示存储库中的负样本帮助网络学习更广泛的模式。
5. 内存队列(Memory Bank)
- 类似于MoCo,CLSA使用了内存队列来存储过去批次中的特征表示。这一队列可以包含大量的负样本,用于对比学习中的负样本对比。
- 队列大小设置为65536,用于保存负样本特征,并帮助计算弱增强和强增强图像之间的分布差异。
6. 温度参数(Temperature Parameter)
- 对比损失中的温度参数设为0.2,控制特征间相似度的平滑程度。
7. 动量编码器(Momentum Encoder)
- CLSA使用了动量编码器更新机制(Momentum Encoder),用于更新存储的负样本特征。动量平滑因子设为0.999,以确保负样本的特征表示能够稳定更新。
如何理解?
本模型实际上是在损失函数中加入了一个计算,让强增强样本接近弱增强样本,即将弱增强样本作为中间商,让强增强样本尽可能接近弱增强样本。
损失函数公式:
总的损失函数可以表示为:
L=LC+βLDL = L_C + \beta L_DL=LC+βLD
- LCL_CLC 是传统对比学习中的对比损失,用于优化正样本对和负样本对的距离。
- LDL_DLD 是分布差异最小化的损失,确保强增强样本与弱增强样本的分布尽可能相似。
- β\betaβ 是一个平衡参数,用来调节对比损失和分布差异最小化损失之间的权重
举个例子说明
场景描述:
假设我们有一个数据集,其中包含大量动物的图像,包括猫、狗和马的照片。我们的目标是通过自监督对比学习(使用DDM)来训练一个深度神经网络,让它在没有标签的情况下学习图像的良好特征表示。
步骤 1:图像增强
在对比学习中,首先会对每张原始图像进行不同的增强操作。DDM引入了两种不同的增强方式:弱增强和强增强。
- 弱增强:例如,轻微的旋转、裁剪、颜色调整等,保持图像的大致形状不变,让网络仍然能识别出图像中的物体(比如一只猫)。
- 强增强:例如,较大幅度的旋转、加入噪声、强烈的颜色变化或高对比度调整,这会使得图像在视觉上与原始图像差异很大(比如,经过强增强后,猫的照片可能看起来非常模糊或颜色极端)。
举例:
- 原图:一张清晰的猫图像。
- 弱增强:轻微旋转,颜色微调后的猫图。
- 强增强:剧烈旋转,加入高噪声后,几乎无法分辨的猫图。
步骤 2:计算特征表示
我们通过一个编码器网络(如ResNet-50)将增强后的图像转换成特征向量表示:
- 弱增强图像 V′V'V′ 被映射为特征向量 z′z'z′。
- 强增强图像 V′′V''V′′ 被映射为特征向量 z′′z''z′′。
这两个特征向量表示了同一张原始图像(猫)的不同视图,但因为增强强度不同,它们的特征表示也不同。
步骤 3:构建相似性分布
在DDM模型中,我们从一个存储库中提取一批负样本(比如其他动物的图片,像狗和马),并计算查询图像(即增强后的猫图)与这些负样本的相似度。相似度通常使用余弦相似度来计算。
对于弱增强图像 z′z'z′,我们计算它与正样本(同一个实例的另一个增强视图)以及所有负样本的相似性,并构建一个条件概率分布:
p(zj∣zi′)=exp(sim(zi′,zj)/τ)∑k=1Kexp(sim(zi′,zk)/τ)p(z_j | z'_i) = \frac{\exp(\text{sim}(z'_i, z_j) / \tau)}{\sum_{k=1}^{K} \exp(\text{sim}(z'_i, z_k) / \tau)}p(zj∣zi′)=∑k=1Kexp(sim(zi′,zk)/τ)exp(sim(zi′,zj)/τ)
这个分布表示了弱增强图像与其他样本的相对相似性。
接下来,我们使用类似的方式,计算强增强图像 z′′z''z′′ 与正负样本的相似性,并得到另一个概率分布:
p(zj∣zi′′)p(z_j | z''_i)p(zj∣zi′′)
步骤 4:最小化分布差异
传统的对比学习可能会直接让 z′z'z′ 和 z′′z''z′′ 尽量接近,但在DDM中,重点不是强制让它们的特征完全相同,而是让它们的相对相似性分布保持一致。
我们通过最小化两个分布 p(zj∣zi′)p(z_j | z'_i)p(zj∣zi′) 和 p(zj∣zi′′)p(z_j | z''_i)p(zj∣zi′′) 之间的差异来训练网络,这个过程可以用以下损失函数来表示:
LD=Ei[−p(zi∣zi′)logp(zi∣zi′′)−∑k=1Kp(zk∣zi′)logp(zk∣zi′′)]L_D = E_i \left[ -p(z_i | z'_i) \log p(z_i | z''_i) - \sum_{k=1}^{K} p(z_k | z'_i) \log p(z_k | z''_i) \right]LD=Ei[−p(zi∣zi′)logp(zi∣zi′′)−k=1∑Kp(zk∣zi′)logp(zk∣zi′′)]
这个损失项确保了尽管强增强图像与原图相比有很大的变化,它的相对分布仍然类似于弱增强图像的分布。也就是说,强增强后的图像仍然与同类图像(比如另一只猫)更相似,而与负样本(如狗和马)相对不相似。
步骤 5:组合总损失进行训练
最终的损失函数由两个部分组成:
- 对比损失 LCL_CLC:用于最大化正样本之间的相似性,最小化负样本之间的相似性。
- 分布差异最小化损失 LDL_DLD:确保强增强图像的相对相似性分布与弱增强图像保持一致。
总损失函数为:
L=LC+βLDL = L_C + \beta L_DL=LC+βLD
其中 β\betaβ 是一个平衡参数,用于调节两个损失的权重。
步骤 6:模型训练
我们通过最小化上述总损失函数来训练网络。在训练的过程中,网络不仅学习到如何在弱增强条件下区分图像,还学会了在强增强的情况下,保持图像的相对特征分布。最终,经过强增强的图像依然能够表示其原始类别(例如,这仍然是一只猫),尽管视觉上可能差异很大。
结果:
经过DDM训练后,网络不仅能够处理弱增强后的图像,还能够在强增强后的图像中识别出关键的特征模式。网络学会了在各种情况下提取图像的类别相关特征,即使图像经过强烈的扭曲或干扰,仍然可以保持其在特征空间中的相对位置。这种方法大大提高了模型的鲁棒性和泛化能力,使得模型不仅能够在训练集上表现良好,还能够更好地处理不同的测试任务。
总结:
通过DDM方法,网络不仅学习了如何处理轻度变换的图像(弱增强),还学会了如何从剧烈变换(强增强)中提取有用的特征。这种通过分布差异最小化的方法,有效避免了传统对比学习中的一些问题,特别是在图像大幅度增强时的学习困难,从而提高了网络的鲁棒性和泛化能力