图像分类之从AlexNet到ResNeSt概述

AlexNet

深度学习崛起的开端。
引入dropout,用于减轻过拟合。
将激活函数换成ReLU。
使用group convolution在两个GPU上训练,为后续的CNN网络带来启发。
提出了LRN,可以理解为一种对比度归一化,一种正则化方法,可以提升网络泛化能力。
使用了重叠的max-pooling。

NIN

提出了全局平局池化(global average pooling),用于替代全连接层,没有需要学习的参数,避免了全连接层带来的过拟合和不可解释问题。

VGG

重复堆叠3x3 conv和 2x2 max-pooling构成的模块,这种模块堆叠的思想成为了构建CNN架构的重要思想。
两个3x3 conv串联在一起具有的感受野与一个5x5 conv的感受野一样。
三个3x3 conv串联在一起具有的感受野与一个7x7 conv的感受野一样。
使用3x3卷积堆叠的好处:

  • 增加更多的非线性激活层
  • 减少参数量

1x1卷积增加非线性
1x1 conv可以看作是线性变换(全连接层)

GoogleNet(Inception)家族

GoogleNet

受到NIN网络的启发。
Inception模块: 1x1 conv, 3x3 conv, 5x5 conv
1x1 conv作用: 降维减少计算量,有助于不同特征层的空间信息交互。

Inception V2

内部协方差偏移(internal covariate shift): 每层输入的分布会发生变化,原因是之前层的参数发生了变化。
危害:会降低训练速度,因为需要更低的学习率和小心的参数初始化。
提出了Batch Normalization,好处:

  • 减少内部协方差偏移
  • 允许更高的学习率,训练速度更快
  • 不再需要小心翼翼初始化参数
  • 充当一种正则化,减少dropout的使用
  • 使网络可以使用具有饱和性的非线性激活函数

原理:
对于mini-batch X = { x 0 , x 1 , . . . , x m } X = \{x_0, x_1, ..., x_m\} X={x0,x1,...,xm}
均值 μ = ∑ i = 0 m x i μ = \sum_{i=0}^{m}x_i μ=i=0mxi
方差 σ 2 = 1 m ∑ i = 0 n ( x i − μ ) 2 σ^2 = \frac{1}{m}\sum_{i=0}^{n}(x_i - μ)^2 σ2=m1i=0n(xiμ)2,
进行归一化: x i ^ = x i − μ σ \hat{x_i} = \frac{x_i - μ}{σ} xi^=σxiμ
引入两个超参数,使输出具有任意均值和方差:$ y_i= γ\hat{x_i} + β$

Inception V3

提出nxn的卷积可以分解成1xn卷积与nx1卷积的串联。

Inception V4

验证了残差连接可以加速Inception网络的训练。
验证了带残差连接的Inception网络的性能超过不带残差连接的Inception网络。

Xception

使用了深度可分离卷积,使用了残差连接。
它和Inception V3具有差不多的参数,由于模型参数的利用效率更高,使得它比Inception V3表现更好。

ResNet

退化问题: 随着网络深度的增加,精度达到饱和并且会迅速退化。退化并不是由过拟合引起的,给一个合适深度的网络增加更多层时,训练误差会增加。
通过引入深度残差学习框架,解决了退化问题。

通道数先压缩再膨胀

DPN

双路径网络
通过揭露ResNet和DenseNet在高阶RNN框架中的等价性,作者发现ResNet允许特征再利用,而DenseNet可以挖掘新的特征,这两个特点对学习好的特征表示都很重要。
作者实现了DPN模块,共享特征,同时保留两者的优点。

DenseNet

问题:输入信息(梯度信息)经过许多层之后,在它到达网络末尾(开端),它会消失和“洗净”。
解决方法:用前馈的方式连接每一层与所有其他层。
优势:

  • 减轻梯度消失问题
  • 强化特征传播
  • 鼓励特征再利用
  • 实质地减少参数数量(反直觉)

Dense block由Batch Normalization、ReLU、3x3 Conv构成。

ResNeXt

在ResNet的残差模块的基础上进行改进,将单条路径改成多条具有相同拓扑结构的路径(可以用group convolution实现多条路径)。
ResNeXt在ImageNet分类数据集上超越了ResNet-101/152,ResNet-200, Inception-v3和Inception-ResNet-v2。特别地,一个101层的ResNeXt可以比ResNet-200实现更高的精度,但只有后者50%的复杂度。它在ILSVRC 2016分类任务中,赢得第二名。

SqueezeNet

提出了Fire模块,由squeeze convolution layer (1x1 conv) 和 紧接其后的expand layer(由1x1conv和3x3conv按一定比例组成)按一定比例组成。

MobileNet系列

一种轻量级CNN。
bottleneck layer: 1x1 conv

MobileNet V1

MobileNets是基于流线型的架构,它使用深度可分离卷积构建轻量级的深度神经网络。引入了两个简单的全局超参数,可以高效平衡计算代价和精度。
网络共28层,1.0 MobileNet-224的精度与GoogleNet和VGG16想当,参数量为4.2M。

MobileNet V2

主要贡献提出了一种新颖的模块:the inverted residual with linear bottleneck。拓扑结构类似残差模块,但是细节部分与它相反,它先膨胀到高维度,然后进行轻量级的depthwise convolution,随后用一个线性卷积(不带非线性激活的卷积)将特征映射到低维表示。
与MobileNet V1相比,在深度可分离卷积之前加入了1x1卷积,在第二个1x1卷积之后未使用ReLU。

倒残差连接: 作者通过实验验证了瓶颈的跳跃连接比膨胀层的跳跃连接更好,但是RegNet的作者发现并没有提升性能。

MobileNet V3

NAS搜索

MobileNetV3 = MobileNetV2 + SE block

提出了HardSigmoid和HardSwish

ShuffleNet系列

一种轻量级CNN。

ShuffleNet V1

一种轻量级CNN。
可以看做是对ResNet的残差模块的改进。将3x3 Conv换成3x3 DWConv,将1x1 Conv换成1x1 Pointwise Group Conv,为了使Pointwise Group Conv的跨组信息能流动,在第一个Group Conv之后加入了一个Channel Shuffle,第二个1x1 Pointwise Group Conv的作用是恢复通道维度使得能够和旁路的通道维度相匹配。

ShuffleNet V2

使用直接的指标,比如速度、内存访问代价、平台特性,来指导神经网络结构设计,而不是只考虑间接的指标FLOPs。原因有两个:(1)FLOPs忽略了一些重要因素:比如内存访问代价(MAC);(2)并行化的程度。

相同FLOPs的操作可能有不同的运行时间,这取决于平台。

设计高效网络结构的原则:(1)使用直接指标(比如速度),而不是FLOPs。(2)应该在目标平台上评估指标。

网络设计指导:
(1)固定总的FLOPs,相同的输入输出通道数可以最小化内存访问代价(MAC)
(2)过度的group conv会增加MAC
(3)网络碎片会降低并行计算的程度
(4)按元素的操作是不可忽略的。(按元素相加可考虑换成concat)

子图©进行了Channel Split,保持通道数不变。
子图(d)进行了空间下采样(尺寸减半);由于未进行Channel Split,通道数翻倍。

NASNet

先在CIFAR-10数据库上搜索最佳卷积层(cell),然后通过堆叠这些cell的副本,将这些cell应用到ImageNet数据库,每个cell都有自己的参数,这样设计出的CNN架构叫做NASNet架构。也引入了一个新的正则化技术,叫做ScheduledDropPath,它可以显著提高NASBet模型的泛化能力。

SENet

引入soft attention,给每个通道加权,使特征图的每个通道具有不同的重要性。

Res2Net

在残差模块中加入多尺度

SKNet

原理:视觉神经元的感受野会根据刺激来调整大小。作者根据这个提出了SK unit,带有不同卷积核尺寸的多分支的单元。

提出了SK conv

将ResNext的多分支思想与soft attention相结合,并使用了多尺度的思想。

EfficientNet

NAS搜索

RegNet

NAS搜索

  • 对于depthwise conv, Swish比ReLU表现更好,但是潜在的原因不是很清楚。

ResNeSt

与SKNet的做法有点相近,多分支与soft attention相结合

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值