谷歌提出新型卷积网络EfficientNet:推理速度提升5.1倍,参数减少88%(附论文&代码)

简介: 谷歌提出了一种新型CNN网络EfficientNet,该网络具备极高的参数效率和速度。

来源:机器之心

文章来源:微信公众号 数据派THU

本文共1500字,建议阅读8分钟。


谷歌提出了一种新型CNN网络EfficientNet,该网络具备极高的参数效率和速度。

[ 导读 ]谷歌提出了一项新型模型缩放方法:利用复合系数统一缩放模型的所有维度,该方法极大地提升了模型的准确率和效率。谷歌研究人员基于该模型缩放方法,提出了一种新型 CNN 网络 EfficientNet,该网络具备极高的参数效率和速度。目前,该模型的代码已开源。

image.png

卷积神经网络(CNN)通常以固定成本开发,然后再按比例放大,从而在获得更多资源时可以达到更高的准确率。例如,ResNet 可以通过增加网络层数,从 ResNet-18 扩展到 ResNet-200。近期 GPipe 将基线 CNN 扩展了 4 倍,从而在 ImageNet 数据集上达到了 84.3% 的 top-1 准确率。模型缩放的通常做法是任意增加 CNN 的深度或宽度,或者使用更大的输入图像分辨率进行训练和评估。尽管这些方法确实可以改进准确率,但它们通常需要大量手动调参,且通常获得的是次优性能。那么,我们是否可以寻找更好的 CNN 扩展方法,来获得更高的准确率和效率呢?

谷歌研究人员在一篇 ICML 2019 论文《EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks》中,提出了一种新型模型缩放方法,该方法使用一种简单但高效的复合系数(compound coefficient)以更加结构化的方式扩展 CNN。与任意扩展网络维度(如宽度、深度、分辨率)的传统方法不同,该新方法使用固定的一组缩放系数扩展每个维度。受益于该方法和 AutoML 的最新进展,谷歌开发出了一系列模型——EfficientNets,该模型的准确率超越了当前最优模型,且效率是后者的 10 倍(模型更小,速度更快)。

论文链接:

https://arxiv.org/pdf/1905.11946.pdf

复合模型缩放:扩展 CNN 的更好方法

为了理解网络缩放的效果,谷歌研究人员系统地研究了缩放模型不同维度的影响。虽然缩放单个维度可以改善模型性能,但研究人员发现平衡网络的所有维度(宽度、深度和图像分辨率)和可用资源才能最优地提升整体性能。

该复合缩放方法的第一步就是执行网格搜索,寻找固定资源限制下基线模型不同缩放维度之间的关系。这决定了每个维度的恰当缩放系数。第二步是应用这些系数,将基线网络扩展到目标模型大小或目标计算成本。

image.png

不同缩放方法对比。传统缩放方法 (b)-(d) 任意缩放模型的单个维度,而谷歌提出的新型复合缩放方法则不同,它扩展模型的所有维度

相比于传统的模型缩放方法,该复合缩放方法可持续改善模型的准确率和效率,如 MobileNet 的 ImageNet 准确率提升了 1.4%,ResNet 的准确率提升了 0.7%。

EfficientNet 架构

模型缩放的效果严重依赖基线模型。因此,为了进一步提升性能,谷歌研究人员使用 AutoML MNAS 框架执行神经架构搜索,从而开发出一种新型基线模型,该模型可以优化准确率和效率。

该基线模型使用 mobile inverted bottleneck convolution(MBConv),类似于 MobileNetV2 和 MnasNet,但是由于 FLOP 预算增加,该模型较大。于是,研究人员继续缩放该基线模型,得到一组模型——EfficientNets。

image.png

基线模型 EfficientNet-B0 的架构简单、干净,这使得它易于扩展和泛化

EfficientNet 性能

研究人员在 ImageNet 数据集上对比了 EfficientNets 和已有 CNN 模型。EfficientNet 模型要比已有 CNN 模型准确率更高、效率更高,其参数量和 FLOPS 都下降了一个数量级。例如,在高准确率的模式中,EfficientNet-B7 在 ImageNet 上获得了当前最优的 84.4% top-1 / 97.1% top-5 准确率,CPU 推断速度是 Gpipe 的 6.1 倍,而后者的大小是 EfficientNet-B7 的 8.4 倍。与现在广泛使用的 ResNet-50 相比,EfficientNet-B4 使用类似的 FLOPS 取得的 top-1 准确率比 ResNet-50 高出 6.3%(ResNet-50 76.3%,EfficientNet-B4 82.6%)。

image.png

模型大小 vs. 准确率

EfficientNet-B0 是通过 AutoML MNAS 开发出的基线模型,Efficient-B1 到 B7 是扩展基线模型后得到的网络。EfficientNet 显著优于其他 CNN。具体来说,EfficientNet-B7 取得了新的 SOTA 结果:84.4% top-1 / 97.1% top-5 准确率,且其大小远远小于之前的最优 CNN 模型 GPipe(后者的模型大小是 EfficientNet-B7 的 8.4 倍),速度是 GPipe 的 6.1 倍。

EfficientNet-B1 的参数量远远小于 ResNet-152,但速度是后者的 5.7 倍。

image.png

EfficientNet 在 ImageNet 上的性能

image.png

推断延迟对比

尽管 EfficientNets 在 ImageNet 上性能优异,但要想更加有用,它们应当具备迁移到其他数据集的能力。谷歌研究人员在 8 个常用迁移学习数据集上评估了 EfficientNets,结果表明 EfficientNets 在其中的 5 个数据集上达到了当前最优的准确率,且参数量大大减少,这表明 EfficientNets 具备良好的迁移能力。

EfficientNets 能够显著提升模型效率,谷歌研究人员希望 EfficientNets 能够作为未来计算机视觉任务的新基础。因此,研究人员开源了 EfficientNet 模型。

EfficientNet 源代码和 TPU 训练脚本参见:

https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet

参考链接:

https://ai.googleblog.com/2019/05/efficientnet-improving-accuracy-and.html

编辑:黄继彦

校对:林亦霖

目录
相关文章
|
12天前
|
机器学习/深度学习 人工智能 自动驾驶
什么是人工智能领域的卷积神经网络
什么是人工智能领域的卷积神经网络
20 0
|
12天前
|
机器学习/深度学习 算法 计算机视觉
卷积神经网络中的卷积层,如何提取图片的特征?
卷积神经网络中的卷积层,如何提取图片的特征?
22 0
|
25天前
|
机器学习/深度学习 算法 PyTorch
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
RPN(Region Proposal Networks)候选区域网络算法解析(附PyTorch代码)
180 1
|
25天前
|
机器学习/深度学习 存储 自然语言处理
卷积神经元网络CNN基础
卷积神经元网络CNN基础
33 1
|
25天前
|
机器学习/深度学习
大模型开发:解释卷积神经网络(CNN)是如何在图像识别任务中工作的。
**CNN图像识别摘要:** CNN通过卷积层提取图像局部特征,池化层减小尺寸并保持关键信息,全连接层整合特征,最后用Softmax等分类器进行识别。自动学习与空间处理能力使其在图像识别中表现出色。
24 2
|
1月前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能与图像识别:基于深度学习的卷积神经网络
人工智能与图像识别:基于深度学习的卷积神经网络
34 0
|
1月前
|
机器学习/深度学习 算法 数据库
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
|
2月前
|
机器学习/深度学习 算法 PyTorch
python手把手搭建图像多分类神经网络-代码教程(手动搭建残差网络、mobileNET)
python手把手搭建图像多分类神经网络-代码教程(手动搭建残差网络、mobileNET)
46 0
|
1月前
|
网络协议 Linux API
Linux网络编程:shutdown() 与 close() 函数详解:剖析 shutdown()、close() 函数的实现原理、参数说明和使用技巧
Linux网络编程:shutdown() 与 close() 函数详解:剖析 shutdown()、close() 函数的实现原理、参数说明和使用技巧
66 0
|
8天前
|
机器学习/深度学习 自然语言处理 算法

热门文章

最新文章