本文共 2776 字,大约阅读时间需要 9 分钟。
参考代码:
导读:这篇文章是在EfficientNet基础(借鉴了其中一些既有结论)上进行改进优化来的,其主要的优化点有:
1)通过加入training-aware的网络搜索(也就是将网络性能/训练时间/网络参数量组合起来作为NAS的优化目标)去优化网络的训练速度和参数的效率(参数量与最后换得性能的比例); 2)在深度可分离卷积组成的MBConv基础上在浅层的stage上引入Fused-MBConv增加网络的性能与加快训练时间; 3)直觉上增加图像的size会提升网络的性能,而实际上网络采用的正则化机制并没有随着输入图像size的变化而变化,反而导致网络性能的下降,对此文章提出了progressive learning策略去弥补这个gap; 经过上述的改进新版的EfficientNetV2在ImageNet数据集上获得了87.3%的准确率(pretrain on ImageNet21K),并且训练的速度快了很多。
这里将EfficientNetV2的训练速度与其它网络进行对比:
EfficientNet是前几年提出的一个高效网络结构,通过NAS搜索出一个基准网络B0,之后在该基础上通过scale up得到多个不同体量的模型,该类模型在参数量/计算量与最后性能上拥有较好的平衡,将其与其它模型在参数效率上做比较,见下表所示:
大尺寸的训练图片拖慢训练:
这与直觉上的认知一致,更大的图片需要占用更多的显存,进而会缩小每次batch的size,使得训练的时间变长,在EfficientNet-B6上进行实验也证实了这样的认知。NAS网络搜索:
这里进行网络搜索的单元是stage,其中的搜索空间包括:卷积模块的类型(MBConv或Fused-MBConv),stage中layer的数量,卷积kernel的大小3或5,膨胀系数[1,4,6]。此外为了缩小搜索空间文章借鉴了EfficientNet中的一些明了的先验知识(文章的V2版本本来也是基于EfficientNet):通过上面的几点操作可以减少搜索空间使得搜索拥有更多layer的网络。最后的代价函数文章将其描述为(综合考虑了精度 A A A/训练时长 S S S/参数量 P P P):
c o s t = A ⋅ S w ⋅ P w cost=A\cdot S^w\cdot P^w cost=A⋅Sw⋅Pw 其中, w = − 0.07 , v = − 0.05 w=-0.07,v=-0.05 w=−0.07,v=−0.05。EfficientNetV2的结构:
最后搜索出来的EfficientNetV2-S的结构见下表所示:EfficientNetV2网络的scale up:
在上述的内容中通过搜索的到EfficientNetV2-S,之后通过scale up对网络进行放大的到更大尺寸的EfficientNetV2-M/L,但是这里做了几点约束:将文章的V2-S/M/L于其它网络进行比较训练时间对比见下图所示:
出发点:
输入图片的size会对最后的结果产生影响,一般意义上这个影响是正向的,但是再增大到一定范围之后却是“负向”的。对此文章给出的解释是随着图像尺寸和网络容量的增加对应的正则化却没有改变,维持着最小时候的设置,这就会导致缺乏有效正则而过拟合的风险,对此文章做了对应的实验,发现在训练的过程中随着图像尺寸的增加也对应增加正则化的力度(这里使用的是不同的图像预处理程度),从而可以得到更好的结果,见下表所示:文章方法与其它方法的性能比较:
转载地址:http://ykkhj.baihongyu.com/