对比学习

Introduction

对比学习是一种为机器学习模型描述相似和不同事物的任务的方法。它试图教机器区分相似和不同的事物。

对比学习框架

  • 对比学习不需要标签,自动就能学。
  • 不是分类任务
  • 目标是判断是不是同一个(是不是自己),自己与自己互为正样本,自己与其它互为负样本
  • 训练时是需要负样本的,不然可能会导致模型坍塌
  • 对比学习可以用来提特征
  • 对比学习相比有监督的学习,其泛化能力更强一些

Sourece Codes

Papers

2020 SimCLR

[1] T. Chen, S. Kornblith, M. Norouzi, and G. Hinton, A Simple Framework for Contrastive Learning of Visual Representations, Jun. 30, 2020, arXiv: arXiv:2002.05709. https://github.com/google-research/simclr

SimCLR:一个简单的视觉表示对比学习框架,不仅比以前的工作更出色,而且也更简单,既不需要专门的架构,也不需要储存库。

SimCLR Framework

数据增强:可以是旋转、平移、加噪声、裁减、改变颜色等等。 $x_i$: 是随机裁减之后的 $x_j$: 改变颜色并平移 两者均是由原始数据变换过来的,它们都是正样本。

下图可以得到两对正样本,四对负样本。

删除对角线,对角线不需要计算,不需要训练

损失函数

分子是考虑同类,分母是异类

$\tau$: 是个小于1的数,除以小数,数值会放大

性能:

SimCLRv2

[1] T. Chen, S. Kornblith, K. Swersky, M. Norouzi, and G. Hinton, Big Self-Supervised Models are Strong Semi-Supervised Learners, Oct. 25, 2020, arXiv: arXiv:2006.10029.

  • 模型更大
  • 加了蒸馏

2020 Contrastive Multiview Coding

[1] Y. Tian, D. Krishnan, and P. Isola, Contrastive Multiview Coding, Dec. 18, 2020, arXiv: arXiv:1906.05849.

2020 BYOL

[1] J.-B. Grill et al., Bootstrap your own latent: A new approach to self-supervised Learning, Sep. 10, 2020, arXiv: arXiv:2006.07733.

不需要负样本也能做对比学习

虽然没有显式的使用负样本,但是在BN模块的计算中使用了负样本,如果将BN去掉,模型就会崩塌。

2022 SimCSE

使用Dropout来生成正样本

References

comments powered by Disqus