AI实战:谷歌 EfficientNet


前言

目前提高CNN精度的方法,主要是通过任意增加CNN深度或宽度,或使用更大的输入图像分辨率进行训练和评估。

EfficientNet的成绩

EfficientNet-B7在ImageNet上实现了最先进精度的84.4%(Top 1)、97.1%(Top 5),同时比最好的现有ConvNet小84倍,推理速度快6.1倍;在CIFAR-100(91.7%)、Flower(98.8%)和其他3个迁移学习数据集上,也能很好地传输和实现最先进的精度。参数减少一个数量级,效率却提高了10倍(更小,更快)。
AI实战:谷歌 EfficientNet_第1张图片

如何做到的

这种复合缩放方法的第一步是执行网格搜索,在固定资源约束下找到基线网络的不同缩放维度之间的关系(例如,2倍FLOPS),这样做的目的是为了找出每个维度的适当缩放系数。然后应用这些系数,将基线网络扩展到所需的目标模型大小或算力预算。

AI实战:谷歌 EfficientNet_第2张图片

新模型缩放的有效性,很大程度上也依赖基线网络。

为了进一步提高性能,研究团队还通过使用AutoML MNAS框架执行神经架构搜索来开发新的基线网络,该框架优化了准确性和效率(FLOPS)。

由此产生的架构使用移动倒置瓶颈卷积(MBConv),类似于MobileNetV2和MnasNet,但由于FLOP预算增加而略大。然后,通过扩展基线网络以获得一系列模型,被称为EfficientNets。

AI实战:谷歌 EfficientNet_第3张图片

作者

第一作者是谷歌的高级软件工程师Mingming Tan,北大博士,在康奈尔大学获得博士后学位。

第二作者Quoc V. Le现在是谷歌的一名软件工程师,在斯坦福获得博士学位。


论文链接

1905.11946


Github链接

  • 官网版
    https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet

  • PyTorch版
    https://github.com/lukemelas/EfficientNet-PyTorch

  • keras版:
    https://github.com/qubvel/efficientnet

你可能感兴趣的:(深度学习,图像识别,人工智能)