EfficientNets 模型缩放方法

程序名称:EfficientNets

授权协议: Apache

操作系统: 跨平台

开发语言: Python

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倍。

文章来源:量子位

EfficientNets 官网

https://arxiv.org/abs/1905.11946

相关编程语言

欧盟第7框架计划(FP7)的LarKC项目的目标是开发大规模...
Salad 是一种有效且灵活的实现著名的异常检测方法回...
multilanguage 是一个多语开发工具包,用于缓存多语...
go-cortex 是一个服务,通过倾听你的句子,并视图理...
DKPro Core 是基于 Apache UIMA 框架之上的自然语言...
NLTK 会被自然地看作是具有栈结构的一系列层,这些层...