当前位置:网站首页>典型CCN网络——efficientNet(2019-Google-已开源)
典型CCN网络——efficientNet(2019-Google-已开源)
2022-08-04 05:29:00 【TigerZ*】
概述
由于本网络本质上并不是人工设计的网络,所以个人认为,重点是看网络的获取思路以及有哪些值得注意的细节,对于网络的每一层,感觉不是那么重要(不像resnet等为人工设计)。
创新点
探索网络的宽度、深度、输入图片分辨率单一因素对性能的影响,以及如何同时组合优化三个因素来提升网络的性能,最终给出了efficientNet B0-B7共计8个模型,满足不同的场景的需求。
详细解读
一、网络的宽度、深度、输入图片分辨率的探索
resnet通过加深网络的宽度,inception通过加宽网络的宽度,resnext通过同时加深网络和加宽网络,都在一定范围内获得了性能的提升。因此作者致力于去解决两个疑问,单一维度提升极限以及混合维度同时优化。

1、单一维度实验。对三个维度固定两个,只放大其中一个,得到结果如下:
图中从左至右分别是只放大网络宽度(width, w 为放大倍率)、网络深度(depth, d 为放大倍率)、图像分辨率(resolution, r 为放大倍率) 的结果,可以观察到单个维度的放大最高精度只在 80 左右。本次实验作者得出一个观点:三个维度中任一维度的放大都可以带来精度的提升,但随着倍率越来越大,提升却越来越小。

2、混合维度实验。尝试在不同的 d, r 组合下变动 w,得到下图:


从实验结果可以看出最高精度比之前已经有所提升,且不同的组合效果还不一样,最高可以到 82 左右。作者又得到一个观点,得到更高的精度以及效率的关键是平衡网络宽度,网络深度,图像分辨率三个维度的放缩倍率(d, r, w)。
二、混合维度设计网络。
由于看到,同时优化网络的宽度、深度、输入图片分辨率可以获得更好的性能,那么具体怎么操作,去直接NAS出模型?显然这样的操作的计算代价简直天文数字。因此作者转变思路:
1、初代 EfficientNet-B0
网络结构作者主要借鉴了 MnasNet,采取了同时优化精度(ACC)以及计算量(FLOPS)的方法,由此产生了初代 EfficientNet-B0,(个人认为这部分并非本文重点)其结构如下图:

展开后如下图左,Efficientnet-B0由1个Stem+16个大Blocks堆叠构成,16个大Blocks可以分为1、2、2、3、3、4、1个Block。Block的通用结构如下,其总体的设计思路是Inverted residuals结构和残差结构,在3x3或者5x5网络结构前利用1x1卷积升维,在3x3或者5x5网络结构后增加了一个关于通道的注意力机制,最后利用1x1卷积降维后增加一个大残差边。

对于每一个block,如上图右侧,我们需要关注的细节:使用1*1卷积升维、depthwise 卷积降低计算量、swish 激活函数、SE模块、BN模块、3*3与5*5卷积的使用。
2、提出了混合维度放大法(compound scaling method)
该方法使用一个混合系数φ 来决定三个维度的放大倍率(重点创新):

其中,α、β、γ均为常数(不是无限大的因为三者对应了计算量),可通过网格搜索获得。混合系数 φ可以人工调节。考虑到如果网络深度翻番那么对应计算量会翻番,而网络宽度或者图像分辨率翻番对应计算量会翻 4 番,即卷积操作的计算量(FLOPS) 与d, w*w, r*r 成正比,因此上图中的约束条件中有两个平方项。在该约束条件下,指定混合系数 φ 之后,网络的计算量大概会是之前的 2^φ 倍。
具体操作而言,有了初代的网络结构之后,放大就分为下面两步:
第一步,首先固定 φ为 1,即设定计算量为原来的 2 倍,在这样一个小模型上做网格搜索(grid search),得到了最佳系数为 α=1.2、β=1.1、γ=1.15。
第二步,固定 α=1.2、β=1.1、γ=1.15 ,使用不同的混合系数 φ 来放大初代网络得到 EfficientNet-B1 ~ EfficientNet-B7。
整体的结果如下:

三、网络表现
1、跟其他网络的对比:

2、作者还用该方法放大了常用网络 MobileNets和 ResNets
在计算量相当的情况下都得到了比之前更高的精度。这一部分概括起来就是我比你快,还比你准。

3、CAM图解释性分析
如图所示,从ImageNet验证集中随机抽取图像,模型都是从相同的基线进行缩放的,复合缩放模型更倾向于关注具有更多目标细节的相关区域,而其他模型要么缺乏目标细节,要么无法捕获图像中的所有目标。

参考连接
1、 https://zhuanlan.zhihu.com/p/85845131
2、https://blog.csdn.net/weixin_44106928/article/details/103083853
3、https://www.turingtopia.com/article/details/188d00badf064bb483bd89407e17f857
边栏推荐
- 基于PyTorch的FCN-8s语义分割模型搭建
- 【论文阅读】Mining Cross-Image Semantics for Weakly Supervised Semantic Segmentation
- postgresql 游标(cursor)的使用
- PostgreSQL schema (Schema)
- TensorFlow2学习笔记:8、tf.keras实现线性回归,Income数据集:受教育年限与收入数据集
- fill_between in Matplotlib; np.argsort() function
- MySQL leftmost prefix principle [I understand hh]
- 简单说Q-Q图;stats.probplot(QQ图)
- 【CV-Learning】图像分类
- pytorch学习-没掌握的点
猜你喜欢

TensorFlow2 study notes: 6. Overfitting and underfitting, and their mitigation solutions

Simple and clear, the three paradigms of database design
![[CV-Learning] Convolutional Neural Network Preliminary Knowledge](/img/7d/58d9649b06e78eeb019d63615a90c4.png)
[CV-Learning] Convolutional Neural Network Preliminary Knowledge

MySql--存储引擎以及索引

基于PyTorch的FCN-8s语义分割模型搭建
![[Deep Learning 21 Days Learning Challenge] 1. My handwriting was successfully recognized by the model - CNN implements mnist handwritten digit recognition model study notes](/img/62/ab3dbbd7d4d0009c7cba5e45879f25.png)
[Deep Learning 21 Days Learning Challenge] 1. My handwriting was successfully recognized by the model - CNN implements mnist handwritten digit recognition model study notes

Vision Transformer 论文 + 详解( ViT )

TensorFlow2 study notes: 7. Optimizer
![[Introduction to go language] 12. Pointer](/img/c8/4489993e66f1ef383ce49c95d78b1f.png)
[Introduction to go language] 12. Pointer

【论文阅读】Anchor-Free Person Search
随机推荐
pgsql函数中的return类型
【深度学习21天学习挑战赛】0、搭建学习环境
Introduction of linear regression 01 - API use cases
【论文阅读】SPANET: SPATIAL PYRAMID ATTENTION NETWORK FOR ENHANCED IMAGE RECOGNITION
yolov3数据读入(二)
Briefly say Q-Q map; stats.probplot (QQ map)
Comparison of oracle's number and postgresql's numeric
MAE 论文《Masked Autoencoders Are Scalable Vision Learners》
TensorFlow2学习笔记:7、优化器
动手学深度学习_softmax回归
WARNING: sql version 9.2, server version 11.0.Some psql features might not work.
Android connects to mysql database using okhttp
Thoroughly understand box plot analysis
TensorFlow2 study notes: 5. Common activation functions
安装dlib踩坑记录,报错:WARNING: pip is configured with locations that require TLS/SSL
【论文阅读】TransReID: Transformer-based Object Re-Identification
Dictionary feature extraction, text feature extraction.
with recursive用法
剑指 Offer 2022/7/8
【CV-Learning】语义分割