【论文精读】EfficientNet

摘要

       以往的卷积网络模型通过缩放深度,宽度和图像大小的其中之一或之二来扩大网络以实现更好的结果,但这种思想下经常产生次优的精度和效率的算法。

       本文认为通过同时平衡网络宽度、深度、分辨率的缩放倍数来扩大卷积网络,可以达到更好的精度和效率。

框架

优化目标

       定义卷积网络层 i i i为:
Y i = F i ( X i ) Y_i=F_i(X_i) Yi=Fi(Xi)

       其中 F i F_i Fi是卷积算子, Y i Y_i Yi为输出张量, X i X_i Xi为输入张量。 X i X_i Xi的张量形状为 < H i , W i , C i > l <H_i,W_i,C_i>^l <Hi,Wi,Ci>l H i H_i Hi W i W_i Wi为输入高宽, C i C_i Ci为通道数。则 k k k层卷积网络 N N N可以定义为:
N = F k ⊙ ⋯ ⊙ F 2 ⊙ F 1 ( X 1 ) = ⊙ j = 1 … k F j ( X 1 ) N=F_k\odot\cdots\odot F_2 \odot F_1(X_1)=\odot_{j=1 \dots k}F_j(X_1) N=FkF2F1(X1)=j=1kFj(X1)

       ConvNet通常被划分为多个阶段,每个阶段除了第一层卷积执行下采样,其余所有卷积层具有相同的结构,故可将卷积网络定义 s s s阶段网络:
N = ⊙ i = 1 … s F i L i ( X < H i , W i , C i > ) N=\odot_{i=1\dots s}F^{L_i}_i(X_{<H_i,W_i,C_i>}) N=i=1sFiLi(X<Hi,Wi,Ci>)

       其中 F i L i F^{L_i}_i FiLi表示层 F i F_i Fi i i i阶段重复 L i L_i Li次, < H i , W i , C i > <H_i,W_i,C_i> <Hi,Wi,Ci>为其输入维度。
image
       算法目标为找到使网络 N N N最优的深度 L i L_i Li、宽度 C i C_i Ci和分辨率 ( H i , W i ) (H_i,W_i) (Hi,Wi)缩放比,通过在这几个维度缩放网络从而得到最优网络结构,如上图。为了减小搜索空间及节约计算资源,固定 F i F_i Fi,且限制了所有网络层必须以恒定的比例均匀缩放。故优化目标可以定义为对任何给定的资源约束下最大化模型的精度,表述为优化问题为:
max ⁡ d , w , r A c c u r a c y ( N ( d , w , r ) ) s . t . N ( d , w , r ) = ⊙ i = 1 … s F ˜ i d ⋅ L ˜ i ( X < r ⋅ H ˜ i , r ⋅ W ˜ i , w ⋅ C ˜ i > ) M e m o r y ( N ) ≤ t a r g e t _ m e m o r y F L O P S ( N ) ≤ t a r g e t _ f l o p s \max_{d,w,r} \ Accuracy(N(d,w,r)) \\ s.t. \ \ \ N(d,w,r)=\odot_{i=1\dots s}\~F^{d\cdot \~L_i}_i(X_{<r\cdot\~H_i,r\cdot\~W_i,w\cdot\~C_i>}) \\ Memory(N)\le target\_memory \\ FLOPS(N)\le target\_flops d,w,rmax Accuracy(N(d,w,r))s.t.   N(d,w,r)=i=1sF˜idL˜i(X<rH˜i,rW˜i,wC˜i>)Memory(N)target_memoryFLOPS(N)target_flops

       其中 w , d , r w,d,r w,d,r为缩放网络宽/高度、深度、分辨率的系数, F ˜ i , L ˜ i , H ˜ i , W ˜ i , C ˜ i \~F_i,\~L_i,\~H_i,\~W_i,\~C_i F˜i,L˜i,H˜i,W˜i,C˜i为baseline网络的预定义参数,即EfficientNet-B0,具体配置为下图。
image

维度缩放

       上述优化问题的主要困难在于最优的 w , d , r w,d,r w,d,r相互依赖,且各值在不同的资源约束下都会发生变化,传统的方法主要在其中一个维度上缩放网络,如缩放深度可以使卷积网络捕捉到更丰富、更复杂的特征;缩放宽度可以使卷积网络捕获更细粒度的特征,并且更容易被训练;缩放分辨率可以使卷积网络捕获更细粒度的模式。然而,过深的网络会导致梯度消失问题;过宽但较浅的网络往往难以捕获高层特征;过高的分辨率会导致精度增益降低。
image
       故得出结论,扩展网络宽度、深度或分辨率的任何维度都可以提高精度,但对于较大的模型,精度增益会降低。如上图实验,缩放任一维度都会带来精度提升,但随着倍率的增加,提升会越来越小,直至饱和。

复合缩放

image
       由于不同维度并不独立,故需要协调和平衡不同的缩放维度。上图实验比较了不同网络深度和分辨率下的宽度缩放带来的精度提升。观察到,只扩展网络宽度,精度会迅速饱和。而通过更深的网络和更高的分辨率,宽度扩展在相同的成本下可以获得更好的精度。

       故得出结论,为了更高的精度,应当平衡网络宽度、深度和分辨率。定义复合系数 ϕ \phi ϕ平衡网络的宽度、深度和分辨率,则定义:
d e p t h : d = α ϕ w i d t h : w = β ϕ r e s o l u t i o n : r = γ ϕ s . t . α ⋅ β 2 ⋅ γ 2 ≈ 2 α ≥ 1 , β ≥ 1 , γ ≥ 1 depth: \ \ \ d=\alpha^{\phi} \\ width: \ \ \ w=\beta^{\phi} \\ resolution: \ \ \ r=\gamma^{\phi} \\ s.t. \ \ \ \ \alpha \cdot\beta^2 \cdot\gamma^2 \approx 2 \\ \ \ \ \ \ \ \ \ \ \ \alpha \ge 1, \beta \ge 1, \gamma \ge 1 depth:   d=αϕwidth:   w=βϕresolution:   r=γϕs.t.    αβ2γ22          α1,β1,γ1

       其中 α , β , γ α, β, γ α,β,γ是常量,通过网格搜索确定,指定如何将资源分配给网络宽度、深度和分辨率; ϕ \phi ϕ是一个用户指定的系数,控制模型的资源数量。

       卷积网络深度加倍时计算量也会加倍,网络宽度或分辨率加倍时计算量会增加四倍,故卷积操作的计算量与 d , w 2 , r 2 d,w^2,r^2 d,w2,r2成正比。由于卷积网络的主要计算成本是卷积运算,故采用上述方程扩展卷积网络将大约增加总计算量(FLOPS) ( α ⋅ β 2 ⋅ γ 2 ) ϕ (\alpha \cdot\beta^2 \cdot\gamma^2)^{\phi} (αβ2γ2)ϕ,令 α ⋅ β 2 ⋅ γ 2 ≈ 2 \alpha \cdot\beta^2 \cdot\gamma^2 \approx 2 αβ2γ22,则指定混合系数 ϕ \phi ϕ后,网络的计算量大概会是之前的 2 ϕ 2^{\phi} 2ϕ倍。

算法架构

       以EfficientNet-B0为baseline,使用 A C C ( m ) × [ F L O P S ( m ) / T ] w ACC(m) \times[FLOPS(m)/T]^w ACC(m)×[FLOPS(m)/T]w作为优化目标,其中 A C C ( m ) ACC(m) ACC(m) F L O P S ( m ) FLOPS(m) FLOPS(m)为模型 m m m的精度和计算量, T T T是目标计算量, w = − 0.07 w=-0.07 w=0.07为控制精度和计算量平衡的超参数。利用多目标神经架构搜索来优化目标,则采用如下复合缩放步骤扩大模型规模:

  1. 固定 ϕ = 1 ϕ = 1 ϕ=1,假设有两倍以上的可用资源,并根据优化等式2、3对 α , β , γ α, β, γ α,β,γ进行网格搜索。实验发现在 α ⋅ β 2 ⋅ γ 2 ≈ 2 α \cdot β^ 2 \cdot γ^ 2 ≈ 2 αβ2γ22的约束下,EfficientNet-B0的最佳值是 α = 1.2 , β = 1.1 , γ = 1.15 α = 1.2, β = 1.1, γ = 1.15 α=1.2,β=1.1,γ=1.15
  2. α = 1.2 , β = 1.1 , γ = 1.15 α = 1.2, β = 1.1, γ = 1.15 α=1.2,β=1.1,γ=1.15固定,并利用不同的 ϕ ϕ ϕ及等式3扩展baseline,以获得EfficientNet-B1到B7。

       本文方法通过在小的baseline上进行步骤1,然后对所有其他模型使用相同的缩放系数。

实验

对比试验

image
       上图为将EfficientNet应用于MobileNets和的ImageNet的结果,与其他一维缩放方法相比,所提出的复合缩放方法提高了这些模型的精度,表明所提出的方法对一般ConvNets的有效性。
image
       上图实验为从相同的基准EfficientNet-B0扩展的所有EfficientNet模型的性能。EfficientNet在类似精度下比其他ConvNets使用的参数和FLOPS少一个数量级。其中,EfficientNet-B7以66M参数和37B FLOPS实现了84.3%的top1精度,超越了之前最好的GPipe。
imageimage
       上两图实验了过往最优ConvNets模型的参数/精度和FLOPS/精度曲线,其中EfficientNet比其他ConvNets用更少的参数和FLOPS实现了更好的精度。EfficientNet-B3使用比ResNeXt-101少18倍的FLOPS实现了更高的精度。
image
       上图实验了几个代表性卷积网络在CPU上运行20次的平均推理延迟。EfficientNet-B1比ResNet-152快5.7倍,而EfficientNet-B7比GPipe快6.1倍。这表明EfficientNet具有更快的推理速度。

迁移学习

image
       本实验在常用的迁移学习数据集(详细配置如上图)上实验EfficientNet,所测试的模型在ImageNet预训练checkpoint并在新的数据集上微调。
image
       上图显示了迁移学习性能:

  • 与NASNet-A等公共模型相比, EfficientNet以减少4.7倍平均(最高21倍)的参数实现了更好的精度
  • 与DAT、GPipe等最先进的模型相比,EfficientNet在8个数据集中的5个数据集上超过了它们的精度,但使用的参数少了9.6倍

消融实验

image
       上图比较了各种模型的精度参数曲线。EfficientNets在参数减少了一个数量级的情况下实现了比其他模型更好的精度。
image
       上图比较了不同缩放方法模型的类激活图,所有这些模型都从同一baseline缩放。 观察到,复合缩放的模型倾向于关注更相关、物体细节更多的区域,而其他模型要么缺乏物体细节,要么无法捕捉图像中的所有物体。
image
       上图为不同缩放方法模型的统计数据,对应前面的类激活图。
image
       上图比较了EfficientNet-B0的不同缩放方法在ImageNet训练的模型性能。观察到,所有的缩放方法都以更多的FLOPS为代价来提高精度,但复合缩放方法可以进一步提高精度,比其他一维缩放方法最高可提高2.5%,表明所提出的复合缩放的重要性。
image
       上图实验EfficientNet在ImageNet测试集和验证集上的性能比较,测试集和验证集性能非常接近,证明实验可靠性。

reference

Tan, M. , & Le, Q. V. . (2019). Efficientnet: rethinking model scaling for convolutional neural networks.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/470598.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

尚硅谷最新Node.js 学习笔记(四)

目录 八、express框架 8.1、express介绍 8.2、express使用 express下载 express初体验 8.3、express路由 什么是路由&#xff1f; 路由的使用 获取请求参数 获取路由参数 8.4、express响应设置 8.5、express中间件 什么是中间件&#xff1f; 中间件的作用 中间件…

VScode中配置 C/C++ 环境 | IT拯救者

文章目录 0 引言1. 下载编辑器VScode2. 下载编译器MinGW并解压3. 将MinGW添加至环境变量4. 配置VScode插件5. 运行代码6. 调整和优化7. 提示8. 例行格式条款9. 例行格式条款 0 引言 由于VScode毛毛张使用不习惯&#xff0c;因此配置教程记不住&#xff0c;不过毛毛张看到一篇不…

【数据结构】LRU Cache

文章目录 LRUCache LRUCache 1. LRUCache是一种缓存的替换技术&#xff0c;在CPU和main memory之间根据计算机的局部性原理&#xff0c;往往会采用SRAM技术来构建CPU和主存之间的高速缓存&#xff0c;DRAM(dynamic random access memory)用于构建主存&#xff0c;LRUCache这种…

论文阅读-PIM-tree:一种面向内存处理的抗偏移索引

论文名称&#xff1a;PIM-tree: A Skew-resistant Index for Processing-in-Memory 摘要 当今的内存索引性能受到内存延迟/带宽瓶颈的限制。Processing-in-memory (PIM) 是一种新兴的方法&#xff0c;可能通过实现低延迟内存访问&#xff0c;其聚合内存带宽随 PIM 节点数量扩…

文案馆头像壁纸微信小程序源码【支持流量主】

文案馆头像壁纸微信小程序源码【支持流量主】 源码介绍&#xff1a;文案馆头像壁纸微信小程序源码是一款可以获取套图、头像、壁纸的小程序。小程序源码内置流量主功能 需求环境&#xff1a;微信小程序phpmysql 下载地址&#xff1a; https://www.changyouzuhao.cn/13453.ht…

新机Word/PowerPoint新建空白文档后闪退问题

首先可以尝试一下常规的修复&#xff1a; 设置-应用-安装的应用-搜索office-点击Micros Office Home and Student...右侧三个点-选择修改-点击是-快速修复-修复 再不行就按上面的选择联机修复&#xff0c;这个会卸载现有Office然后自动帮你重新下载 我做了以上两个都没有解决问…

项目访问量激增该如何应对

✨✨ 欢迎大家来到喔的嘛呀的博客✨✨ &#x1f388;&#x1f388;希望这篇博客对大家能有帮助&#x1f388;&#x1f388; 目录 引言 一. 优化数据库 1.1 索引优化 1.2 查询优化 1.3 数据库设计优化 1.4 事务优化 1.5 硬件优化 1.6 数据库配置优化 二. 增加服务器资源…

2024 前端面试题(GPT回答 + 示例代码 + 解释)No.21 - No.40

本文题目来源于全网收集&#xff0c;答案来源于 ChatGPT 和 博主&#xff08;的小部分……&#xff09; 格式&#xff1a;题目 h3 回答 text 参考大佬博客补充 text 示例代码 code 解释 quote 补充 quote 上一篇链接&#xff1a;2024 前端面试题&#xff08;GPT回答 示例…

html的表格标签

html的表格标签 table标签:表示整个表格tr:表示表格的一行td:表示一个单元格th:表示表头单元格.会居中加粗thead:表格的头部区域 (注意和th区分,范围是比th要大的).tbody:表格得到主体区域. table包含tr , tr包含td或者th. 表格标签有一些属性&#xff0c;可以用于设置大小边…

第13讲我创建的投票列表实现

新建我创建的投票页面 {"path": "pages/createVoteList/createVoteList","style": {"navigationBarTitleText": "我创建的投票"}}个人中心页面&#xff0c;加下 点击 “我创建的投票”跳转列表页面 goVoteList:function(){u…

【Java程序员面试专栏 分布式中间件】ElasticSearch 核心面试指引

关于ElasticSearch 部分的核心知识进行一网打尽,包括ElasticSearch 的基本概念,基本架构,工作流程,存储机制等,通过一篇文章串联面试重点,并且帮助加强日常基础知识的理解,全局思维导图如下所示 基础概念 从数据分类入手,考察全文索引的基本概念 现实世界中数据有哪…

【网络攻防实验】【北京航空航天大学】【实验四、防火墙配置(Firewall Configuration)实验】

实验四、防火墙配置(Firewall Configuration)实验 一、 实验环境搭建 1. Kali Linux网络配置 将Kali Linux虚拟机网卡1设置为NAT网络模式,ip地址为10.0.2.5,如下图所示: 配置NAT网络端口转发: 将Kali Linux网卡2设置为内部网络模式: 配置Kali Linux网卡1: 类似地,配…