FAIR新作:卷积可以让视觉Transformer性能更强!训练更稳定!

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

转载自:Smarter

之前的一些研究发现,ViT的优化要求十分苛刻,不仅需要精确的learning rate和weight decay,还需要使用AdamW优化器,并且收敛非常的慢。其中最近的MoCov3(详细可看之前的文章MoCo三部曲)中提到ViT架构会导致训练过程中出现衰退现象。

MoCov3通过绘制first layer和last layer的梯度范数,发现first layer的尖峰出现的比last layer更早,从而推测出patch projection是产生衰退的关键,于是通过固定住patch projection(即本文的patchify stem)的参数,缓解了衰退现象。

相比之前hybrid CNN/ViT的研究,本文的重点是探究ViT优化不稳定的本质原因,convoluational stem替换patchify stem对于ViT优化稳定性的影响。

Early Convolutions Help Transformers See Better

论文:https://arxiv.org/abs/2106.14881

本文发现,用convoluational stem替换patchify stem后,大约使用5个convolution就可以在SGD优化器上优化,精度不会大幅度下降,并且对于learning rate和weight decay参数不敏感,训练的收敛速度更快。另外,在模型复杂性(1G到36G)和数据集规模(ImageNet-1k到ImageNet-21k)的大范围内,ImageNet的top-1精度可以持续提升。

01

Early convolutions help transformers see better

ViT_P原始的ViT将输入图片划分成无重叠的pxp个patch,然后对每个patch进行patch projection转化成d为的feature vector。假设输入的图片尺寸为224x224,每个patch的尺寸为p=16,那么patch的数量为14x14,patch projection等价于一个16x16大小,步长为16的大卷积核。本文为了方便起见,将ViT构造成1GF,2GF,4GF,8GF等设置,记作   模型。本文将ViT的patchify stem替换成convolutional stem,记作   模型。

Convolutional stem design

为了跟patchify stem的输出维度对齐,convolutional stem通过3x3卷积快速下采样到14x14。具体的,设置4个3x3大小,步长为2的卷积和一个1x1,步长为1的卷积,至少需要5个卷积,convolutional stem的输出可以和patchify stem的输出维度保持一致。为了使   和   总体计算量保持一致,   通过改变通道数保证convolutional stem的计算量约等于1个 transformer block,然后减去后面的一个transformer block。

如表格所示,左边是   模型,右边是   模型,左右按行保持计算量近似相等。左边蓝色数字表示   相比于原始ViT的修改,右边的蓝色表示   相较于   移除1个transformer block的修改。

02

核心实验

本文通过3个稳定性实验,一个最佳性能实验完美展现了convolutional stem相较于patchify stem的优越性。4个结论:

1.   收敛更快

2.   可以使用SGD优化

3.   对learning rate和weight decay更稳定

4.   在ImageNet上提升了1-2个点

Training Length Stability

比起   ,   的收敛速度更快。

Optimizer Stability

   无论是AdamW还是SGD优化器,都能够稳定收敛。

Learning Rate and Weight Decay Stability

   在改变learning rate和weight decay时,训练的稳定性都比   要好,并且跟CNN接近。

Peak Performance

   的最优性能都要优于   ,在ImageNet-1k时,   最优性能略差于RegNet,但是在ImageNet-21k时,   和   的最优性能都要好于RegNet。这也说明了大数据量下ViT更有优势。

03

总结

本文证明了ViT模型的优化不稳定是由于ViT的patchify stem的非常规大步长、大卷积核引起的。仅仅通过将ViT的patchify stem修改成convolutional stem,就能够提高ViT的稳定性和鲁棒性,非常的简单实用。但是为什么convolutional stem比patchify stem更好,还需要进一步的理论研究。最后作者还提到72GF的模型虽然精度有所改善,但是仍然会出现一种新的不稳定现象,无论使用什么stem,都会导致训练误差曲线图出现随机尖峰。

本文还有一句潜台词是,把ViT的patchify stem替换成convolutional stem,你们还可以继续刷点。

CVPR和Transformer资料下载

后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集

后台回复:Transformer综述,即可下载最新的两篇Transformer综述PDF

CVer-Transformer交流群成立

扫码添加CVer助手,可申请加入CVer-Transformer 微信交流群,方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch和TensorFlow等群。

一定要备注:研究方向+地点+学校/公司+昵称(如Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

▲长按加小助手微信,进交流群

▲点击上方卡片,关注CVer公众号

整理不易,请点赞和在看

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值