神经网络骨架network backbones

本文将列出神经网络几种骨架结构的历史沿袭,对从框架上了解backbones有重要帮助。阅读时间约10分钟。更多的机器视觉文献回顾可参阅:
https://github.com/senbinyu/Computer_Vision_Literatures
network backbones是神经网络最重要的体系结构。

1. Review papers

以下列出一些综述文章,推荐阅读第二篇

  • Neena Aloysius and Geetha M, A Review on Deep Convolutional Neural Networks, 2017

A bit old and not include many state-of-art research, refer to paper A Review on Deep Convolutional Neural Networks

  • Elhassouny, Azeddine et al, Trends in deep convolutional neural Networks architectures: a review, 2019.

Recommand. Reviewed most of the CNN backbones, refer to paper Trends in deep convolutional neural Networks architectures: a review

2. History

下图显示了神经网络开发的时间表
在这里插入图片描述

- Lenet, Yann LeCun et al., 1994

LeNet-5, 是一个简单但富有创造力的网络,最初用于手写识别。please refer to http://yann.lecun.com/exdb/lenet/
在这里插入图片描述

- AlexNet, Alex Krizhevsky et al., 2012

在2012年9月30日赢得了ImageNet大规模视觉识别挑战赛。该网络的前五名错误率为15.3%,比第二名的错误率低10.8个百分点。 主要发现是神经网络的深度对于检测的高性能至关重要。并且伴随着GPU的逐步广泛使用,使用深度大的网络成为现实。

卷积核大点, 11 * 11, 7 * 7, 5 * 5 etc., see from the figure
refer to paper [ImageNet Classification with Deep Convolutional Neural Networks] (https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf)

在这里插入图片描述

- VGGNet, Karen Simonyan, Andrew Zisserman

2014 Imagenet 第二名.

  1. 验证增加净深度可以有效地改善性能。 但这带来了一个问题:大量的参数。

  2. 减小卷积核尺寸,两个3 * 3代替5 * 5,减小参数量
    证明网络深度增加有助于检测,但引入更多的参数;于是发现了使用小卷积核能达到和使用大卷积核同样的目的,同时还能减少参数

refer to paper Imagenet classification with deep convolutional neural networks
VGG

GoogLeNet, Christian Szegedy, Wei Liu et al.

  • v1, 2014 ImageNet 第一名.
  1. 除了增加网络深度之外(对于googlenet v1为22层),还会增加网络的宽度

  2. 引入较小的内核,1 * 1卷积,减小尺寸并保存参数。 参数:AlexNet ~ 12 GoogLeNet, VGG ~ 3 AlexNet

  3. 初始模块很容易添加或删除,它是模仿人的大脑以建立稀疏连接。

Refer to Going deeper with convolutions

在这里插入图片描述

  • v2, Christian Szegedy et al. v2, v3 在同一篇文章.
  1. 分解卷积,使用1 * n和n * 1替换3 * 3,如下图所示。 从理论上讲,当特征图很大(n很大)时,它可以大大节省计算成本。 但实际上,它不能在早期阶段很好地工作,n范围12-20似乎是一个合理的数字。

  2. 有效减少网格尺寸。 并行使用池化层(下图中的步幅2)和起始层(与步幅2的卷积等)。

  3. 为有效网络的设计提出一些建议:避免代表性瓶颈,尤其是在网络早期。 高维表示更易于在网络内本地处理; 可以在较低维的嵌入上进行空间聚合,而不会损失很多表示能力(例如RGB图像到灰色); 平衡网络的宽度和深度(这在最近的EffectiveNet 2019中进一步得出结论)。 早期特征尺寸不能急剧减小,避免出现瓶颈;低维特征时进行空间融合,并不会特别明显的增加损失(这感觉也像是可以进行特征融合的一个体现)

Refer to paper Rethinking the Inception Architecture for Computer Vision

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

  • v3, shares the same paper with v2, minor additions.

通过标签平滑进行模型正则化,减少模型的过度拟合。 培训方法:RMSProp代替SGD。 进行了分辨率测试。

Refer to paper Rethinking the Inception Architecture for Computer Vision

  • v4 (pure inception-v4), inception-resnet, 在同一篇文章. 此处主要讲inception-resnet
  1. 将Inception模块与残差模块组合在一起以创建一个新模块:inception-resnet。 它增加了净深度并提高了速度。

  2. 比较:inception-v3与inception-resnet-v1; inception-vnet与inception-resnet-v2具有相似的精度。

Refer to paper Inception-v4, inception-resnet and the impact of residual connections on learning

ResNet, He Kaiming,2016

在 ILSVRC and COCO 2015等5个比赛中都获得第一名.

人们发现,更深的CNN对几乎所有任务都非常有用。 但是由于存在网络退化问题,因此很难训练它们。 提出了一种带有剩余模块的新架构。

  1. 较深的网络比较浅的网络性能更差。 一个创新的想法:如果什么也没学到,那就比以前更糟:因此提出了identity map(也称为shortcut连接)。 H(x)= x + F(x),F(x)= H(x)-x,称为残差。

  2. ResNet的深度各不相同,从18层到34、50、101到非常深的152层。

  3. 不同的快捷方式,如果不更改尺寸,则可以使用身份映射。 但是在实践中,尺寸更改因此会产生“瓶颈”。 (这在基线后记中很流行,因为它可以保存参数。)

Refer to paper Deep Residual Learning for Image Recognition

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

Xception, Chollet, Francois, 2016

基于Inception-v3,如果我们不想每次都设计Inception体系结构,而只在一个模块上均匀使用相同的结构,则网络设计会更容易。 (这个想法在其他基准,例如mobileNet也得到应用。)

  1. extreme inception. 从同等的初始结构,现在仅计算部分渠道, (group = xx in pytorch).

  2. 深度可分离卷积(最初来自phd论文:Laurent Sifre,Rigid-Motion Scattering For Image Classification),大大节省了参数。 通过均匀分离特征,下图中的参数可以是m * k + 3 * 3 * k,m是特征,k是核数。
    更多具体的关于深度分离卷积可参见如下中关于轻量网络的描述https://github.com/senbinyu/Computer_Vision_Literatures

Refer to paper Xception: Deep Learning with Depthwise Separable Convolutions
在这里插入图片描述

ResNeXt, Xie Saining, He Kaiming,2017

ILSVRC 2016 第二名.

inception-resnet的修改。 不同于人工设计的Inception-Resnet,Resnext使用相同的分支来完成设计。

  1. group convolution(群组卷积), cardinality(基数). 这是正常卷积(所有通道)和深度可分离卷积(每个通道)之间的折衷。

  2. ImageNet-1K dataset 上测试,发现增加基数在一定程度上会改善表现,且比更深更宽更有效。文中实验了从1到32 groups,误差逐步降低。但需要注意的是,这是将dimensions控制在4d以上,更小的dimension下作者认为不值得再实验。

Refer to paper Aggregated Residual Transformations for Deep Neural Networks
在这里插入图片描述

denseNet, Huang Gao, Liu Zhuang,2017

CVPR2017 best paper, 特点:特征重用, 基于Resnet.

  1. 由于连接紧密,当前层与之前的所有层都有连接。 传统的CNN,L层,L连接,densedNet,一个密集块,L层具有L *(L + 1)/ 2个连接。

  2. 增长率,第l层具有k_0 + k *(l-1)个特征图,k_0是输入通道数,k是增长率(每层特征数)。

  3. bottleneck layer, 作者发现此层对于密集网特别有效。 使用1 * 1转换,功能图4k(提高效率),然后使用3 * 3转换,减少回k

  4. 压缩时,过渡层特征图会用 θ \theta θ缩小。 实验也证实了这一点,热图显示,致密块与先前的过渡层的相关性较小。 说明了transition layer输出了很多冗余信息,去除一些,可以使网络轻量化,但又不至于严重影响精度。

Refer to paper Densely Connected Convolutional Networks
在这里插入图片描述

SENet, Hu Jie, Li Shen,2018

ILSVRC 2017第一名. This is an application of “attention” mechanism, more similar to human brain. 这是“注意力”机制的一种应用,更类似于人的大脑。更多可参见https://github.com/senbinyu/Computer_Vision_Literatures/blob/master/0_Backbones/1_attention_in_backbones.md

  1. 关注通道关系,并使用挤压和激励块。 1 * 1 * C,将所有通道信息放在一起,然后重新缩放(S型),重要的通道功能可以起到更大的作用。

  2. 挤压空间全局平均值,以使用不同渠道之间的联系及相关性,而非空间分布

  3. 激励中,实际上使用了两个完全连接的层:第一个层,使用ReLU将通道从C压缩到C / r,第二层以S形缩放到C通道。 那么重要的人可以做出更多的贡献。 r是压缩率。 作者发现16是最佳选择。

  4. SE模块也可以与ResNet和Inception一起使用。

Refer to paper Squeeze-and-Excitation Networks
在这里插入图片描述

efficientNet, Tan Mingxing and Quoc V. Le,2019

有没有适用于神经网络架构设计的指导方法? 作者提出了一些基本要点和经验公式。

  1. “扩大网络宽度,深度或分辨率的任何尺寸都可以提高精度,但是对于较大的模型,精度增益会降低”.
    单独增加某个参数只能在一定范围内获得好的结果

  2. 模型缩放,平衡宽度,深度和分辨率可以带来更好的性能。 高效的复合系数。 三个主要参数的系数:宽度,w,深度,d,分辨率,r; 仅当 d ∗ w 2 ∗ r 2 = 2 d * w ^ 2 * r ^ 2 = 2 dw2r2=2时,它们才能实现相对平衡的体系结构。 如果要扩展或压缩2 ^ \ phi,\ phi是扩展系数,则它变为 ( d ∗ w 2 ∗ r 2 ) ϕ (d * w ^ 2 * r ^ 2)^ \phi (dw2r2)ϕ,所有三个参数都随指数 ϕ \phi ϕ改变。

  3. 相对于比较模型而言,相对较小,但效率更高且更准确。

Refer to paper EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

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

NAS

以上是根据人们的经验观察设计的体系结构。 有没有自动设计网络的方法? 在2016年,麻省理工学院和Google几乎同时提出了神经网络结构搜索。 但是计算成本非常昂贵。

  1. 搜索策略,这里使用强化学习,但还有许多其他方法,即进化算法,基于梯度的方法,增强等。

  2. 提速,分层表示,权重共享等

Refer to paper Neural Architecture Search with Reinforcement Learning
Designing Neural Network Architectures using Reinforcement Learning
在这里插入图片描述

Res2Net, Gao Shanghua et al., 2019

  1. 多尺度融合。 “大多数现有方法都以分层的方式表示多尺度特征。在本文中,我们通过在单个残差块内构造分层的类似残差的连接,为CNN提出了一种新颖的构建块,即Res2Net。” 它基于bottleNeck结构,依次为1 * 1、3 * 3和1 * 1,如下图所示。

  2. 可以与其他骨干网,ResNet,ResNeXt等结合使用。显着提高准确性。 从ResNet-50到Res2Net-50的COCO的70%到73%。

  3. 作者还尝试了各种任务,例如对象检测,语义/实例分割,关键点估计,所有这些都显示出令人满意的结果。
    Refer to paper Res2Net: A New Multi-scale Backbone Architecture
    在这里插入图片描述
    更多的计算机视觉文献回顾可参阅:
    https://github.com/senbinyu/Computer_Vision_Literatures

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值