分类网络系列总结

目录

论文链接

Inception-V1

Inceptoion-V2

Inception-V3:

Inception-V4:

ResNet

ResNext

DenseNet

SENet


论文链接

分类任务评价指标

转自:https://blog.csdn.net/julialove102123/article/details/79632721

                                     

                                                                           Google-Net 原始版本

Inception-V1

Inception-V1:2014年9月:Going Deeper with Convolutions提出的Inception V1(top-5错误率6.67%)

核心思想

传统网络都是通过层的叠加,增加网络深度,这篇论文提出从网络宽度上改进,通过concat操作,将经过不同kernel尺度的feature map进行concat,增加网络对尺度的适应性、增加网络的宽度,提高了网络内部资源的利用率。

上图是论文中提出的最原始的版本,所有的卷积核都在上一层的所有输出上来做,那5×5的卷积核所需的计算量就太大了,造成了特征图厚度很大。为了避免这一现象提出的inception具有如下结构,在3x3前,5x5前,max pooling后分别加上了1x1的卷积核起到了降低特征图厚度的作用。

Inception V1参数少但效果好的原因除了模型层数更深、表达能力更强外,还有两点:

一、用全局平均池化层(即将图片尺寸变为1*1)来取代最后的全连接层。全连接层几乎占据了AlexNet或VGGNet中90%的参数量,而且会引起过拟合,去除全连接层后模型训练更快并且减轻了过拟合。用全局平均池化层取代全连接层的做法借鉴了Network In Network(以下简称NIN)论文。

二、Inception V1中精心设计的Inception Module提高了参数的利用效率,其结构如图所示。这一部分也借鉴了NIN的思想,形象的解释就是Inception Module本身如同大网络中的一个小网络,其结构可以反复堆叠在一起形成大网络。不过Inception V1比NIN更进一步的是增加了分支网络,NIN则主要是级联的卷积层和MLPConv层。一般来说卷积层要提升表达能力,主要依靠增加输出通道数,但副作用是计算量增大和过拟合。每一个输出通道对应一个滤波器,同一个滤波器共享参数,只能提取一类特征,因此一个输出通道只能做一种特征处理。而NIN中的MLPConv则拥有更强大的能力,允许在输出通道之间组合信息,因此效果明显。可以说,MLPConv基本等效于普通卷积层后再连接1*1的卷积和ReLU激活函数。

Inception Module的基本结构有4个分支

第一个分支对输入进行1´1的卷积,这其实也是NIN中提出的一个重要结构。1´1的卷积是一个非常优秀的结构,它可以跨通道组织信息,提高网络的表达能力,同时可以对输出通道升维和降维。可以看到Inception Module的4个分支都用到了1´1卷积,来进行低成本(计算量比3´3小很多)的跨通道的特征变换。

第二个分支先使用了1´1卷积,然后连接3´3卷积,相当于进行了两次特征变换。

第三个分支先是1´1的卷积,然后连接5´5卷积。

第四个分支则是3´3最大池化后直接使用1´1卷积。我们可以发现,有的分支只使用1´1卷积,有的分支使用了其他尺寸的卷积时也会再使用1´1卷积,这是因为1´1卷积的性价比很高,用很小的计算量就能增加一层特征变换和非线性化。Inception Module的4个分支在最后通过一个聚合操作合并(在输出通道数这个维度上聚合)。Inception Module中包含了3种不同尺寸的卷积和1个最大池化,增加了网络对不同尺度的适应性,这一部分和Multi-Scale的思想类似。早期计算机视觉的研究中,受灵长类神经视觉系统的启发,Serre使用不同尺寸的Gabor滤波器处理不同尺寸的图片,Inception V1借鉴了这种思想。Inception V1的论文中指出,Inception Module可以让网络的深度和宽度高效率地扩充,提升准确率且不致于过拟合。

                                                       

Inceptoion-V2

Inception-V2:2015年2月:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate提出的Inception V2(top-5错误率4.8%)。

核心思想

首次提出BN层,减少Internal Covariate Shift,将每一次一个batch中的数据分布控制在均值为0,方差为1。

加入了BN层,减少了Internal Covariate Shift(内部neuron的数据分布发生变化),使每一层的输出都规范化到一个N(0, 1)的高斯; 学习VGG用2个3x3的conv替代inception模块中的5x5,既降低了参数数量,也加速计算;使用3×3的已经很小了,那么更小的2×2呢?2×2虽然能使得参数进一步降低,但是不如另一种方式更加有效,那就是Asymmetric方式,即使用1×3和3×1两种来代替3×3的卷积核。这种结构在前几层效果不太好,但对特征图大小为12~20的中间层效果明显。

Inception-V3:

Inception-V3:2015年12月:Rethinking the Inception Architecture for Computer Vision提出的Inception V3(top-5错误率3.5%)

核心思想

                                                   

1、卷积核进行分解:使用两个3x3卷积核代替5x5卷积核,三个3x3卷积核代替7x7卷积核,减少参数量,加快计算。(两个3x3与一个5x5作用是一样的,其感受野都是5)

                                            

2、进一步将nxn卷积核分解为1xn和nx1卷积核

v3一个最重要的改进是分解(Factorization),将7x7分解成两个一维的卷积(1x7,7x1),3x3也是一样(1x3,3x1),这样的好处,既可以加速计算(多余的计算能力可以用来加深网络),又可以将1个conv拆成2个conv,使得网络深度进一步增加,增加了网络的非线性,还有值得注意的地方是网络输入从224x224变为了299x299,更加精细设计了35x35/17x17/8x8的模块。

                                                                               

3、减少feature map的size,增加channel数;

Inception-V4:

Inception-V4:2016年2月:Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning提出的Inception V4(top-5错误率3.08%)。

核心思想

基于inception v3的基础上,引入残差结构,提出了inception-resnet-v1和inception-resnet-v2,并修改inception模块提出了inception v4结构。基于inception v4的网络实验发现在不引入残差结构的基础上也能达到和inception-resnet-v2结构相似的结果,从而认为何凯明等人认为的:“要想得到深度卷积网络必须使用残差结构”这一观点是不完全正确的。

v4研究了Inception模块结合Residual Connection能不能有改进?发现ResNet的结构可以极大地加速训练,同时性能也有提升,得到一个Inception-ResNet v2网络,同时还设计了一个更深更优化的Inception v4模型,能达到与Inception-ResNet v2相媲美的性能。Inception V4相比V3主要是结合了微软的ResNet.

                 

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

ResNet

论文链接:https://arxiv.org/pdf/1512.03385v1.pdf

核心思想

第一次提出残差结构,主要解决两个问题

梯度消失

随着网络深度增加,性能没有提升反而有所下降

如下图,本来要学习H(x),现在转换为F(x)+x,二者效果相同,但是优化难度下降,并且因为多了一个x,使得求导时总有1,避免了梯度消失问题。

ResNext

论文链接::https://arxiv.org/pdf/1611.05431.pdf

核心思想

主要是采用了VGG堆叠思想和Inception的split-transform-merge思想,在不增加参数复杂度的前提下提高准确率。

对比于之前提高准确率的方法,大都是在depth和width上改进,本文提出一种新的方式,命名为cardinality,基数。即得到上一次feature map后,假设cardinality=32,则取32组1x1卷积核,每组4个,分别进行卷积,得到32组feature map,然后再分别进行3x3卷积,最后再通过1x1卷积把通道数还原回来。

具体残差结构如下所示:

上图右图中可以进行变体,下图中这三种结构是完全相等的,

图A就是上面所说的结构;

图B是在3x3卷积后进行了concat,然后再通过统一的1x1卷积操作,这个有点类似于inception-resnet;

C图结构更简洁且速度更快。采用组卷积。采用32个group,每个group的输入输出的通道数都是4;

DenseNet

论文链接:https://arxiv.org/pdf/1608.06993.pdf

 核心思想

densenet紧接着在resnet之后提出,结合了resnet的思想。网络改进除了像resnet和inception在深度和宽度上做文章外,densenet通过利用feature来减少参数的同时提高效果,对feature进行有效利用并加强feature的传递。

主要思想是将每一层都与后面的层连接起来,如果一个网络中有L层,那么会有L(L+1)/2个连接,具体连接如下图所示:

给出resnet和resnext两个结构的公式比较:

resnet:前一层经过非线性变换后与前一层相加得到本层的结果。

densenet:前n层所有的结果进行concat,然后再进行非线性转换。

为了保证feature map的channel不会太大,而且size要保持统一才能concat,将上述作为一个dense block,每个block之间通过池化层相连

bottleneck layer和translation layer

此外,在dense block中引入bottleneck layer,即卷积3x3前增加1x1卷积,以此来减少feature map数量。结构为:

BN -> Relu -> Conv 1x1 -> BN -> Relu -> Conv 3x3

由于feature map通道数量可能还是很大,在每个dense block之间,增加了translation layer,通过1x1卷积核来实现。

BN -> Relu -> Conv 1x1 -> Pooling

SENet

论文链接:https://arxiv.org/pdf/1709.01507.pdf

核心思想

从特征通道之间的关系入手,对特征通道之间的关系进行建模表示,根据重要程度增强有用的特征、抑制没有用的特征。个人感觉像是在通道上做权重,类似于通道上的attention。主要分为两个过程,如下图所示,squeeze挤压和excitation激励。

Squeeze

如下图所示,对通道进行了挤压,即通过全局平均池化,将shape为[H, W, C]的feature map变为[1, 1, C]。

顺着空间维度来进行特征压缩,将每个二维的特征通道变成一个实数,这个实数某种程度上具有全局的感受野,并且输出的维度和输入的特征通道数相匹配。它表征着在特征通道上响应的全局分布,而且使得靠近输入的层也可以获得全局的感受野,这一点在很多任务中都是非常有用的。

Excitation

得到挤压后的feature map后,进行激励,使用sigmoid函数。。

首先通过一个全连接层进行降维,即如下公式中的W1z,然后经过relu激活函数。即δ(W1z),再经过全连接进行升维,即W2(δ(W1z)),然后通过sigmoid进行权重激活。

它是一个类似于循环神经网络中门的机制。通过参数 w 来为每个特征通道生成权重,其中参数 w 被学习用来显式地建模特征通道间的相关性。

Reweight

最后通过scale相乘,得到se block的结果。

将 Excitation 的输出的权重看做是进过特征选择后的每个特征通道的重要性,然后通过乘法逐通道加权到先前的特征上,完成在通道维度上的对原始特征的重标定。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值