【经典分类框架】vgg/GoogLeNet/ResNet/DenseNet/MobileNet/ShuffleNet

太早的LeNet和AlexNet就不提了,也相对比较简单。

vgg16 vgg19

文章《VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE SCALE IMAGE RECOGNITION》

发现了小卷积核搭配更深的网络会有更好的效果。小卷积核堆叠在保持感受野不变的情况下参数更少,网络更深学习能力更强。

结构:前面一堆卷积层后面跟三层全连接层。卷积核全为3x3且全有padding,池化全为2x2,统一使用relu。

优点:1,结构简洁 2,网络深
缺点: 2,全连接层的参数太多

GoogLeNet

参考 https://my.oschina.net/u/876354/blog/1637819
提出了Inception结构,即对输入图像并行地执行多个卷积运算或池化操作,并将所有输出结果拼接为一个非常深的特征图。
Inception经历了四种阶段的发展。
Iception-v1
在这里插入图片描述
Inception v1 将1x1, 3x3 , 5x5的卷积操作核最大池化操作并行执行,四个输出的尺寸相同,将深度进行拼接。 3x3 和5x5前面加了1x1是为了减少输入通道减少参数

Inception-v2
将Inception的卷积核进行拆分。5x5拆成两个3x3,3x3拆成3x1和1x3
图就不贴了

Inception-v3
将7x7拆成了7x1和1x7

Inception-v4
引入了残差结构

优点:1,参数比vgg少 2,创新了网络的拓扑结构(提出了Inception)

ResNet

为了解决普通网络随着层数的加深性能反而下降的问题,提出了残差单元。
在这里插入图片描述
左图为普通的残差单元,右图为结合1x1的残差单元,能够降低参数量。

residual模块将输出分成F(x)和x两部分,其中F依然是x的函数,也就是说F实际上是对于x的补充,是对于x的fine-tuning,当x已经是最优时,F (x)就会趋于0.
可能会出现x和F(x)第三个通道数不相等的情况,就要补0或用1x1卷积核处理。

DenseNet

参考 https://zhuanlan.zhihu.com/p/37189203

基本思路与ResNet一致,但是它建立的是前面所有层与后面层的密集连接(dense connection)
对于一个 L L L 层的网络,DenseNet共包含 L ( L + 1 ) 2 \frac{L(L+1)}{2} 2L(L+1)个连接。同时,其连接不是像resnet一样元素相加,而是将所有特征图合并(concat)起来。
DenseNet的网络结构主要由DenseBlock和Transition组成. DenseBlock 用于互联(DenseBlock内各层的尺寸应该保持相等),Transition用于降维。
DenseBlock中各个层卷积之后均输出 k k k 个特征图假定输入层的特征图channel为 k 0 k_0 k0, 则第 l l l层的特征图channel数为 k 0 + k ( l − 1 ) k0+k(l-1) k0+k(l1)
到了后面特征图的channel数会非常大,则同样的可以用1x1的卷积核处理。
在这里插入图片描述
优点:较浅的层数就能接近很深的ResNet效果
缺点:比较费显存,因为前面的特征图都要保留

MobileNet

MobileNet是一种轻量级网络,作者提出了深度可分离卷积(depthwise separable convolution)。
传统的卷积需要计算量为 D F ∗ D F ∗ D k ∗ D k ∗ M ∗ N D_F*D_F*D_k*D_k*M*N DFDFDkDkMN,其中 D F D_F DF是特征图的边长, D k D_k Dk是卷积核的边长,M是输入通道数,N是输出通道数。
深度可分离卷积将卷积分成两步:depthwise和pointwise。depthwise按照通道进行计算按位相乘的计算,此时通道数不改变,计算量为 D F ∗ D F ∗ D k ∗ D k ∗ M D_F*D_F*D_k*D_k*M DFDFDkDkM。然后1*1的卷积核进行传统的卷积运算,此时通道数可以进行改变,计算量为 D k ∗ D k ∗ M ∗ N D_k*D_k*M*N DkDkMN。总的计算量降为原来的 1 N + 1 D k ∗ D k \frac{1}{N}+\frac{1}{D_k*D_k} N1+DkDk1
参数也减少了。
下图为对比
在这里插入图片描述
可以发现深度可分离卷积还能增加网络的非线性。
下图为MobileNet结构
在这里插入图片描述
pytorch中depthwise是通过分组卷积实现的。

ShuffleNet

ShuffleNet也是一种轻量网络,相当于ResNet和MobileNet的结合。下图展示了ShuffleNet单元:
在这里插入图片描述
其中(b)(c)中的GConv表示分组卷积。然而导致模型的信息流限制在各个Group内,组与组之间没有信息交换,影响模型的表示能力,所以引入Channel Shuffle操作。

缺点:1,Channel Shuffle操作耗时 2,Channel Shuffle有太多的人工干预,不符合神经网络的特点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值