IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深度学习分类模型 EfficientNet阅读笔记 -> 正文阅读

[人工智能]深度学习分类模型 EfficientNet阅读笔记


前言

今天开始复习下 EfficientNet 图像分类模型,之前有读过,但是已经忘的差不多了,所以在这里记下笔记,方便以后回顾。

论文标题: EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks


摘要(Abstract)

卷积神经网络是基于固定资源限制的开发,如果有更多资源,可以对其进行扩展得到更高的准确率。论文中,系统研究了模型扩展并且证实:认真平衡网络深度,宽度和分辨率可以获得更好的性能。基于这一发现,论文提出一种新的扩展方法:通过使用一个简单但是高效的组合系数compound coefficient)来统一扩展深度、宽度、分辨率的维度。论文在扩展的MobileNets和ResNet 模型上验证这一方法的有效性。

更进一步,论文使用了神经网络架构搜索设计了一个新的基线网络,对它进行扩展可以得到模型家族 - EfficientNets。EfficientNets比之前的卷积神经网络获得更好的准确率和效率。尤其是,论文提出的EfficientNet-B7在ImageNet数据集上top-1准确率为84.3%,是当时最优结果;在推理上,比当时已有最优模型快6.1倍,模型小8.4倍。EfficientNets的迁移能力也很好,在CIFAR-100数据集上实现最优准确率-91.7%, 在Flowers数据集上准确率达到98.8%,在其它3个迁移学习数据集上有更少的参数。

源码:https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet.

(这里的宽度代表通道数, 深度代表网络模型层数,分辨率表示特征图的大小,即特征图的宽度和高度)


1. 介绍(Introduction)

扩展卷积神经网络的方法被广泛用于提高网络准确率,例如:通过对ResNet使用更多的层(深度),即从ResNet-18到ResNet-200,确实提高了模型准确率;通过扩展一个基线模型到4倍大小,GPipe在ImageNet top-1准确率达到84.3%。然而,这种卷积神经网络的扩展方法一直以来都不能被人较好的理解并且有很多方法可以实现它。最常用的扩展方法就是扩展深度或者宽度。另一个较少用,但是逐渐流行的扩展方法就是增加图像分辨率。之前的工作中,一般都是扩展这三个维度中的一个。尽管任意扩展其中的两个或者三个也是可能的,但是这种任意扩展需要耐心地人工调整,并且通过仅能获得次优的准确率和效率。
在这里插入图片描述

这篇论文则研究并思考了扩展卷积神经网络这一过程。论文特别探索这一中心问题:有没有什么指导方法能够扩展卷积神经网络来实现更好的准确率和效率? 论文的研究表明:平衡网络宽度/深度/分辨率的所有温度是至关重要的,令人感到惊喜的是这**种平衡可以通过简单地通过一个常量比率扩展这三个维度中的每一个来实现。**基于这个发现,论文提出了一个简单但是有效的 组合扩展方法。不像传统实践那样:任意扩展这三个维度,论文的方法是使用固定的扩展系数集合来统一扩展网络的宽度、深度和分辨率。比如,可以使用 2 N 2^N 2N倍的计算资源,可以分别简单增加网络深度、宽度和图像大小的 α N \alpha ^N αN倍, β N \beta ^N βN倍、 γ N \gamma ^N γN倍。这里的 α , β , γ \alpha,\beta,\gamma α,β,γ表示常量系数,它们是通过在原始小模型上进行小的网格搜索得到的。Figure.2揭示了论文方法和传统方法的区别。

这种组合扩展方法是有意义的,因为如果输入图像更大,网络需要更多的层来增加感受野范围,需要更多的通道来在更大的图像上捕获到更多的细粒度特征。事实上,之前的理论和经验结果表明在网络深度和宽度间存在明确的关系,论文中首先需要量化网络深度、宽度和分辨率这三个维度的关系。

在这里插入图片描述

论文证实:论文中的扩展方法在MobileNets和ResNet上表现不错。需要注意的是,模型扩展的有效性重度依赖与基线网络;更进一步,论文使用了神经架构搜索来开发一个新的基线网络,对它进行扩展得到一个新的模型家族-EfficientNetsFigure.1总结了在ImageNet数据集上性能,从图中可以看出,EfficientNets超过了其它卷积神经网络。尤其是EfficientNet-B7超过了GPipe模型的准确率,但是却仅用了8.4 倍小的参数量,在推理上快6.1倍。与被广泛使用的ResNet-50相比,EfficientNet-B4 提升了top-1准确率从76.3%到83.0%(+6.7%)却有相似的计算量(FLOPS)。除了在ImageNet数据集上,EfficientNets在迁移学习上也表现不错,在8个被广泛使用的数据集上,其中有5个EfficientNets的准确率达到最优,同时和其它卷积神经网络相比,参数量减少了21倍。


2. 相关工作(Related Work)

这一章节主要从卷积神经网络的准确率、效率以及模型扩展三个方面描述了现有网络模型和技术发展情况,以此引出论文主要解决的问题:如何高效扩展卷积神经网络达到更好的效率和准确率
详细内容请大家自行阅读原文。


3. 组合模型扩展(Compound Model Scaling)

这一章节,论文将公式化扩展问题,研究不同的方法,并提出新的扩展方法。

3.1 问题公式化(Problem Formulation)

一个卷积层 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?表示输入张量(形状为 < H i , W i , C i > <H_{i}, W_{i}, C_{i}> <Hi?,Wi?,Ci?>,这里 H i , W i H_{i},W_{i} Hi?Wi?表示空间维度, C i C_{i} Ci?表示通道维度。一个卷积网络 N N N可被表示为组合层的列表:
在这里插入图片描述
,卷积网络的层通常被分成多个阶段(stages),并且每一阶段的所有层共享相同的架构,例如, ResNet共有5个阶段,每一阶段的所有层有相同的卷积类型,第一层除外,它主要用于下采样。因此,定义卷积网络如下公式:
在这里插入图片描述
这里 F i L i F_{i}^{L_{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?>表示第 i i i层的输入张量 X X X的形状。Figure.2(a)列出了一个卷积网络,它的空间维度随着层数的递增而缩小,但是通道数却在递增,例如,初始输入形状为 < 224 , 224 , 3 > <224,224,3> <224,224,3>,最后输出形状为 < 7 , 7 , 512 > <7,7,512> <7,7,512>。不像常规卷积网络的设计:主要集中于探索最好的层架构 F i F_{i} Fi?,模型扩展尝试去扩展网络的深度 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?。通过固定 F i F_{i} Fi?,模型扩展简化了有新的资源限制的设计问题,但是仍然有很大的设计空间来探索每一层中不同的 L i , C i , H i , W i L_{i},C_{i},H_{i},W_{i} Li?,Ci?,Hi?,Wi?。为了进一步缩小设计空间,论文限制:所有层必须使用常量比率来统一扩展论文的目标是:对给定的资源限制最大化模型准确率,公式如下所示:
在这里插入图片描述
这里, w , d , r w,d,r w,d,r分别表示扩展网络的宽度、深度和分辨率;
在这里插入图片描述
上述变量代表基线模型的预定义参数,参考Table.1。
在这里插入图片描述

3.2 扩展维度(Scaling Dimensions)

问题2 的主要困难在于要优化的参数 d , w , r d,w,r d,w,r是彼此依赖的并且在不同资源限制下这些值是不同的。由于这个难点,传统方法主要通过改变这些维度中的一个来扩展卷积网络。
在这里插入图片描述
Depth(d)深度: 扩展网络深度是最常用的方法。有这样一种直觉知识:越深的卷积网络能够捕获更加丰富和复杂的特征,在新任务上泛化很好。然而,越深的网络通常训练起来越困难,这主要是因为梯度消失问题。虽然有些技术,像是跳跃连接,批归一化,可以缓解这一问题,但是非常深的网络通常准确率收益却在减少,比如ResNet-1000和ResNet-1-1有相似的准确率。Figure.3(middle)展示论文用不同深度系数来扩展基线模型的研究数据,验证了:非常深的网络通常得到的准确率收益减少。

Width(w)宽度:扩展网络宽度通常被用于比较小的模型。更宽的网络趋向于能够捕获更加细粒度的特征,并且训练更简单。然而,极其宽且浅的网络通常在捕获更高级别的特征方便比较困难。Figure.3(left)表明当网络变得的很宽时,准确率很快饱和。

Resolution ( r )分辨率:输入图像有更高分辨率,那么卷积网络能够捕获更多细粒度特征。从之前的神经网络输入图像分辨率为 224 × 224 224\times 224 224×224开始,现在的卷积网络趋向于使用 299 × 299 299\times 299 299×299,或者 331 × 331 331\times 331 331×331来获得更好的准确率。最忌,GPipe在ImageNet数据集上实现最优准确率,它使用输入图像为 480 × 480 480\times 480 480×480。更高的分辨率,例如 600 × 600 600\times 600 600×600,也被广泛用于目标检测卷积网络中。Figure.3(right)展示了扩展网络分辨率的结果:更高的分辨率确实提升了准确率,但是对于非常高的图像分辨率,准确率的收益减少。

上述分析得到第一个发现:
发现1 - 扩展网络的深度、宽度、分辨率中任一维度都能提高准确率,但是对于更大的模型,准确率的收益(斜率)却在减少。

3.3 组合扩展(Compound Scaling)

论文发现不同的扩展维度不是独立的。根据直觉知识:对于更高分辨率的图像,应该增加网络的深度,这样可以增加感受野以此来捕获图像中更过相似特征。同时,当分辨率更高时,也应该增加网络宽度,这样就可以获得更多细粒度特征。这些直觉知识表明:我们应该平衡不同扩展维度而不是仅扩展单一维度。

在这里插入图片描述
为了验证这些直觉知识,论文比较了不同网络深度和分辨率下宽度扩展的结果,如图Figure.4所示。
如果仅扩展网络宽度,而不改变深度和分辨率,准确率很快就饱和。当使用更大的深度和分辨率时,宽度扩展获得更好的准确率,同时保持相同的计算资源消耗(FLOPS)。

这些结果带来了第二个发现:
发现2 - 为了获得更好的准确率和效率,在卷积神经网络扩展中平衡网络宽度、深度和分辨率所有维度是极其重要的。

事实上,之前的论文中已经尝试平衡网络宽度和深度,到那时都要求人工调整。

在这篇论文中,提出一种新的组合扩展方法,使用一个组合系数 ? \phi ?来统一扩展网络的深度、宽度和分辨率:
在这里插入图片描述
这里, α , β , γ \alpha, \beta, \gamma α,β,γ是常量,通过小的网格搜索来确定。 ? \phi ?是用户指定的系数,用它来控制:对于模型扩展来说,有多少资源是可用的,这里 α , β , γ \alpha, \beta, \gamma α,β,γ指出怎样将额外的资源分别赋予网络的深度、宽度和分辨率。需要注意的是,常规卷积操作的计算量(FLOPS)关系为 d , w 2 , r 2 d, w^{2}, r^{2} d,w2,r2,比如:双倍的网络深度需要双倍的计算量,但是双倍的网络宽度或者分辨率需要四倍的计算量。因为卷积操作通常支配了卷积网络的计算量,使用公式(3)扩展一个卷积网络大约增加计算量 ( α ? β 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?γ2)2,这么做是为了对于任一新的 ? \phi ?, 计算量大约增加 2 ? 2^{\phi} 2?倍。

4. EfficientNet架构(EfficientNet Architecture)

因为模型扩展不会改变基线模型的层操作 F i ^ \hat{F_{i}} Fi?^?,因此有一个好的基线模型是非常重要的。论文将使用已有的卷积模型来评估论文提出的扩展方法,但是为了更好的证实论文扩张方法的有效性,论文也开发了一个新的仅有移动端模型大小的基线,叫做 E f f i c i e n t N e t EfficientNet EfficientNet

受到Tan等人2019年发表的论文的鼓舞,论文通过使用一个多目标神经架构搜索(它优化了准确率和计算量)开发了这个基线模型。论文使用了和Tan等人提出的相同的搜索空间和相同的优化目标 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是用于控制准确率和计算量的一个平衡超参数。和Tan等人不同的是,论文优化 F L O P S FLOPS FLOPS而不是延迟,因为没有明确的硬件设备。论文的搜索产生了一个高效网络,被称为 E f f i c i e n t N e t ? B 0 EfficientNet-B0 EfficientNet?B0。因为和Tan等人使用相同的搜索空间,因此这个模型和MnasNet是相似的,当然EfficientNet-B0比MnasNet要大一些,由于有更大的计算量目标(FLOPS目标是400M)。Table.1展示了EfficientNet-B0的架构。它的主要构建块是移动端反向瓶颈MBConv,也添加了SE模块进行优化。

在这里插入图片描述

从基线模型 E f f i c i e n t N e t ? B 0 EfficientNet-B0 EfficientNet?B0开始,论文使用组合扩展方法来进行模型扩展,主要包括两步骤:
STEP 1: 首先固定 ? = 1 \phi = 1 ?=1,假设有两倍资源可用,使用公式(2)和公式(3)对 α , β , γ \alpha, \beta,\gamma α,β,γ在一个小的网络搜索中确定最优值,对于EfficientNet-B0, 最优值为 α = 1.2 , β = 1.1 , γ = 1.15 \alpha = 1.2, \beta = 1.1, \gamma = 1.15 α=1.2,β=1.1,γ=1.15,限制为 α ? β 2 ? γ 2 ≈ 2 \alpha \cdot \beta^{2} \cdot \gamma^{2} \approx 2 α?β2?γ22

STEP 2: 固定 α , β , γ \alpha, \beta,\gamma α,β,γ为常量,然后使用公式(3)通过不同的 ? \phi ?来扩展基线模型,获得EfficientNet-B1EfficientNet-B7,如表Table.2所示。

论文中没有提到对于 E f f i c i e n t N e t ? B 1 ? t o ? B 7 EfficientNet-B1\ to\ B7 EfficientNet?B1?to?B7对应的 ? \phi ?值到底是多少,可能要到源码中查看了)。

注意,直接在更大的模型上来搜索 α , β , γ \alpha,\beta,\gamma α,β,γ的值可能获得更好的结果,但是这样需要耗费更多搜索成本。论文的方法通过仅在小的极限模型上进行搜索来解决了这一问题(step1),然后在所有其它模型上使用相同的扩展系数(step2)。


5. 实验(Experiments)

这一章节主要对已有的卷积网络和论文提出的EfficientNets进行对比实验,证实论文提出的扩展方法是目前的最优结果。
这里仅对结果进行展示,不做详细说明,请大家阅读原论文来获取详细信息。

5.1 对MobileNets和ResNets进行扩展

在这里插入图片描述

5.2 Efficientnet在ImageNet数据集上的结果

在这里插入图片描述

在这里插入图片描述

5.3 EfficientNet在迁移学习上的结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.讨论(Discussion)

在这里插入图片描述
为了证实扩展方法在EfficientNet模型上的贡献,Figure.8是使用相同基线模型EfficientNet-B0来对不同扩展方法的一个对比。一般来说,所有的扩展方法都能提高准确率但是都伴随着更多的计算量消耗,但是论文的组合扩展方法可以进一步提高准确率,和其他单一维度扩展方法相比,准确率上升 2.5 % 2.5\% 2.5%,这证实了论文提出的组合扩展方法的重要性。

在这里插入图片描述
在这里插入图片描述
为了进一步理解为什么论文提出的组合扩展方法比其他方法更好,Figure.7对比了类别激活图,它是使用不同扩展方法的几个表示模型。所有的模型都基于相同的基线来扩展,统计信息如Table.7所示。图片是从ImageNet验证集中随机挑选的。如图所示,组合扩展模型倾向于关注有更多对象细节的丰富区域,然而其它方法要么缺乏对象细节,要么不能够捕获图像中所有对象。

总结

这篇论文主要提出一种针对特定资源限制,基于基线模型,通过使用组合扩展方法,对网络深度、宽度和分辨率同时扩展,可以得到准确率和效率更好的模型。

这篇论文没有提出什么新的概念,是针对已有的单一扩展方法的提升,能够针对资源限制情景即给定的基线模型,得到准确率和效率更优的结果。

到这里,这篇论文就结束了,如有错误,敬请原谅,谢谢大家!

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-15 15:32:20  更:2021-08-15 15:37:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年4日历 -2025/4/26 23:36:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码