【论文精读】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.mzph.cn/news/684789.shtml

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

相关文章

TiDB in 2023, 一次简单的回顾丨PingCAP 唐刘

2023 年已经过去&#xff0c;TiDB 经过了一年的迭代&#xff0c;又往前进步了一点点&#xff0c;我们非常自豪的看到&#xff0c;TiDB 正在不断地帮助我们的客户成功&#xff0c;包括但不限于&#xff1a; ○ 首个云原生、分布式、全栈国产化银行核心业务系统投产上线丨TiDB …

找负环(图论基础)

文章目录 负环spfa找负环方法一方法二实际效果 负环 环内路径上的权值和为负。 spfa找负环 两种基本的方法 统计每一个点的入队次数&#xff0c;如果一个点入队了n次&#xff0c;则说明存在负环统计当前每个点中的最短路中所包含的边数&#xff0c;如果当前某个点的最短路所…

pytest教程-10-allue2生成html报告

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了pytest-html生成html报告的方法&#xff0c;本小节我们讲解一下使用allue2生成html报告。 自动化测试执行完成后我们需要展示给其他人看&#xff0c;这就要有自动化测试报告了。复杂的测试报告…

关于DVWA靶场Command Injection(命令注入)乱码的解决方案

乱码如下图&#xff1a; 出现乱码一般都是编码方式的问题&#xff0c;我们只需要对其换一种编码方式输出即可 靶场在 WWW 目录下&#xff0c;在靶场所在路径下有一个 dvwa 文件夹 进入之后找到 includes 文件夹 进入找到文件 dvwaPage.inc.php 右键&#xff0c;使用记事本打开…

C# CAD交互界面-自定义面板集-查找定位(六)

运行环境 vs2022 c# cad2016 调试成功 一、代码说明 1. 类成员变量声明&#xff1a; List<ObjectId> objectIds new List<ObjectId>(); // 用于存储AutoCAD实体对象的ObjectId列表 private static Autodesk.AutoCAD.Windows.PaletteSet _ps2; // 自定义浮动面板…

我的NPI项目之Android USB 系列(一) - USB的发展历史

设计目的 USB was designed to standardize the connection of peripherals to personal computers, both to exchange data and to supply electric power. 一个是为了标准化电脑连接外设的方法。 能够支持电脑和外设的数据交互和&#xff08;对外&#xff09;供电。 目前已…

【游戏开发各岗位的优势和劣势】

游戏开发各岗位的优势和劣势 在这个充满创意和技术的时代&#xff0c;游戏行业成为众多创新人才追求梦想的热土。对于那些准备踏入这个充满挑战与机遇的领域的新人来说&#xff0c;了解游戏开发的各个岗位及其独特性是至关重要的。游戏程序员、美术设计师和游戏策划——这三个…

【Docker】Docker Container操作案例 | 综合实战

文章目录 Docker Container操作案例容器的基本操作容器状态迁移容器批量处理技巧容器交互模式attached模式detached模式interactive模式 容器与宿主机内容复制容器自动删除容器自动重启容器环境变量设置容器详情查看容器执行单行命令容器镜像导入导出容器日志查看容器资源查看 …

【牛客面试必刷TOP101】Day22.BM16 删除有序链表中重复的元素-II和BM21 旋转数组的最小数字

作者简介&#xff1a;大家好&#xff0c;我是未央&#xff1b; 博客首页&#xff1a;未央.303 系列专栏&#xff1a;牛客面试必刷TOP101 每日一句&#xff1a;人的一生&#xff0c;可以有所作为的时机只有一次&#xff0c;那就是现在&#xff01;&#xff01;&#xff01;&…

c++之function和bind详解-SurfaceFlinger学习必备语法基础

背景 C中的function和bind是为了更方便地进行函数对象的封装和调用而设计的&#xff0c;在SurfaceFlinger源码中也是有很多使用部分。 比如分析Vsync相关源码时候有相关回调时候 可以看到这里的mRegistration就有个参数是 std::bind,怎么这里就可以进行回调呢&#xff1f; 所…

HTB pwn Evil Corp

程序分析 初始化功能 申请了一块正常块和一块可以执行shellcode的空间 登录 向正常块写入数据 字符宽度转换 漏洞分析 所有的输入都使用了fgetws函数这个函数,这个函数会把整个串的每一个字符按最低两个宽来接收输入,如果存在unicode32等等更宽的字符这个函数会把每个字符都…

蓝桥杯:C++二分算法

在基本算法中&#xff0c;二分法的应用非常广泛&#xff0c;它是一种思路简单、编程容易、效率极高的算法。蓝桥杯软件类大赛中需要应用二分法的题目很常见。 二分法有整数二分和实数二分两种应用场景 二分法的概念 二分法的概念很简单&#xff0c;每次把搜索范围缩小为上一…

AJAX——AJAX入门

1 什么是AJAX&#xff1f; Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;是一种用于在Web应用程序中实现异步通信的技术。 简单点说&#xff0c;就是使用XMLHttpRequest对象与服务器通信。它可以使用JSON、XML、HTML和test文本等格式发送和接收数据。 AJAX最吸…

【深入理解BEVFormer】BEVFormer

任务场景 多模态融合和多传感器融合 BEV&#xff1a;鸟瞰图 这个特征空间与每个视角都相关 早期是用后融合&#xff0c;目前比较流行的是特征级融合 自身运动补偿&#xff1a;如果按照像素点进行特征对齐&#xff0c;需要指定偏移量 x y两个方向 特征空间是自己定义的&#xf…

NumPyML 源码解析(五)

numpy-ml\numpy_ml\preprocessing\nlp.py # 导入必要的库和模块 import re import heapq import os.path as op from collections import Counter, OrderedDict, defaultdict import numpy as np# 定义英文停用词列表&#xff0c;来源于"Glasgow Information Retrieval G…

NBlog个人博客部署过程记录 -- 后端springboot + 前端vue

项目是fork的Naccl大佬NBlog项目&#xff0c;页面做的相当漂亮&#xff0c;所以选择了这个。可以参考2.3的效果图 惭愧&#xff0c;工作两年了也每个自己的博客系统&#xff0c;趁着过年时间&#xff0c;开始搭建一下. NBlog原项目的github链接&#xff1a;Naccl/NBlog: &#…

毕业设计vue+php幼儿园网站系统yl567

幼儿园网站系统。采用vscode集成IDE对幼儿园网站系统统进行开发,整合系统的各个模块。 拟开发的幼儿园网站系统通过测试,确保在最大负载的情况下稳定运转,各个模块工作正常,具有较高的可用性。系统整体界面简洁美观,用户使用简单,满足用户需要。在因特网发展迅猛的当今社会,幼儿…

【计算机网络】网络层之IP协议

文章目录 1.基本概念2.协议头格式3.网段划分4.特殊的IP地址5.IP地址的数量限制6.私有IP地址和公网IP地址7.路由 1.基本概念 IP地址是定位主机的&#xff0c;具有一个将数据报从A主机跨网络可靠的送到B主机的能力。 但是有能力就一定能做到吗&#xff0c;只能说有很大的概率。…

[职场] 事业单位医疗岗常见的面试题目 #微信#微信#微信

事业单位医疗岗常见的面试题目 面试是步入社会以及就业过程中必须经历的一个首要阶段&#xff0c;也是实现就业必经的之道&#xff0c;可以说面试是双向选择和考试考核评价的过程&#xff0c;是企业选择应聘者的同时也应聘者也在选择企业。 一.常见的面试题目 1.对医学基础知…

计网体系结构

计算机网络的概述 概念 网络&#xff1a;网状类的东西或系统。 计算机网络&#xff1a;是一个将分散的、具有独立性功能的计算机系统&#xff0c;通过通信设备与线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统。即计算机网络是互连(通过通信链路互连…