Solving Inefficiency of Self-supervised Representation Learning 论文笔记

bibtex
1
2
3
4
5
6
7
8
@InProceedings{Wang_2021_ICCV,
author = {Wang, Guangrun and Wang, Keze and Wang, Guangcong and Torr, Philip H.S. and Lin, Liang},
title = {Solving Inefficiency of Self-Supervised Representation Learning},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month = {October},
year = {2021},
pages = {9505-9515}
}

Introduction

知名的自监督方法:MoCo v1/v2, SimCLR, BYOL, SimSiam

自监督模型较有监督模型花费10倍的时间,在ImageNet上训练ResNet-50通常要100轮,但用SimCLR和BYOL方式训练ResNet-50需要1000轮,用MoCo v2需要800轮。

自监督模型的学习效率对比

作者提出自监督方法存在着两种问题,即欠聚集问题(Under-clustering)和过聚集问题(Over-clustering)。自监督训练的目标是减少正例之间的距离,增大负例之间的距离。欠聚集问题会导致模型难以发现不同类间样本的相异处,过聚集问题会导致模型到有害的不必要的表示学习。作者认为现有的自监督方法难以解决过聚集以及欠聚集问题,所以学习效率依然很低。

欠聚集问题
理想的聚集效果
过聚合问题

作者提出了一种简单的truncated triplet loss,能够最大化每个三胞胎单元中的正对与负对,同时改善了传统triplet loss存在的只解决欠聚集而难以解决过聚集的问题。

作者提出的创新点

  • 作者分析了现存最好性能的对比学习方法并推断出其学习效率差的原因是欠聚合与过聚合问题,会导致不必要的有害的表示学习,导致模型仅仅能够记住数据本身。
  • 为了强调欠聚合与过聚合问题,作者提出了使用truncated triplet loss的自监督框架。作者使用triplet loss来突出大量负例的作用从而避免欠聚合,同时用截断的方法来避免模型的过聚合。
  • 作者提高了自监督模型的学习效率,在几种大规模数据集(ImageNet、SYSU-30k、COCO 2017)以及不同的下游任务上达到了SOTA的性能。
Contrastive Learning

SimCLR, Mean Teacher (NIPS 2017), MoCo v1/v2, Exemplar-CNN, BYOL, SimSiam, False Negative Cancellation, Debiased CL, Hard Negative Samples. 作者认为上述的改进方法中Loss都过于复杂,作者认为提出的truncated triplet loss非常简单

Triplet Loss

最大化正对与负对间的相对距离,传统的triplet loss会导致过聚集,作者利用伯努利分布模型保证使用truncated triplet loss能够解决过聚集问题。

Self-supervised Representation Learning

InfoNCE

作为1个样本,具有1个正样本,以及个负样本。InfoNCE计算他们之间的内积并用softmax进行标准化: InfoNCE被记作: 其中,是温度系数(temperature),能够被解释为促使

接近1,并促使接近0。

欠聚集

不充足的正例或负例会导致欠聚集,不同类别会出现交叉的现象。

过聚集

压倒性的、过多的负例会导致过聚集,可能会把很少量的样本聚集为一组。

理想情况

使用正确数目的负例来进行训练,能够确保相同类别的能够被聚集在一组,同时不同类别之间存在一定间距。

Triplet Loss

对三元组,计算最古老的triplet loss为: 其中,是距离度量函数(例如余弦距离或者欧氏距离),用来决定是否丢弃三元组。通常利用丢弃简单数据的方法使梯度更加关注到更难的数据上,使用最难识别的负例来计算损失,即对于最难负例,将triplet loss定义为: 对所有满足,即时能够确保所有都是能够满足这个小于关系。作者认为使用triplet loss能够降低欠聚集的风险,但也增大了过聚集的风险。

truncated triplet loss示意

作者提出了truncated triplet loss,指出选用具有代表性的负例计入损失, 其中, 用以下步骤得到:

  1. 计算出所有负例与样本的距离
  2. 用升序排序
  3. 用两种方式获得
    • rank-k triplet loss,即
    • smoothed-rank-k triplet loss,即

作者实际采用余弦距离作为,将设为2,并对比了rank-k triplet loss与smoothed-rank-k triplet loss,发现smoothed-rank-k triplet loss的效果更好。作者借助伯努利概率模型对该方法进行论证,认为该方法能够避免负例与样本属于同一分类的情况发生,同时能够通过伯努利模型确定最适合的值。

Main results

数据增广:randomly cropping, randomly resizing, randomly flipping horizontally, arbitrary gray scaling, stochastic color jittering, Gaussian blurring, and solarization.

其他:104张图片/GPU/批;最大100轮训练;学习率从4.8开始用cosine annealing下降;优化器用LARS,weight decay为1e-6,momentum为0.9;backbone为ResNet-50.

实验部分不赘述,详见论文原文。

下载


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!