Revisiting ResNets: Improved Training and Scaling Strategies
Revisiting ResNets: Improved Training and Scaling Strategiesarxiv.org
Background
影响一个神经网络模型的认知能力的主要因素,可以被粗略的分为以下几个部分:
结构(architecture):关于网络结构的改进工作,一直以来最受人关注,著名的工作包括:AlexNet,VGG,ResNet,Inception,ResNext等。近两年,一大批基于模型结构自动搜索(NAS)的工作也被提出,包括NasNet,AmoebaNet,EfficientNet等。还有一些引入自注意力机制的工作也较为新颖。
训练及正则方法(Training and Regularization Methods):训练方法对于网络训练有很重要的作用,常用的方法包括dropout,label smoothing, stochastic depth, data augmentation,以及多种lr schedules。
缩放策略(Scaling Strategies):对模型尺度(width, depth, resolution)进行缩放同样对模型能力有显著的影响。为了适应不同网络规模的应用场景,近些年关于模型缩放的研究也较多。有一些手动扩增尺度的工作,实现了对ImageNet的高精度检测。而EfficientNet基于自动搜索策略,提出了一种对这三个尺度进行均衡缩放的方式。但本文中将证明这种均衡缩放的方法其实是次优的。
额外数据集(Additional Trainin Data):还有一些工作,基于额外的大数据集(包括监督,若监督及无监督)进行预训练,也是下了对下游数据集的更高精度检测。例如ViT经过在JFT-300上的预训练,然后在ImageNet上能够达到88.6%。
因此,一个模型的综合性能,一般是由网络结构、训练方法及缩放策略三方面综合决定的。近年来,各种新的网络模型大放异彩,但这些工作中一般都着重强调其结构的改进,而很少提及同时被引入的非常重要的训练方式及缩放策略等问题。同时,这些采用先进训练策略的新模型,总是拿来与旧训练方式下的经典模型(如ResNet)进行比较,很明显这是不公平的对比。
Related work and the limit
目前关于ResNet的改进工作,包括对stem及down sampling block的改进,SE-block,SK-block的模型方面的改进,及label smoothing , mixup,dropblock等训练方法方面的改进。但这些工作目前很少考虑到模型缩放问题,本文中将简单地加入一些目前常用地模型及训练方法改进点,并重点对于模型缩放进行研究。
Novel points and Methodology
本文可以看作是一篇对于ResNet网络结构的正名之作,通过加入目前新的训练及正则方式,并通过合理的缩放方式,来使得ResNet这一经典网络,重回神经网络的铁王座(当然事实ResNet一直都在铁王座上,从未被超越,即时近些年各种工作号称超越,但从影响力,传播度以及实际应用度来说ResNet依然是从业者心中的“the chosen one”)。
因此,本文本质是可以看作是一篇集合各种trick及缩放方法的实验报告,因此可以忽略novel point and method,直接从实验结果来看效果就好。
Evaluation(benchmark, experiments design)
1、Improved Training Methods
该部分改进主要集中在两个方面:architecture、training method:
Architeture:
ResNet-D: 将stem的7x7卷积变为3个3x3卷积;交换downsampling block的支路中前两个卷积的stride;将downsampling block的skip connection中s=2的1x1卷积换成s=2的2x2pooling + 1x1 卷积;移除s=2的3x3 max_pooling并在在下一个downsampling中进行下调分辨率。
Squeeze-and-Excitation:加入ratio=0.25的SE-Block,来实现通道间的attention。
Training Methods:
主要采用的技术包括:提高训练epoch数;RandAugment; Momentum optimizer; weight decay; label smoothing; dropout; stochastic depth (layer drop); proxy数据集搜索超参等。
详细的改进 additive study 结果如下图所示:总结来说,对于baseline(ResNet-200, 79.0%),采用各种训练方法可以将其精度提升到82.2%;再加入结构的微小改进,可以将其精度提升到83.4%。此外,实验还给出了关于weight decay的结论:当与其他regularization方法一起使用时,需要降低weight decay。
2、Improved Scaling Strategies
模型缩放主要有3个维度:width, depth, resolution。本文对这三个维度进行一定范围内的采点试验,来模拟完整的模型缩放-精度变化趋势。本文采用了这种近似采点遍历的方式,而不是EfficientNet等工作中的搜索方法(反正都是自己的工作,正话反话都让你g说了呗lol),并证明了EfficientNet中自动搜索所得的三个维度均衡扩增的方法其实是次优的。此外,还在三种不同的regime(不能很好的理解这个词, 训练范式?由文中理解,通俗来说,就是模型大小和训练epoch数)下进行了试验。整体来说,实验参数设置组合空间如下:
width [0.25, 0.5, 1.0, 1.5, 2.0]
depth [26, 50, 101, 200, 300, 350, 400]
resolution [128, 160, 224, 320, 448]
epoch regime [10, 100, 350]
在这多维组合空间下,实验结果如图所示:
从结果中可以发现很多结论:
FLOPs在模型较大的情况下并不能很好地表示模型的性能(fig2)。
在不同的training regime下,最优的模型缩放策略并不相同:大的epoch regime下增加depth效果优于width,但在较小的epoch regime下变化width效果比depth更突出。
增大图像分辨率会出现收益递减的现象等等。
此外,还揭示了两个以往关于模型缩放研究中的误区:
利用small-scale regime(较小模型, 较低的训练epoch数)来估计最终精度并不安全;
从一个次优的架构,通过单个维度来进行缩放实验可能会导致最终策略的次优。
本文最终给出的推荐缩放策略为:
在可能出现过拟合问题的大regime情景下首选扩大depth(否则扩大width)
缓慢扩大resolution
1. scale the depth in regimes where overfitting can occur (scaling the width is preferable otherwise). 2. slow image resolution scaling.
此外,文中还进行了充分的不同任务场景的泛化实验及消融实验等,不一一赘述。
最后,组合训练方法及缩放策略,文中提出了改进版的ResNet网络系列:ResNet-RS。由下图可以看出:1、通过添加更新的训练方法及小的结果改进,可以使得ResNet网络精度提高至sota级别;2、通过文中的缩放策略,可以获得更优的精度-速度 trade-off的系列网络,整体性能全面超越EfficientNet。
Thoughts:
1、Describe what the authors of the paper aim to accomplish, or perhaps did achieve.
通过对ResNet网络添加近些年新的训练方式及微小的结构改进,使其获得sota级别的精度;探究更优的模型缩放策略,获得更好的精度-速度权衡。
2、If a new approach/ technique/ method was introduced in a paper, what are the key elements of the newly proposed approach?
文中并未给出新颖的方法或思路,而是通过大量详尽的实验来获得最优结果。由此可见,目前DL研究还是资源为王lol。不过在模型缩放研究中,通过实验验证,来获得优于NAS搜索所得的策略,可见目前的NAS策略依然存在问题。
注:FB同期也出了一篇关于模型缩放研究的论文《Fast and Accurate Model Scaling》,简单扫了一眼,核心结论就是说缩放width的收益更高,这么说可能就是陷入了本文中的一种情况,没有详细研究,不敢妄下结论。