计算机视觉 对比学习 串烧一
文章目录
- 【文章列表】
- 一、 Inst Disc
- 1.1 文章摘要
- 1.2 实验结果
- 1.3 文章图示
- 图一 超级学习结果的可视化
- 图二 非参数softmax分类器的流程
- 图三 近端正则化的效果
- 图四 训练和测试目标的一致性
- 图五 图像检索的结果
- 表 1: CIFAR10 数据集上的分类准确率
- 表 2: ImageNet 数据集上的分类准确率
- 表 3: Places 数据集上的分类准确率
- 表 4: 不同嵌入特征大小的分类性能
- 表 5: 不同训练集大小的分类性能
- 表 6: PASCAL VOC 2007 数据集上的目标检测性能
- 二、Inva Spread
- 1.1 文章摘要
- 1.2 实验结果
- 1.3 文章图示
- 图 1: 基本思想的图示
- 图 2: 孪生网络的框架图
- 表 1: CIFAR-10 数据集上的 kNN 准确率
- 图 3: CIFAR-10 数据集上的训练效率
- 图 4: CUB200 数据集上的检索结果
- 图 5: CIFAR-10 数据集上的余弦相似度分布
- 图 6: CIFAR-10 数据集上不同属性的余弦相似度分布
【文章列表】
文章参考 对比学习论文综述【论文精读】 🌹 🚀
是否完成 | 年份 | 文章及其链接 | 简介 | 其他 |
---|---|---|---|---|
✅ | 2018 | InstDisc | 提出实例判别和memory bank做对比学习 | |
✅ | 2019 | InvaSpread | 一个编码器的端到端对比学习 | |
✅ | 2018 | CPC | 对比预测编码,图像语音文本强化学习全都能做 | |
✅ | 2019 | CMC | 多视角下的对比学习 | |
✅ | 2019 | MoCov1 | 无监督训练效果也很好 | |
✅ | 2020 | SimCLRv1 | 简单的对比学习 (数据增强 + MLP head + 大batch训练久) | |
✅ | 2020 | MoCov2 | MoCov1 + improvements from SimCLRv1 | |
✅ | 2020 | SimCLRv2 | 大的自监督预训练模型很适合做半监督学习 | |
✅ | 2020 | BYOL | 不需要负样本的对比学习 | |
✅ | 2020 | SWaV | 聚类对比学习 | |
✅ | 2020 | SimSiam | 化繁为简的孪生表征学习 | |
✅ | 2021 | MoCov3 | 如何更稳定的自监督训练ViT | |
✅ | 2021 | DINO | transformer加自监督在视觉也很香 |
一、 Inst Disc
《Unsupervised Feature Learning via Non-Parametric Instance Discrimination》
文章主要研究了在无监督学习环境下,如何通过仅要求特征对单个实例具有区分性,来学习能够捕捉实例之间视觉相似性的好的特征表示。
主要贡献:
- 提出 Instance Discrimination (个体判别) 代理任务
- 使用代理任务和 NCE Loss 进行对比学习,从而取得了不错的无监督表征学习结果
- 提出用 Memory Bank 这种数据结构来存储大量的负样本
- 提出基于 Momentum (动量) 的模型参数更新方法 (Proximal Regularization:给模型的训练加了一个约束,后续的 MoCo 的想法与其一致)
1.1 文章摘要
摘要:
- 研究了在没有类别标签的情况下,如何学习能够捕捉实例之间视觉相似性的特征表示。
- 提出了一种非参数分类问题的方法,使用噪声对比估计(Noise-contrastive Estimation, NCE)来解决大量实例类别带来的计算挑战。
- 实验结果显示,该方法在
ImageNet分类任务
上达到了新的无监督学习状态,通过微调学习到的特征,还可以在半监督学习和目标检测任务上获得有竞争力的结果。 - 该方法的非参数模型非常紧凑,每个图像128个特征,对于一百万图像只需要600MB的存储空间,实现了快速的最近邻检索。
重点:
- 引言:介绍了深度神经网络在计算机视觉领域的突破,以及获取标注数据的困难,提出了无监督学习的新方法。
- 相关工作:讨论了无监督学习中的生成模型和自监督学习方法。
- 方法:
- 提出了一种新的无监督特征学习方法,即在实例级别进行判别学习。
- 使用非参数softmax分类器,并引入了
噪声对比估计
(NCE)来近似全softmax分布。 - 引入了近端正则化方法来稳定学习过程。
- 使用加权k最近邻(k-Nearest Neighbor, kNN)分类器进行测试时的分类。
- 实验:
- 在CIFAR-10数据集上比较了非参数softmax和参数softmax。
- 在ImageNet数据集上比较了该方法和其他无监督学习方法。
- 展示了学习到的特征表示在半监督学习和目标检测任务上的泛化能力。
- 总结:提出了一种通过非参数softmax公式最大化实例之间差异的无监督特征学习方法,并在多个任务上验证了其有效性。
1.2 实验结果
实验结果:
- 在ImageNet 1K数据集上的top-1准确率达到46.5%,在Places 205数据集上达到41.6%。
- 在半监督学习任务上,当只有1%的数据被标记时,该方法显著优于其他方法。
- 在PASCAL VOC 2007数据集上的目标检测任务中,使用ResNet50架构时,该方法达到了65.4%的平均精度均值(mAP),超过了其他无监督学习方法。
文章中提到的噪声对比估计(Noise-Contrastive Estimation,
NCE)是一种用于处理大规模分类问题的技术,它可以用来近似传统的softmax函数。在无监督特征学习中,尤其是在需要区分大量实例类别的情况下,直接计算softmax是不可行的,因为类别数可能与训练样本的数量一样多。NCE通过将多类分类问题转化为多个二分类问题来降低计算复杂度。
噪声对比估计(NCE)的核心思想:
-
正样本和负样本:对于每个训练样本,将其自身作为正样本,再从噪声分布中采样出一些样本作为负样本。噪声分布通常是均匀的,意味着每个负样本被选中的概率是相同的。
-
二分类问题:对于每个正样本,NCE训练一个模型来区分正样本和负样本。模型学习的目标是提高对正样本的预测概率,同时降低对负样本的预测概率。
-
近似softmax:通过这种方式,NCE近似了softmax函数的梯度,使得在训练过程中,模型可以学习到区分不同实例的特征表示。
在本文中的应用:
-
非参数softmax:文章提出了一种非参数softmax分类器,它不使用传统的权重向量来代表每个类别,而是直接使用特征表示本身。
-
概率计算:对于给定的特征表示v和记忆库中的某个特征表示vi,NCE计算概率P(i|v),即特征表示v属于第i个实例的概率。
-
正则化:通过引入温度参数τ,NCE可以控制分布的集中程度,这对于学习有效的特征表示至关重要。
-
负采样:NCE通过采样负样本来近似计算softmax分母中的总和,从而避免了直接计算整个训练集的复杂度。
总之,噪声对比估计是一种强大的技术,它使得在大规模无监督学习问题中,能够有效地学习到区分性的特征表示。在这篇文章中,NCE被用来解决实例级别的分类问题,从而在没有类别标签的情况下学习到有用的特征。
1.3 文章图示
图一 超级学习结果的可视化
- 目的:展示在有监督学习中,神经网络如何自动发现类别之间的视觉相似性。
- 内容:图中显示了当输入一张属于"豹子"类别的图片时,神经网络分类器在softmax输出中对其他类别的响应。与"豹子"视觉相关的类别(如"美洲豹"和"猎豹")的响应更高,而非相关的类别(如"购物车"和"书柜")的响应则低得多。
- 结论:这表明即使没有显式指导,有监督学习算法也能从视觉数据本身学习到类别之间的相似性。
图二 非参数softmax分类器的流程
- 目的:描述了文章提出的无监督特征学习方法的流程。
- 内容:
- 使用卷积神经网络(CNN)作为骨干网络,将每个图像编码为特征向量。
特征向量被投影到128维空间,并进行L2归一化
。- 通过实例级别的判别学习,尝试在128维单位球面上最大化训练样本的特征分散。
- 结论:展示了如何通过无监督学习训练一个深度神经网络来学习区分不同实例的特征表示。
对于 ImageNet 数据集,一共有128万张图片,因此 Memory Bank 是一个 1280000*128 的数据矩阵
图三 近端正则化的效果
- 目的:展示近端正则化对训练动态的影响。
- 内容:图中显示了有无近端正则化的训练损失和测试精度的变化。
- 结论:近端正则化有助于稳定训练过程,加快收敛速度,并改善学习到的表示。
λ 是近端正则化(Proximal
Regularization)技术中使用的一个超参数,它控制着正则化项的强度。近端正则化是一种优化策略,用于处理一些特定的优化问题,特别是在处理包含非光滑或非凸正则项的优化问题时。
图四 训练和测试目标的一致性
- 目的:展示训练损失和测试精度之间的关系,以证明训练目标与测试目标的一致性。
- 内容:图中显示了随着训练轮次的增加,测试精度持续提高,而训练损失持续降低。
- 结论:
这表明无监督学习目标捕捉到了与数据的语义标注一致的视觉相似性,且没有过拟合的迹象。
图五 图像检索的结果
-
目的:通过图像检索的结果来展示学习到的特征的有效性。
-
内容:
- 左列是验证集中的查询图像。
- 右列显示了训练集中与查询图像最接近的10个实例。
- 上半部分展示了最佳案例,检索到的图像与查询图像在相同类别中。
- 下半部分展示了最差案例,检索到的图像与查询图像不在相同类别中,但仍然在视觉上相似。
-
结论:即使在检索失败的案例中,检索到的图像在视觉上与查询图像相似,证明了无监督学习目标的强大能力。
-
这些图共同支持了文章的主要观点,即通过无监督学习可以有效地学习到区分性特征,这些特征不仅能够在ImageNet等大规模图像分类任务上取得优异的性能,还可以泛化到半监督学习和目标检测等其他任务。
表 1: CIFAR10 数据集上的分类准确率
- 目的:比较在CIFAR10数据集上,使用
参数softmax和非参数softmax
学习到的特征的分类性能。 - 内容:Training / Testing:展示了训练时使用的模型和测试时使用的分类器类型。
- Param Softmax:使用参数softmax函数训练得到的特征。
- Non-Param Softmax:使用非参数softmax函数训练得到的特征。
NCE m = 1, 10, 512, 4096
:使用不同数量的负样本(m)进行噪声对比估计(NCE)近似非参数softmax时的特征。- 准确率:展示了使用线性SVM和kNN(k最近邻)分类器在测试集上的top-1分类准确率。
- 结论:非参数softmax在两种分类器上都优于参数softmax。随着负样本数量的增加,NCE近似的准确率逐渐提高。
表 2: ImageNet 数据集上的分类准确率
- 目的:比较在ImageNet数据集上,作者提出的方法与其他无监督学习方法的性能。
- 内容:
- method:列出了不同的方法,包括随机初始化、不同的自监督学习方法和对抗学习方法。
- conv1, conv2, …, conv5:展示了在不同卷积层上使用线性SVM进行分类的准确率。
- kNN:展示了在最后一层使用kNN分类器的准确率。
- #dim:表示学习到的特征的维度。
- 结论:作者提出的方法在不同的网络架构和层上都取得了最好的性能,尤其是在使用kNN分类器时。
表 3: Places 数据集上的分类准确率
-
目的:展示在Places数据集上,直接使用在ImageNet上学习到的特征的分类性能。
-
内容:
- method:列出了不同的方法。
- conv1, conv2, …, conv5:展示了在不同卷积层上使用线性SVM进行分类的准确率。
- kNN:展示了在最后一层使用kNN分类器的准确率。
-
结论:即使不进行微调,作者提出的方法学习到的特征在Places数据集上也有很好的泛化能力。
-
与上述在ImageNet数据集上类似
表 4: 不同嵌入特征大小的分类性能
- 目的:研究嵌入特征大小对分类性能的影响。
- 内容:
- embedding size:列出了不同的嵌入特征大小(32、64、128、256维)。
- top-1 accuracy:展示了在ImageNet数据集上使用ResNet18作为骨干网络时的top-1分类准确率。
- 结论:嵌入特征大小对性能有影响,但存在一个最佳尺寸,在增大到一定尺寸后,性能提升会饱和。
表 5: 不同训练集大小的分类性能
- 目的:研究训练集大小对分类性能的影响。
- 内容:
- training set size:列出了使用不同比例ImageNet数据进行训练的设置。
- accuracy:展示了使用ResNet-18进行训练时的分类准确率。
- 结论:更大的训练集可以提高分类性能,说明作者提出的方法可以从更多的无标签数据中受益。
表 6: PASCAL VOC 2007 数据集上的目标检测性能
- 目的:评估在PASCAL VOC 2007数据集上,使用在ImageNet上预训练的特征进行目标检测的性能。
- 内容:
- Method:列出了不同的预训练方法。
- mAP:展示了不同方法在目标检测任务上的平均精度均值(mean Average Precision)。
- 结论:作者提出的方法在目标检测任务上取得了很好的性能,与有监督预训练方法相比也具有竞争力。
二、Inva Spread
《Unsupervised Embedding Learning via Invariant and Spreading Instance Feature》, 文章主要研究了无监督嵌入学习问题,即在没有类别标签的情况下,如何学习能够在低维嵌入空间中有效度量样本之间相似性的特征。
特点:不需要借助额外的数据结构去存储大量的负样本,正负样本来自同一个 minibatch (可以理解为 SimCLR 的前身)
-
代理任务:Instance Discrimination (个体判别)
-
从同一个 minibatch 中选择正负样本,是为了可以用一个编码器做 end-to-end 训练,但同时为了保证模型性能,batch size必须设置得足够大
-
结果不够好的原因在于:负样本的数量不够多,所维护的由负样本组成的字典不够大
在MOCo中,代理判别任务的具体做法是:
- 定义正负样本:对于没有标签的数据集中的每一张图片,通过随机剪裁和数据增广得到两张正样本(因为它们来自同一张图片,语义信息相同),而数据集中的其他图片则被视为负样本。
- 训练过程:将正样本和负样本输入编码器,得到特征输出。对比学习的目标是让正样本和锚点(anchor)的特征尽可能接近,而负样本与锚点的特征尽可能远离。
- 动态字典构建:MOCo使用队列(queue)和移动平均编码器(moving-averaged encoder)来构建动态字典。队列用于存储大量的负样本,而移动平均编码器则确保字典中的特征在训练过程中保持一致性。
1.1 文章摘要
摘要:
- 无监督嵌入学习要求在低维嵌入空间中对样本之间的相似性进行有效度量。
- 受到有监督学习中观察到的正样本集中和负样本分离的启发,提出了一种利用实例级监督来近似这些属性的方法,旨在学习数据增强不变和实例扩散的特征。
- 提出了一种基于实例特征的新型softmax嵌入方法,该方法直接在softmax函数之上优化“真实”实例特征。
- 该方法在学习和分类速度上大大超过了现有方法,并且在有见过和未见过的测试类别上都表现良好。
重点:
- 引言:介绍了深度嵌入学习的重要性以及无监督学习方法面临的挑战。
- 相关工作:讨论了无监督特征学习、深度嵌入学习以及无监督嵌入学习的相关研究。
- 提出的方法:
- 提出了一种基于实例特征的softmax嵌入方法,通过直接优化实例特征来实现数据增强不变性和实例扩散性。
- 使用孪生网络训练策略,将多类分类问题转换为二类分类问题,并使用最大似然估计进行优化。
- 通过实验验证了所提方法在图像分类和嵌入学习任务上的有效性。
1.2 实验结果
- 实验结果:
- 在CIFAR-10和STL-10数据集上进行了实验,证明了所提方法在有监督和无监督学习任务中的有效性。
- 在未见过的测试类别上进行了实验,展示了模型在新类别上的泛化能力。
- 结论:提出了一种通过学习数据增强不变和实例扩散特征来解决无监督嵌入学习问题的方法,并通过实验验证了其有效性。
实验结果:
- 在CIFAR-10数据集上,所提方法达到了83.6%的kNN准确率,超过了其他无监督学习方法。
- 在STL-10数据集上,使用线性分类器和kNN分类器都取得了最佳性能。
- 在CUB200、Product和Car196数据集上,所提方法在未见过的测试类别上展现了良好的检索性能和聚类质量。
致谢:文章最后感谢了香港研究资助局(RGC/HKBU12200518)和美国空军研究实验室(AFRL)及国防高级研究计划局(DARPA)的支持。
1.3 文章图示
图 1: 基本思想的图示
- 目的:说明文章提出方法的基本思想。
- 内容:
- 展示了一个卷积神经网络(CNN)模型,输入图像并输出特征。
- 强调了同一实例在不同数据增强下输出特征的不变性,以及不同图像实例特征之间的分离。
- 结论:该图展示了如何通过数据增强来学习无监督的嵌入特征。
图 2: 孪生网络的框架图
- 目的:展示使用孪生网络的无监督学习方法的框架。
- 内容:
- 输入图像被送入CNN的两个分支。
- 一个分支对原始图像进行处理,另一个分支对其数据增强版本进行处理。
- 通过这种方式学习到的特征应该满足:同一图像的不同增强版本特征应该接近,而不同图像实例的特征应该分散。
- 结论:该图展示了如何通过孪生网络结构来实现文章提出的方法。
孪生网络: 将两个输入样本同时输入到两个完全相同的神经网络中,这两个网络分别提取输入样本的特征,并得到各自的表示向量。
相似度计算:使用一种度量方法(如欧氏距离、余弦相似度等)计算这两个表示向量之间的相似度得分。
分类或回归:根据相似度得分进行分类或回归等操作。例如,在人脸识别任务中,如果两个输入样本的相似度得分较高,则可能将它们视为同一人;在目标跟踪任务中,可以根据相似度得分来确定跟踪目标的位置。
表 1: CIFAR-10 数据集上的 kNN 准确率
- 目的:比较不同方法在 CIFAR-10 数据集上的性能。
- 内容:
- 列出了随机初始化的CNN、DeepCluster、Exemplar CNN、NPSoftmax、NCE 和 Triplet 损失等方法。
- 展示了每种方法使用 kNN 分类器的准确率。
- 结论:提出的方法在 CIFAR-10 数据集上达到了最高的 kNN 准确率,表明其学习到的特征具有更好的区分性。
图 3: CIFAR-10 数据集上的训练效率
- 目的:评估不同方法的学习速度。
- 内容:
- 展示了不同方法在每个训练周期的 kNN 准确率。
- 结论:提出的方法只需要很少的训练周期就能达到较高的准确率,表明其具有更快的学习速度。
训练周期和准确率的关系
图 4: CUB200 数据集上的检索结果
- 目的:展示在不同训练周期的检索结果。
- 内容:
- 展示了一些查询图像以及检索到的正例和反例。
- 结论:随着训练的进行,检索结果的质量逐渐提高,表明学习到的特征越来越好。
图 5: CIFAR-10 数据集上的余弦相似度分布
- 目的:展示学习到的特征的区分性。
- 内容:
- 展示了不同方法学习到的特征向量的余弦相似度分布。
- 结论:提出的方法能够更好地区分正例和反例,表明其学习到的特征具有更好的区分性。
图 6: CIFAR-10 数据集上不同属性的余弦相似度分布
- 目的:展示学习到的特征对不同属性的区分性。
- 内容:
- 展示了基于不同属性(而不仅仅是语义标签)的余弦相似度分布。
- 结论:提出的方法不仅能够区分不同的语义类别,还能够区分其他属性,表明了其特征的泛化能力。