EfficientNet: 重新考虑卷积神经网络的缩放.
- paper:EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
- arXiv:link
本文作者研究了卷积神经网络模型的缩放,即改变模型的深度、宽度和分辨率。通过均匀地缩放这三个维度,作者使用神经结构搜索设计了EfficientNet,在ImageNet数据集上获得 84.4% top-1 / 97.1% top-5的表现,并且比目前最好的卷积网络小倍,速度快倍。
宽度缩放是指改变每一层卷积层使用的卷积核数量(即特征通道数);深度缩放是指改变堆叠的网络层数;分辨率缩放是指改变输入图像的空间分辨率(高度和宽度)。
通常一个卷积神经网络可以划分成个阶段,每个阶段的卷积层具有相同的结构;比如ResNet划分成个阶段。若第个阶段的特征的空间尺寸为,通道数为;第个阶段重复堆叠个相同的卷积层,则整个卷积网络可以表示为:
使用缩放因子可以对模型的深度、宽度和分辨率分别缩放。通过可以调整模型的特征分辨率,通过可以调整模型的深度,通过可以调整模型的宽度。作者旨在给定资源约束的条件下获得精度尽可能高的卷积网络,表述为一个优化问题:
作者通过实验发现,单独增大网络的深度、宽度或分辨率都能够提高网络的精度,但是模型较大时精度的提升会趋于饱和。
网络的深度、宽度或分辨率并不是相互独立的。比如对于更大分辨率的输入图像,应该增加网络的深度以获得更大的感受野。同时应增加网络的宽度以捕捉更多像素的细粒度模式。作者通过实验发现,在不同的深度和分辨率系数下,改变网络的宽度会使网络收敛到不同的精度水平。因此平衡网络的深度、宽度或分辨率相当重要。
作者提出了一种复合缩放(compound scaling)方法,通过复合系数均匀地缩放网络的深度、宽度或分辨率:
常规的卷积网络的FLOPS与网络的深度成正比,与宽度的平方和分辨率的平方成正比。参数是通过网格搜索得到的常数,表示将可用的网络资源分配给深度、宽度和分辨率的程度。若约束(初始可用资源为倍),则用户指定复合系数后网络的FLOPS会增长倍。
作者通过神经结构搜索设计了基线网络EfficientNet-B0,搜索目标是,为目标FLOPS,设置为M。EfficientNet-B0的基本结构如下。其中基本模块采用MobileNetV3中的MBConv(mobile inverted bottleneck)。
通过复合缩放,可以在EfficientNet-B0的基础上获得更大的模型。缩放步骤如下:
- 固定,假设可用资源为倍,即,通过网格搜索获得。本文搜索得到。
- 固定,通过不同的获得不同的网络结构。本文得到的EfficientNet-B1到B7如下。
实验表明EfficientNet实现了最先进的精度,并且具有更少的参数量和FLOPS。
作者随机展示了几张不同输入图像的类别激活图。图中显示具有复合缩放的模型倾向于同时关注更多的目标和更多细节。而其他模型要么缺乏目标的细节,要么无法捕获图中的所有目标。
Related Issues not found
Please contact @0809zheng to initialize the comment