论文基于training-aware NAS和模型缩放得到EfficientNetV2系列,性能远优于目前的模型。另外,为了进一步提升训练速度,论文提出progressive learning训练方法,在训练过程中同时增加输入图片尺寸和正则化强度。从实验结果来看,EfficientNetV2的效果非常不错。
来源:晓飞的算法工程笔记 公众号
论文: EfficientNetV2: Smaller Models and Faster Training
随着模型大小和数据集规模的增加,训练效率成了深度学习中很重要的一环。近期也有越来越多致力于提高训练效率的研究,但很难有兼顾准确率、训练效率和参数规模的网络。
论文尝试分析了参数高效的EfficientNet的训练瓶颈,主要有三点:1)图片输入尺寸过大会导致训练较慢。2)深度卷积放在网络前部分会较慢。3)对网络所有stage进行同等scaling并不是最优的。基于上面的分析,论文设计了更精简的搜索空间,使用training-aware NAS(neural architecture search)和scaling来同时提高模型准确率、训练效率和参数效率,提出了EfficientNetV2系列网络。
在训练速度方面,论文通过在训练过程逐步提高输入尺寸来进一步加速训练。先前也有类似的在训练过程逐步增加输入图片尺寸来加速的研究,但这些研究在修改输入图片尺寸的同时没有改变训练设置,导致准确率下降。论文认为,输入图片尺寸不同的网络的容量不同,应该使用不同程度的正则化方法。为此,论文提出了progressive learning,在训练初期使用较小的图片尺寸和较弱的正则化,然后逐步提高图片尺寸和正则化强度,可以做到加速训练又不掉点。
论文的主要贡献如下:
EfficientNet是优化计算量和参数量的系列网络,先通过NAS搜索准确率和速度折中的基线模型EfficientNet-B0,再通过混合缩放策略获得B1-B7模型。
尽管现在很多研究声称在训练或推理速度上取得很大进步,但他们通常在计算量和参数量上差于EfficientNet,而本文正是想同时提升训练速度和优化模型参数量。
论文对EfficientNetV1的训练瓶颈进行了分析,发现以下几个主要问题。
输入图片尺寸过大会导致显存占用的显著提高,由于GPU的显存是固定的,导致必须减少batch size和增加迭代次数进行训练,训练也就变慢了。
如表2所示,较小的尺寸大约能提升2.2倍训练速度,还能小幅提升模型性能。为此,论文参考FixRes的动态增加训练图片尺寸提出更高效的训练方法,在训练过程逐步增加图片尺寸以及正则化强度。
最近有研究提出MBConv的替代结构Fused-MBConv,如图2所示,将depthwise conv3x3和conv1x1合并为常规的conv3x3。为了对比两者的性能差异,论文逐步替换stage进行实验。从表3的结果可以看出,恰当地使用Fused-MBConv可以在不带来过多参数量和计算量的前提下提升训练速度。至于如何是恰当,就靠NAS来自动搜索了。
由于搜索空间精简了,可以直接用强化学习和随机搜索来生成跟EfficientNet-B4差不多大小的网络。论文共采样1000个网络结构,每个训练大概10个周期。搜索的平均指标包含模型准确率$A$、归一化的训练耗时$S$和参数量$P$,使用加权乘积$A\cdot S^w\cdot P^w$进行最终得分计算,其中$w=-0.07$和$v=-0.05$是通过实验确定的平衡超参数。
EfficientNetV2-S结构如表4所示,Conv后接的数字是膨胀率。对比EfficientNet,主要有以下区别:
这里有一点比较奇怪,上面NAS部分说会复用EfficientNet的通道数来缩小搜索空间,但是看表4的通道数貌似跟EfficientNet没有关系。这要等作者补充更多的NAS细节看看,具体各模型的参数可以去github看看。
图3对比了各网络的训练耗时,其中EfficientNet有原版和训练时缩小30%图片尺寸的版本,缩小版本的输入尺寸跟EfficientNetV2以及NFNet一致。使用相同训练周期和固定图片尺寸进行训练,EfficientNet仅缩小训练尺寸就能得到很大的性能提升,而EffcientNetV2凭借论文提出training-aware NAS和缩放策略,性能远超其它网络。
为了验证这个猜想,论文将不同输入图片尺寸和不同正则化强度进行组合测试。从表5的结果来看,基本验证了论文的猜想。于是论文提出了progressive learning,在训练过程中根据动态调整的图片尺寸自适应正则化强度。
论文提出的progressive learning如图4所示,先用较小的图片尺寸和较弱的正则化进行训练,随后逐步增加图片尺寸和正则化强度。
假设完整的训练共$N$次迭代,目标图片尺寸为$S_e$,目标正则化超参数为$\Phi_e={\phi^k_e}$,其中$k$表示其中一种正则化方法,比如dropup比例或mixup比例。将训练分为$M$个阶段,对于每个阶段$1\le i\le M$,模型训练的图片尺寸为$S_i$,正则化超参数为$\Phi_i={\phi^k_i}$,最后一个阶段$M$的图片尺寸为$S_e$和正则化超参数为$\Phi_e$。为了简单化,初始化图片尺寸和正则化超参数为$S_O$和$\Phi_0$,通过线性插值来决定每个阶段对应参数,整体逻辑如算法1所示。
论文共使用三种正则化方法:Dropout、RandAugment和Mixup,各网络的参数设置如表6所示。
在ImageNet上与其它网络进行对比。
迁移能力对比。
相同训练配置下的EfficientNet对比。
缩小EfficientNetV2的模型大小与对标的EfficientNetV1,对比准确率和速度。
对比不同网络使用progressive learning的效果。
对比自适应正则化强度的效果。
论文基于training-aware NAS和模型缩放得到EfficientNetV2系列,性能远优于目前的模型。另外,为了进一步提升训练速度,论文提出progressive learning训练方法,在训练过程中同时增加输入图片尺寸和正则化强度。从实验结果来看,EfficientNetV2的效果非常不错。
如果本文对你有帮助,麻烦点个赞或在看呗~undefined更多内容请关注 微信公众号【晓飞的算法工程笔记】
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。