Normalizer-Free ResNets(下)论文笔记

【arxiv2021】High-Performance Large-Scale Image Recognition Without Normalization -----deepmind

原文链接
这是NFnet的下半部论文,上半部论文请参考Normalizer-Free ResNets(上)论文笔记

在这里插入图片描述


contribution

  • 采用AGC解决上一个关于normalizer-free工作的batchsize大就崩溃的问题
  • 整体性能上调过了efficientnet系列

intro

resnet+BN 的架构可以保证训练更深网络,更稳定,regularizing

BN实际上为了抑制relu激活函数的偏移,避免随着训练深度提取positive part 时不再center的问题

  • transformation-> center and rescale,追求一个well-behaved的数据集

但是有三个缺点:

  • 额外的memory 和computation,增加计算梯度时的buffer负担和时间

  • discrepancy 在training 和 inference ,训练的时候需要计算mean shift 和 scaling,推理时不再需要batch dependence

  • BN 打破了了minibatch中的sample之间的independence

    • batch越大,mean越近似真实均值,越不可能是噪声,batchsize 变得matter了
    • distributed training时,多个分块到BN 需要统一计算,否则偏差会大。
    • 部署时效果变差
    • 用BN 对于某些损失函数来说会是一种cheat,如序列化预测,后一段话的内容实际是这次的label,information leakadge ,和contrastive learning中可能会出现batch内信息泄露问题
    • 数据表现不好时更加对于batch size敏感,越大越好

BN好在哪,怎么替代

优点:

  • BN downscale the residual branch 使训练更stable,在训练初期well-behaved gradients
  • eliminate mean-shift 避免积累误差导致初始化后训练的网络对于所有样本同一个label
  • regularizing effect
  • smooth the loss landscape,允许large-batch的训练

优点:
回顾了之前的工作,并指出1.没超过effnet,这不完美,2.batch大了会奔溃,这不art.

Adaptive Gradient Clipping (AGC)

标准的gradient clipping:
在这里插入图片描述
AGC:
在这里插入图片描述
在这里插入图片描述
从公式上看把问题转化为对超参 λ \lambda λ的调参(把一个调参转化为另一个调参),取决于优化器,batchsize,学习率,模的比值。并且这个认为权重变化与权重整体比值过大不可取,所以设计了这个F范数比值,相当于给了一定知识。但最终还是要调 λ \lambda λ.顺提提了LARS忽略了gradient magnitude,AGC是松弛了的normalized optimizers。有用过LARS能稳定但是performance不好。作者采用的unit-wise norm说经验上比layer-wise norm ratios好。
在这里插入图片描述
从图上看,AGC好像只是解决了batchsize大了训练崩塌的问题,并没有带来accuracy的提高,右图也就说明了bs大了 λ \lambda λ不能开太大。

做了不同层去掉AGC的消融实验得到两结论:1.最好不要在最后的线性层clip,2 学习率大,bs大的时候,稳定训练必须需要AGC。

NF+AGC

首先背刺efficientnet,虽然理论上计算复杂度低,但是在现实部署并没有转化为切实的速度提高,Effnet-B0与ResNet-50在gpu和tpu有着近似的训练时间和表现性能。(这一段表达好好学学,自己是manual模型,在这种大环境下如何说NAS短又不至于使得业内太过反感)

baseline:SE-ResNeXt-D model+ GELU activations
在这里插入图片描述

  • group width(the number of channels each output unit is connected to)in 3*3 conv 设为128,理论上小width会减少计算density但不一定意味着在现实gpu上速度的提升,举例TPUv3上group width为8与128速度一样。
  • resnet scale增加的时候(50->101->200),第二,三stages非均匀增加层数,一,四stages保持3 blocks,早期层高分辨率,高内存高计算,倾向计算localized泛化的特征,后期层低分辨,大量参数,计算任务导向的特征。这样次优。早期过多下采样可能会hurt提取local feature的performance F0的deep pattern[1,2,6,3 ]
  • width pattern:实验得到只有一个高于原resnet->[256,512,1536,1536],stage 3是最适合增加capacity的位置
  • bottleneck residual block:最好的提升来自在第一个后加一个额外的3*3 grouped conv。
  • 尽管efficientnet联合scale了model的width,depth和输入resolution。但这种更适合直通slim的mobilenet.对于restnet来说,width scaling是无效的。所以固定width,只scale depth和input resolution。另外eval的时候输入图像比train的时候resolution大一些,平均约33%。
  • 模型capacity增加的时候更应注意regularization,但无法通过BN来显式正则,修改权重衰减和stochastic depth rate无效,所以用回dropout,调参scale drop rate来regularization,再次调参。

在这里插入图片描述

summary总结trainning recipe,看了summary也许就不用看上面每步的解释和理由了?

Experiments

翻来覆去写着两字“有钱”,3亿图像预训练,充足显卡资源,有兴趣能复现还是自己原文和附录细看吧。
在这里插入图片描述
在这里插入图片描述
说完模型sota后肯定还是要说回no BN 带来的benefit,下图显示在迁移学习3亿图像预训练模型时,NF比BN 好。解释是NF没有像BN这样隐式的regularization,而BN 倾向于在较大的数据集上过拟合,用迁移学习的实验说明,NF相比BN适合预训练后finetune的任务

强调top1精确度89.2%是现有用额外数据方法第二(第一是semi-supervised learning baseline,也就是用了Meta pseudo
labels的effnet),但是是用迁移学习的第一。
在这里插入图片描述
最后强调了自己的贡献点:

  • 是第一个在大型数据集用没有BN层网络在分类精度上不仅比得上而且超过有BN的SOTA网络,而且训练还比他快
  • 引入了AGC,使得可以用strong data augmentation和大batchsize
  • 提出NFnet系列,在imagenet达到现有不用额外数据的SOTA
  • 发现NFnet相比其有BN的版本更适合在预训练后finetune

appendix

介绍了模型细节以及训练细节,并且列举出现在的BN实现库的一些bug和之前实验的negative的results的例子,很有意思,如果人人献出一点爱,大家都能少走弯路。


总结

个人觉得主要贡献就是再接再励,超过effnet,可耐受更强的data augmentation,而且解决了batchsize大了训练崩溃的问题,但是解决方法是AGC和调drop out,而归根结底又变成了调参控制,再联系上这个工作的前身的文章运用SPP信号分析来模拟替代BN,所以给人感觉就是上一篇文章,虽然说了很多,推理也合乎情理,但是可能实践起来还是不够稳定,又加上了梯度控制,但是本文解决运用的方法给人一种对上一篇工作的训练trick的修补。对这个漏风的墙又在边角糊了一遍。可是这毕竟是实实在在的创举,有启发性的工作,而且能够切实感受到作者的工作量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值