EfficientNetV2: 更小的模型和更快的训练.
- paper:EfficientNetV2: Smaller Models and Faster Training
- arXiv:link
作者提出了EfficientNetV2,其结构是通过训练感知(train-aware)的神经结构搜索和模型缩放得到的。 在搜索空间中使用了Fused-MBConv等新操作。 与EfficientNet相比,EfficientNetV2训练速度快$11$倍,并且模型参数量小$6.8$倍。 作者在训练过程中逐渐增大输入图像的大小以加快训练,为了补偿精度下降,训练时随图像大小自适应地调整图像增强等正则化程度。
EfficientNet使用神经结构搜索获得基线模型EfficientNet-B0,然后使用复合缩放策略进一步获得B1-B7。在训练该模型时存在一些训练瓶颈,导致模型的训练速度是次优的,这些瓶颈包括:
- 使用非常大的图像进行训练很慢。尺寸大的图像会导致大量的内存使用,由于硬件的总内存是固定的,只能减少训练的批量,导致训练速度的降低。
- 深度卷积在浅层较慢在深层高效。尽管深度卷积比常规卷积具有更少的参数,但它们不能充分地被现代加速器加速。
- 平均地缩放网络的每个阶段是次优的。比如平均地增加每一阶段的层数,每一层深度对训练速度和参数效率的贡献不是平等的。
EfficientNetV2的搜索空间包括两种卷积,即MobileNetV3中的MBConv和一种改进的Fused-MBConv。
搜索目标综合考虑模型精度$A$、训练时间$S$和参数量$P$,设置为$A\cdot S^{-0.07} \cdot P^{-0.05}$。搜索得到的结构称为EfficientNetV2-S:
与EfficientNet类似,EfficientNetV2也可以通过模型缩放进行扩展。在扩展时将图像最大尺寸限制为$480$,以防止更大的图像导致的内存和训练开销。不同于平均缩放,作者在更深的网络阶段增加更多的层,以便在不显著增加运行开销的情况下增加网络容量。
训练时作者采用了一种渐进式学习方法,即在训练早期使用尺寸较小的图像和较弱的正则化方法,随着训练轮数增加逐步应用更大的图像和更强的正则化。
假设训练共有$N$轮,将其分成$M$个阶段。每个阶段应用图像尺寸$S_i$和正则化程度$\Phi_i$。指定最后一阶段使用的图像尺寸$S_e$和正则化程度$\Phi_e$,并随机初始化图像尺寸$S_0$和正则化程度$\Phi_0$,则每个阶段使用的图像尺寸和正则化程度通过线性插值得到。整个流程如下:
可以调整的正则化方法包括:
- Dropout:一种网络级的正则化,通过随机丢弃通道减少过度依赖,可以调整概率$\gamma$。
- RandAugment:一种针对每个图像的数据增强,可以调整增强幅度$\epsilon$。
- Mixup:一种跨图像的数据增强,可以调整混合率$\lambda$。
对于不同的网络结构,设置参数如下:
实验如下: