
摘要
本文提出了一种名为原型对比学习(Prototypical Contrastive Learning, PCL)的无监督表示学习方法,旨在解决实例级对比学习的根本性局限。PCL不仅能够学习用于实例区分任务的低层特征,更重要的是,它能够将数据的语义结构隐式地编码到所学习的嵌入空间中。具体而言,我们引入原型(prototypes)作为隐变量,在期望最大化(Expectation-Maximization, EM)框架下辅助实现网络参数的最大似然估计。在迭代过程中,E步通过聚类确定原型的分布,M步则通过对比学习优化网络参数。为此,我们提出了ProtoNCE损失函数,作为对比学习中InfoNCE损失的泛化形式,该损失函数促使表示向其所属原型更紧密聚集。在多个基准测试中,PCL显著优于当前最先进的实例级对比学习方法,尤其在低资源迁移学习场景下展现出显著性能提升。相关代码与预训练模型已开源,可访问 https://github.com/salesforce/PCL。
代码仓库
salesforce/MoPro
pytorch
GitHub 中提及
salesforce/PCL
官方
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| contrastive-learning-on-imagenet-1k | ResNet50 (v2) | ImageNet Top-1 Accuracy: 67.6 |
| contrastive-learning-on-imagenet-1k | ResNet50 | ImageNet Top-1 Accuracy: 61.5 |
| self-supervised-image-classification-on | PCL (ResNet-50) | Number of Params: 25M Top 1 Accuracy: 65.9% |
| semi-supervised-image-classification-on-1 | PCL (ResNet-50) | Top 5 Accuracy: 75.6% |