在这里插入图片描述

文章目录

01 基础信息

  • 标题:EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
  • 作者/机构:Google Brain
  • 会议/时间:ICML 2019
  • 关键词:模型缩放、复合缩放、EfficientNet、ImageNet、神经架构搜索
  • 一句话总结:通过系统性地平衡网络深度、宽度和分辨率,EfficientNet 在更小、更快的模型上实现了更高精度。

02 背景

传统的卷积神经网络通常是在固定资源预算下设计的,当有更多计算资源时,研究者会尝试“放大”模型以提升性能。然而,如何系统地、有效地扩展模型(比如增加层数、通道数或输入图像分辨率)一直没有被很好地理解。目前常见的做法是只扩展某一个维度(比如只增加深度、宽度或分辨率),但这种方法:需要大量手工调参;往往导致性能提升有限;在资源增加时效率不高。因此,本文要解决的问题是:是否存在一种更系统、有效的方法来扩展 ConvNet,使得在资源增加时,能同时提升准确率和效率?

03 方法

作者提出了一种新的模型扩展方法,称为 复合缩放(Compound Scaling),其核心思想是:在扩展模型时,应该同时、按比例地增加网络的深度、宽度和分辨率,而不是只扩展其中一个维度。具体来说,他们提出使用一个复合系数 φ 来统一控制三个维度的缩放:深度(depth):d = α^φ;宽度(width):w = β^φ;分辨率(resolution):r = γ^φ 并满足约束条件:α · β² · γ² ≈ 2,以保证计算量(FLOPs)随 φ 的增加而线性增长。

在这里插入图片描述

理解:(为什么是这样的约束形式)因为EfficientNet 的复合缩放方法以单一系数 φ 同步放大网络深度 d = α^φ、宽度 w = β^φ 与分辨率 r = γ^φ,然而三者对计算量的影响并非线性。对于卷积层,FLOPs 正比于 d × w² × r²:深度仅线性叠加,而通道数与图像尺寸各自翻倍均会引入 4× 运算量。为避免 φ 递增时计算爆炸,作者约束 α·β²·γ² ≈ 2;于是总 FLOPs ∝ (α·β²·γ²)^φ = 2^φ,即每增大一级 φ,预算恰好翻倍,实现精度-效率的可控权衡。

论文基于神经架构搜索设计新 baseline:EfficientNet-B0,构建一系列模型(B0~B7),在 ImageNet 上实现 SOTA,参数更少、速度更快。

04 结果

  • ImageNet 分类结果:
    B7 达到 84.4% top-1,比 GPipe 更小更快
    在这里插入图片描述

  • 迁移学习表现:
    在 8 个数据集上 5 个达到 SOTA,参数减少 9.6 倍在这里插入图片描述

  • 消融实验:
    对比单一维度缩放 vs 复合缩放
    可视化 CAM(类激活图)说明复合缩放更关注关键区域在这里插入图片描述

05 代码与复现

EfficientNet_ Rethinking Model Scaling for Convolutional Neural Networks github地址

在这里插入图片描述

efficientnet-b0: https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b0-355c32eb.pth
efficientnet-b1: https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b1-f1951068.pth
efficientnet-b2: https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b2-8bb594d6.pth
efficientnet-b3: https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b3-5fb5a3c3.pth
efficientnet-b4: https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b4-6ed6700e.pth
efficientnet-b5: https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b5-b6417697.pth
efficientnet-b6: https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b6-c76e70fd.pth
efficientnet-b7: https://github.com/lukemelas/EfficientNet-PyTorch/releases/download/1.0/efficientnet-b7-dcc49843.pth

一些想法:

  • 优点:思路简洁、通用性强、实验充分
  • 局限:搜索成本仍高、对小模型优化有限
  • 启发:复合思想可推广到其他模型(如 Transformer)
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐