自监督学习算法--Barlow Twins

Abstract

  • SSL需要学习对输入的扰动(可以理解为一张图像的不同视角)保持不变的编码(embedding)。但是这会造成平凡常数解(trivial constant solutions)。
  • 论文提出了一种目标函数可以避免这种崩溃,将一张图像的两个视角,传送两个相同网络得到的输出,计算二者的互相关矩阵(cross-correlation matrix),使得她尽可能接近一个单位矩阵
  • Twins不需要大batchsize,predictor network, gradient stopping,权重动量更新等操作。

Introduction

  • 现有的对比式自监督学习希望能够对同一张图像的不同视角学习到相同的表征,实现的方法是对同一图像的不同视角用Siamese networks 的变体学习到的表征,最大化二者相似度。
  • 这一问题存在平凡解(trivial solutions),比如两个网络输出常数作为表征。现有方法借助一系列方式解决此问题。
  • 本文设计了一种目标函数,对两个表征的互相关矩阵(cross-correlation matrix),约束她尽可能接近一个单位矩阵。从这个角度来解决平凡解的问题。
  • Twins 不需要大batch,predictor network, momentum encoders,stop-gradients。高维度的特征编码对Twins的性能有帮助。

Method

  • 损失函数的设计:目的是对角线上的元素接近1,其他位置元素接近0.


    image.png

    C是用ZA ZB计算得到的互相关矩阵,同一batch的C的计算方法如下:


    image.png
  • 相对与基于INFONCE的方法,twins有两个优点。1)不需要的大量的负样本,也就不需要大的batch,2)能从高维度的embeding中受益。
  • 数据增强细节:采用random cropping, resizing to 224 × 224,
    horizontal flipping, color jittering, converting to grayscale,
    Gaussian blurring, and solarization.前两个多做,后5个随机。
  • 模型架构细节:编码器采用ResNet-50 (无最后的分类层,2048个输出单元)+投射网络(三个线性层,8192个输出神经元)。投射器的前两层跟着BN和rectified linear units。编码器的输出称为representations,投射头的输出称为embeddings。representations用于下游任务。embeddings使用本文的损失函数进行优化。


    image.png
  • 优化。与BYOL类似,使用LARS优化器,1000 epochs,2048batch。batch小如256时模型也能很好工作。训练使用32 V100 GPUs 分布训练124小时。 相同硬件BYOLbatch为4096,训练113小时。

Result

在ImageNet ILSVRC-2012 dataset上用自监督的方法进行预训练,在图像分类和目标检测任务上进行验证。

  • Linear evaluation on ImageNet
    Top1 73.2%


    image.png
  • IMAGENET 半监督性能
    用预训练的twins在imagnet的1%和10%有标签的子集进行半监督学习测试。


    image.png
  • 在image net预训练应用在其他分类数据集上的迁移性能


    image.png
  • 目标检测和分割的迁移性能
    将卷积层参数进行调参应用在检测与分割任务。
    (与常用的检测分割性能差异还是蛮大的,对比的监督型方法没啥参考价值。)


    image.png
  • 消融实验
    对小bantch_size不敏感,其他基于INFOnce损失函数的方法,batch越高,性能越高。


    image.png

    对于去掉某些数据增强方法敏感,与simclr类似,不如byol鲁棒。


    image.png

    投射头的维度越大,性能越强。(但是未做更多batch以超过byol的实验,可能是更大的batch会带来不利的性能表现)
    image.png

    其他方法依赖停止梯度,增加预测网络等方法提升性能,实验证明twins不需要这些技术,并且增加这些结构反而会降低模型性能。
    image.png

你可能感兴趣的:(自监督学习算法--Barlow Twins)