Big Self-Supervised Models are Strong Semi-Supervised Learners论文研读

论文

摘要

本文针对深度学习中数据集标签不平衡的问题,即大量的未标注数据和少量标注数据,作者提出了一种弱监督的模型SimCLRv2(基于SimCLRv1)。作者认为这种庞大的、极深的网络更能够在自监督的学习中获得提升。论文中的思想可以总结为一下三步:
1. 使用ResNet作为backbone搭建大型的SimCLRv2,进行无监督的预训练
2. 然后在少量有标注的数据上进行有监督的finetune
3. 再通过未标注的数据对模型进行压缩并迁移到特定任务上
实验结果表明他们的模型对比sota是有很大的提升的
在这里插入图片描述

方法介绍

自监督的预训练

自监督的预训练是为了学习图片中的特征表达,这里采用的是SimCLR中的对比训练(contrastive learning)的方法,即,最大化图片与其增强后(旋转、放缩、颜色变换等)之间的关联程度,通过优化在其隐空间上的对比损失(contrastive loss),其公式如下
contrastive loss
其中sim()表示的是两个向量的余弦相似度。网络结构如下:
SimCLR结构并不复杂,在预训练(左边)包含一个encoder(红色)得到输入数据在低维隐空间的特征表达,再经过几层MLP(黄色,projection head)得到最终特征表达;预训练完成后,再选取一定比例的标注数据进行有监督的微调(中间部分);最终迁移到指定任务上进行refine和压缩,这里使用之前微调过的teacher net来计算label并用来训练一个特定任务的student net,以此来达到一个压缩的目的

在SimCLRv2中,相比v1有一下几点改进

  • V2大大加深了网络的规模,最大的规模达到了152层的ResNet,3倍大小的通道数以及加入了SK模块(Selective Kernels),据说在1%标注数据的finetune下可以达到29%的性能提升
  • 首先v2使用了更深的projection head;其次,相比于v1在预训练完成后直接抛弃projection head,v2保留了几层用于finetune,这也是保留了一些在预训练中提取到的特征
  • 使用了一种记忆机制(参考这篇论文),设计一个记忆网络,其输出作为负样本缓存下来用以训练

finetune

这部分将前面预训练好的模型喂进一小部分标注数据进行微调,其中的一点就是前面所说的保留projection head的第一层而不是全部舍弃,这样做有大概14个点的性能提升。

自训练和压缩

这部分的工作就是将前面训练好的模型迁移到特定任务上了。如摘要中所说的,首先将大量未标注的数据喂进训练好的模型teacher net中生成标签,再利用生成的标签去训练一个student net来进行特征的任务,比如文中的在ImageNet上的分类任务,对应的损失函数就是交叉熵,如下:

在这里插入图片描述由teacher net生成,或者即由student net生成。当标注数据占一定比例的时候,同样可以将有标注的数据加入训练,可以改变目标函数的形式如下:
在这里插入图片描述α表示权重,有点类似于focal loss的形式。

经验性探究

实验与实施的细节

预训练中实验一共使用了128张云TPU,batch_size为4096和全局BN,共800个epoch,在前5%的epoch中使用了线性增长的学习率直到6.4(0.1*sqrt(batch_size)),而后使用余弦下降,下降率为1e-4
在finetune中使用固定的学习率,等等,不再赘述;
压缩和自训练过程,student net可以采用与teacher net一样的模型也可以是比较小的,训练策略与预训练中的一样

网络越大越是能够有效利用标签

更大/更深的projection head能够提升特征表达的学习

使用无标注的数据能够提升弱监督学习

讨论

这篇文章提出的模型并不复杂,论文指出了大模型在任务无关的学习中能够更加有效的学习一些普遍的特征,另外论文也指出提高参数的有效性也是提高性能的一个重要的维度,不能盲目的增加参数量。个人总结一下大概就是深度学习要想提高性能指标的前提是增加网络的规模,在此前提下再加上一些骚操作,如文中的SK、memory等等以及适当的学习策略,因此感觉这篇文章更多的是介绍一种模型设计的思路,当你有了新的想法或者工具的时候,如何将其更好的应用到自己的任务,把指标刷上去,可以借鉴文章中的方法

https://arxiv.org/pdf/2006.10029.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值