EfficientNetV2 - 通过NAS、Scaling和Fused-MBConv获得更小的模型和更快的训练
EfficientNetV2是由 Google Research,Brain Team发布在2021 ICML的一篇论文,它结合使用NAS和缩放,优化训练速度和参数效率。并且模型中使用新操作(如 Fused-MBConv)在搜索空间中进行搜索。EfficientNetV2 模型比EfficientNetV1的训练速度快得多,同时体积小 6.8 倍。
论文大纲如下:
- 理解和提高 EfficientNetV1 的训练效率
- NAS 和缩放
- Progressive Learning
- SOTA 比较
- 消融研究
理解和提高 EfficientNetV1 的训练效率
1、使用非常大的图像尺寸进行训练很慢
EfficientNet 的大图像尺寸会导致大量内存使用。由于 GPU/TPU 上的总内存是固定的,因此使用较小的批大小,这会大大减慢训练速度。
FixRes (论文FixRes: Fixing the Train-Test Resolution Discrepancy)可用于通过使用更小的图像尺寸进行训练而不是推理。较小的图像尺寸会导致较少的计算量并支持较大的批量大小,从而将训练速度提高多达 2.2 倍,并且准确度还会有所提高。
2、Depth-wise卷积在模型的早期层执行缓慢但在后期层是有效的
Fused-MBConv 在谷歌 AI 博客中提出, Fused-MBConv 将 MBConv 中的 depthwise conv3×3 和扩展 conv1×1 替换为单个常规 conv3×3。
MBConv 和 Fused-MBConv 的结构
Fused-MBConv 逐渐将 EfficientNet-B4 中的原始 MBConv 替换为 Fused-MBConv。
在早期阶段 1-3 中应用时,Fused-MBConv 可以提高训练速度,而参数和 FLOP 的开销很小。
但是如果所有块都使用 Fused-MBConv(阶段 1-7),那么它会显着增加参数和 FLOP,同时也会减慢训练速度。
3、在每个阶段同样扩大规模并不是最优的
EfficientNet 使用简单的复合缩放规则平等地扩展所有阶段。例如,当深度系数为 2 时,网络中的所有阶段都会使层数翻倍。但是实际上这些阶段对训练速度和参数效率的贡献并不相同。在EfficientNetV2中,使用非均匀缩放策略逐渐向模型的后期添加更多层。EfficientNets 积极扩大图像大小,导致大量内存消耗和缓慢训练。为了解决这个问题,EfficientNetV2对缩放规则稍作修改,最大图像尺寸被限制为较小的值。
https://www.overfit.cn/post/053825be64b64acfa9cbd527a4a1cab7