EfficientNets模型缩放方法
EfficientNets 是谷歌基于AutoML开发的,是一种新的模型缩放方法。它在ImageNet测试中实现了84.1%的准确率,再次刷新了纪录。
虽然准确率只比之前最好的Gpipe提高了0.1%,但是模型更小更快,参数的数量和FLOPS都大大减少,效率提升了10倍!
开发EfficientNets是来自谷歌大脑的工程师Mingxing Tan和首席科学家Quoc V. Le,他们的文章《EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks》已经被ICML 2019收录。
实现方法
传统提高CNN准确率的方法有:增加网络的深度或宽度,例如通过增加层数将ResNet-18可扩展到ResNet-200,或者是提高输入图片分辨率来训练和评估网络。
虽然这些方法确实提高了准确率,但是通常需要繁琐的手动调整,而且经常不能获得最优的性能。
最近谷歌提出了一种复合缩放(compound scaling)的方法,与缩放神经网络的传统方法不同,谷歌的方法使用一组固定的缩放系数统一缩放每个维度。
实现复合缩放的首先是执行网格搜索,以在固定资源约束下找到基线网络(baseline model)的不同缩放维度之间的关系,确定每个维度的缩放比例系数。然后将这些系数将应用于基线网络,扩展到所需的目标模型大小或计算力。
模型缩放的有效性也在很大程度上依赖于基线网络。因此,为了进一步提高性能,谷歌还使用AutoML MNAS框架优化了模型的准确率和效率,执行神经架构搜索来开发新的基线网络。
性能表现
EfficientNet模型实现了比现有CNN更高的精度和更高的效率,将参数数量和FLOPS降低了一个数量级。
特别需要指出的是,EfficientNet-B7在ImageNet上实现了目前最先进的测试结果,准确度为84.4%(top-1)和97.1%(top-5),同时比现有最好的Gpipe小了8.4倍,推理速度快6.1倍。
在同等算力的条件下,EfficientNet也有更好的表现。与ResNet-50相比,EfficientNet-B4的准确率为82.6%,比ResNet-50的76.3%高出6.3个百分点。
EfficientNets不仅在ImageNet上表现良好,迁移到其他数据集上也有优秀的表现。为了评估这一点,谷歌在8个广泛使用的迁移学习数据集上测试了EfficientNets,其中5个实现了最先进的准确度。它在CIFAR-100上准确度为91.7%,在Flowers上为98.8%,同时参数减少了21倍。
文章来源:量子位