【论文阅读】-- EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
摘要:Google Brain团队在ICML 2019提出EfficientNet,通过复合缩放方法(Compound Scaling)系统平衡网络深度、宽度和分辨率(d=α^φ, w=β^φ, r=γ^φ),约束α·β²·γ²≈2以保证计算量线性增长。基于神经架构搜索的EfficientNet-B0至B7系列在ImageNet上实现SOTA(B7达84.4% top-1),参数量减少9.6倍且迁

文章目录
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)
更多推荐



所有评论(0)