前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >何凯明团队又出新论文!北大、上交校友教你用ViT做迁移学习

何凯明团队又出新论文!北大、上交校友教你用ViT做迁移学习

作者头像
磐创AI
发布2021-12-01 17:15:12
8320
发布2021-12-01 17:15:12
举报
磐创AI分享 来源 | 新智元 编辑 | LRS 好困 小咸鱼
【导读】何凯明团队又发新论文了!这次他们研究的是如何将预训练好的ViT迁移到检测模型上,使标准ViT模型能够作为Mask R-CNN的骨干使用。结果表明,与有监督和先前的自我监督的预训练方法相比,AP box绝对值增加了4%。

模型参数的初始化一直是一个重要的研究问题,一个合适的初始化能够提升模型性能,加速收敛找到最优解。

由于不需要训练数据,所以无监督或自监督训练后的模型,能够很自然地作为下游任务(如图像分类、目标检测)模型微调前的初始化参数。

无监督算法的性能由微调后模型在下游任务的性能,如准确率、收敛速度等等相比基线模型是否有提高来进行判断。

在计算机视觉领域,由于CNN在过去的统治力,所以无监督深度学习通常都是基于标准卷积网络模型。例如将ResNet预训练后的模型迁移到其他基于CNN模型也是相当容易且直接的。

但现在时代变了,Vision Transformer(ViT)成为了新的主流模型。

虽然迁移其他无监督ViT 模型的参数在大的方法上和CNN 没有什么区别,但在迁移细节上还没有相关研究。

过去十多年,目标检测一直是视觉领域的核心任务,但在ViT时代还没有太多的研究成果。

结合这两个出发点,何凯明在FAIR最新研究以目标检测任务为基础,研究了标准ViT模型的迁移方法。

https://arxiv.org/abs/2111.11429

文章的第一作者是Yanghao Li,目前是Facebook AI Research(FAIR)的研究工程师,分别于2015年和2018年在北京大学获得学士和硕士学位,主要研究领域是计算机视觉和深度学习。

第二作者是Saining Xie,目前是FAIR的研究科学家。博士毕业于加州大学圣地亚哥分校,2013年毕业于上海交通大学ACM荣誉班,获学士学位。研究兴趣包括机器学习(主要是深度学习)及其在计算机视觉中的应用。

研究方法

文中采用何凯明发布于2017年的目标检测模型Mask R-CNN作为基础模型,它也是Cascade R-CNN 和HTC/HTC++的底层模型,对于研究目标检测迁移学习来说是一个非常合适的模型。

但把ViT作为Mask R-CNN的骨干网络还存在两个问题:

一、将ViT与特征金字塔网络(feature pyramid network, FPN)相匹配

Mask R-CNN的骨干网络既可以是单尺度(single-scale)也可以是多尺度特征输入到FPN中,并且FPN能提供更好的目标检测结果,更少的运行时间和内存开销。

但使用FPN存在一个问题,因为ViT仅能输出单尺度特征,而非CNN的多尺度特征 。为解决这个问题,研究人员使用了XCiT中的技术对ViT中间特征进行上采样和下采样,以提供四种不同分辨率的特征。

第一个模块采用两个步长为2的转置卷积(transposed convolution)进行4倍上采样;然后采用一个步长为2*2的转置卷积进行两倍上采样;最后一个模块采用步长为2的2*2 max pooling进行下采样。

每个模块都不会改变ViT的通道维度数。

假设patch size为16,那这些模块能够将输出步长为4、8、16、32的图像特征,然后送入到FPN中。

虽然相关研究 Swin与MViT通过修改VIT架构解决了ViT无法输出多尺度特征的问题。这种处理方式也是一个重要的研究方向,但它与ViT的简单设计相悖,会阻碍新的无监督学习方法的探索研究。

二、降低内存消耗和时间复杂度

Transformer 的众所周知的问题就是自注意机制的时间复杂度太高,把ViT放到Mask R-CNN 中也会导致这个问题。

假设每个patch的尺寸为h×w,且无重合。

在预训练过程中,该复杂度是可控的,在224×224图像中, h=w=14是一个常用的设置。但在目标检测中,标准图像尺寸为1024 × 1024,将近21倍多的像素和图像patch。由于自注意力的二次复杂度,哪怕基线ViT-B也需要占用20-30G GPU显存。

研究采用受限的(Windowed)self-attention,通过将全局计算都替换为局部计算来降低空间与时间复杂度。

将h×w的patch图像分割成r×r非重叠patch窗口,并在每个窗口内独立计算自注意力,这种处理方式可以大幅降低空间复杂度与时间复杂度。

但windowed self-attention的一个缺陷在于:骨干网络不能跨窗口聚合信息,所以需要每隔d/4个块添加一个全局自注意力模块 。

相比于原始Mask R-CNN,研究人员对其中几个模块进行了修改。

  1. FPN中的卷积后加入Batch Normalization;
  2. 在RPN(region proposal network)中使用两个卷积;
  3. 采用四个带BN的卷积后接一个全连接用来RoI (reigon-of-interest) 分类与box回归头,而非原始的两层无normalization的MLP;
  4. 标准mask头中的卷积后加入BN

相比原始训练机制,研究人员采用了从头开始训练+更长训练周期的训练机制。

尽管研究人员在实验过程中让超参数尽可能少,并且不使用额外的数据增强和正则化技术,但drop path regularization对于ViT骨干网络是非常有效的,所以,真香。

总之在训练过程中的使用LSJ数据增广(分辨率,尺度范围[0.1, 2.0]),AdamW+Cosine学习率衰减+linear warmup,drop path正则;

训练过程使用了64个Nvidia V100-32GB的GPU,batch size为64。当采用预训练初始模型参数时,微调100 个epoch;当从头开始训练时,训练400个epoch。

为使上述训练机制适用于同模型,研究人员对学习率lr、权重衰减(weight decay, wd)以及drop path rate(dp)三个超参进行微调,同时保持其他不变。采用ViT-B+MoCoV3进行了大量实验以估计合理的超参范围:

  1. 对每个初始化,固定dp=0.0,对lr与wd采用grid搜索,固定搜索中心为,以此为中心搜索;
  2. 对于ViT-B,从中选择dp(预训练参数时,训练50epoch;从头开始时,则训练100epoch,dp=0.1为最优选择;
  3. 对于ViT-L,采用了ViT-B的最优lr与wd,发现dp=0.3是最佳选择。

实验部分

研究人员对比了五种网络初始化的方法:

  1. Random:即所有参数均随机初始化,无预训练;
  2. Supervised:即ViT骨干在ImageNet上通过监督方式预训练,分别为300和200epoch;
  3. MoCoV3:即在ImageNet上采用无监督方式预训练ViT-B与ViT-L,300epoch;
  4. BEiT:即采用BEiT方式对ViT-B与ViT-L预训练,800epoch;
  5. MAE:使用MAE 无监督方法在ImageNet-1K上训练后得到ViT-B和ViT-L的权重。

虽然实验尽可能对所有方法都公平,但还是有一些因素导致了不公平:

  1. 不同的预训练方法采用了不同的epoch;
  2. BEiT采用可学习相对位置bias,而非其他方法中的绝对位置embedding;
  3. BEiT在预训练过程中采用了layer scale,而其他方法没采用;
  4. 研究人员尝试对预训练数据标准化,而BEiT额外采用了DALL-E中的discrete VAE,在约2.5亿专有和未公开图像上训练作为图像tokenizer。

在COCO目标检测和实例分割上进行实验的结果可以看到:

  1. 无论初始化过程如何,文中提出的Mask R-CNN训练过程都更加平滑,甚至它都不需要stabilizing的技术手段,如gradient clipping。
  2. 相比有监督训练,从头开始训练具有1.4倍的性能提升。实验结果也证明了有监督预训练并不一定比随机初始化更强;
  3. 基于对比学习的MoCoV3具有与监督预训练相当的性能;
  4. 对于ViT-B来说,BEiT与MAE均优于随机初始化与有监督预训练;
  5. 对于ViT-L,BEiT与MAE带来的性能提升进一步扩大。

从收敛性上看,相比随机初始化,预训练初始化可以显著加速收敛过程,大约加速4倍 。

还有两个需要注意的地方是:

  1. 理想情况下,每个训练过程的drop path rate都应进行调整,因为可以观察到,当模型接受更长时间的训练时,最佳dp值可能需要增加。
  2. 在所有情况下都可以通过训练来获得更好的结果,例如加长训练时间,使用更复杂的训练流程,使用更好的正则化和更大的数据增强。

当然,由于COCO数据集的训练集非常大,即便随机初始化也能获得比较好,甚至更好的结果,这就导致迁移学习比较尴尬了。

研究人员还发现,现有的方法如有监督IN1k、MoCoV3无监督预训练的性能反而会弱于随机初始化基线方案。并且已有的无监督迁移学习改进对比的均为监督预训练,并不包含随机初始化方案。

此外,其他研究人员都是采用了较弱的模型,因而具有更低的结果,这就导致不确定如何将已有方法迁移到sota 模型中。

由于预训练,MAE与BEiT提供了首个令人信服的COCO数据集上的性能提升,并且这些基于masking的方案会随模型大小提升进一步改善检测迁移学习能力的潜力 ,而有监督预训练与MoCoV3等初始化方式上并没有观察到这种结论。

结论

论文提出的方法使标准的ViT模型能够作为骨干在Mask R-CNN中得到实际的应用。

这些方法产生了可接受的训练内存和时间,同时也在COCO上取得了优异的结果,而且还不会涉及到复杂的扩展。

通过对五种不同的ViT初始化方法进行比较可以发现,虽然随机初始化要比预训练的初始化长大约4倍,但相比于比ImageNet-1k的监督预训练,可以取得更高的AP。

此外,MoCoV3作为对比性无监督学习的代表,其表现几乎与监督性预训练相同,因此也比随机初始化差。

更重要的是,论文发现了一个令人兴奋的新结果:基于masking的方法(BEiT和MAE)比有监督和随机初始化都有更大的收益,而且这些收益会随着模型大小的增大而增加。

参考资料:

https://arxiv.org/abs/2111.11429

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 磐创AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【导读】何凯明团队又发新论文了!这次他们研究的是如何将预训练好的ViT迁移到检测模型上,使标准ViT模型能够作为Mask R-CNN的骨干使用。结果表明,与有监督和先前的自我监督的预训练方法相比,AP box绝对值增加了4%。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档