
摘要
我们介绍了TWIST,这是一种通过端到端分类大规模未标记数据集来实现自监督表示学习的简单且理论可解释的方法。我们使用一个以softmax操作结尾的孪生网络(siamese network)来生成两个增强图像的双类别分布。在没有监督的情况下,我们强制不同增强图像的类别分布保持一致。然而,仅仅最小化增强图像之间的差异会导致退化解,即对所有图像输出相同的类别概率分布。在这种情况下,输入图像的信息将完全丢失。为了解决这一问题,我们提出最大化输入与类别预测之间的互信息。具体而言,我们最小化每个样本分布的熵,以使每个样本的类别预测更加确定;同时最大化平均分布的熵,以使不同样本的预测结果更加多样化。通过这种方式,TWIST可以自然地避免退化解,而无需特别设计如非对称网络、停止梯度操作或动量编码器等机制。因此,TWIST在广泛的任务中超越了现有最先进的方法。特别是在半监督学习方面,TWIST表现尤为出色,在使用ResNet-50作为骨干网络的情况下,仅利用1%的ImageNet标签即可达到61.2%的Top-1准确率,比之前的最佳结果绝对提升了6.2%。代码和预训练模型可在以下地址获取:https://github.com/bytedance/TWIST
代码仓库
beresandras/contrastive-classification-keras
tf
GitHub 中提及
bytedance/TWIST
官方
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| fine-grained-image-classification-on-caltech | TWIST (ResNet-50 ) | Accuracy: 93.5% Top-1 Error Rate: 6.5% |
| fine-grained-image-classification-on-sun397 | TWIST (ResNet-50) | Accuracy: 67.4 |
| image-classification-on-dtd | TWIST (ResNet-50) | Accuracy: 76.6 |
| image-classification-on-food-101-1 | TWIST (ResNet-50) | Accuracy (%): 89.3 |
| image-classification-on-oxford-iiit-pets | TWIST (ResNet-50) | Accuracy: 94.5 |
| semi-supervised-image-classification-on-1 | TWIST (ResNet-50 x2) | Top 1 Accuracy: 67.2% Top 5 Accuracy: 88.2% |
| semi-supervised-image-classification-on-2 | TWIST (ResNet-50 x2) | Top 1 Accuracy: 75.3% Top 5 Accuracy: 92.8% |
| unsupervised-image-classification-on-imagenet | TWIST (ResNet-50) | ARI: 30.0 Accuracy (%): 40.6 |