论文《EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks》 地址 https://arxiv.org/pdf/1905.11946.pdf
以前都是手动调优,任意增加网络的深度或宽度,或使用更大的输入图像分辨率进行训练和评估,从而提高准确性,需要长时间的训练和测试。而 EfficientNet 提出了一种新的模型缩放方法来扩大网络的规模,从而可以获得更好的准确性和效率。
这篇论文主要是用神经网络结构搜索技术 NAS(Neural Architecture Search)来搜索图像输入分辨率、网络深度、网络宽度(channel 数)三个参数,进行合理化配置,平衡这三个参数来提升网络的性能。
模型缩放
为了提高模型的复杂度、提高模型的性能,我们一般会对模型做适当的缩放。
(1)增大网络的宽度,即增加每个卷积层的通道数(channel 数);
(2)增大网络的深度,即增加每个stage单元的重复次数;
(3)增大输入图片的分辨率;
这三个维度如果做其中一个的缩放,模型精度一般会有提升但很快就饱和了,因为模型的宽度、深度和图片分辨率三者是互相关联的,当增加其中一个时,另外两个也要跟着增加才会得到最好的效果。
EfficientNet 亮点
(1)使用 NAS 搜索出 EfficientNet-B0 结构;
(2)不像传统方法那样任意缩放网络维度(宽度、深度、分辨率),EfficientNet 使用一系列固定的尺度缩放系数来统一缩放网络维度。
EfficientNet 网络结构图
使用 NAS 搜索出一个更好的 Backbone,即 EfficientNet-B0,然后对 B0 模型的宽度、深度和图片分辨率同时缩放,便得到 B1 ~ B7 模型。