卷积神经网络回顾之DenseNet、SENet、MobileNet系列、ShuffleNet系列

本文回顾了卷积神经网络的最新进展,包括DenseNet的密集连接、SENet的Squeeze-and-Excitation机制、MobileNet系列的轻量化设计以及ShuffleNet系列的通道混洗技术。DenseNet通过密集连接减少参数并缓解梯度消失;SENet通过通道注意力提升模型表示能力;MobileNet系列以深度可分离卷积实现高效计算;ShuffleNet则通过分组卷积和通道混洗降低计算复杂度。这些创新为构建更快、更高效的深度学习模型提供了新思路。
摘要由CSDN通过智能技术生成

本篇可以结合我的上一篇博客《卷积神经网络回顾之AlexNet、VGGNet、Inception系列、ResNet系列》一起学习。

DenseNet (2017)

  DenseNet 是CVPR2017 best paper《Densely Connected Convolutional Networks》中提出的,它并没有像之前的网络从增加网络的深度和宽度的角度来提升网络性能,而是借鉴了ResNet的shortcut connections的思想,以前馈的方式建立每个层与后面其他所有层的密集连接(dense connections)。它解决的问题是:缓解了消失梯度问题,加强了特征传播,鼓励了特征重用,并且大大减少了参数的数量。
  模型特点:为了保证能够获得网络层之间的最大信息,将所有层都进行互相连接。

  • 密集连接(Dense connectivity):为了改善层与层之间信息的传递,将某一层与之后的所有层进行连接。虽然也是跨层连接,但是与ResNet将特征图进行像素级相加(element-wise addition)的连接方式不同,DenseNet的密集连接是每一层将之前所有层的输入进行拼接( channel-wise concatenation),之后将输出的特征图传递给之后的所有层。如下图所示:
  • 增长速率(Growth rate):图1中每个 H l H_l Hl l l l 代表层数)是由三种操作组合而成的函数:BN、ReLU和3×3卷积。如果每经过 H l H_l Hl 后输出 k 个特征图(上图显示 k 是4个特征图),那么 l + 1 l+1 l+1 层经过concat后输入的通道数就增长 k,作者将超参数 k 称为网络的增长速率。DenseNet和现存网络结构的一个很重要的不同是,DenseNet的网络很窄,即 k 比较小。每一层相当于对当前状态增加 k 个全局状态的特征图,对之前层的特征进行了重复利用而避免了特征图重复计算,因此参数量较其他模型大大减少。作者也验证了一个很小的增长速率,模型就能达到很好的效果。
  • 瓶颈层(Bottleneck layers):虽然增长速率比较小,但是特征重用使得每个 H l H_l Hl 的输入通道随着层数的增加变得非常多。因此,采用1×1卷积的bottleneck层来减少Dense Blocks中的计算量,1×1卷积的输出通道数 4k,它起到的作用是降低特征维数。网络结构由上述 BN+ReLU+3×3 Conv(DenseNet) 变为 BN+ReLU+1×1 Conv+BN+ReLU+3×3 Conv(DenseNet-B) 。
  • 过渡层(Transition layers): 将每个Dense Block之间的层称为过渡层,如图1所示,完成卷积和池化的操作(BN+ReLU+1x1 Conv+2x2 AvgPooling)。由于特征图的concat连接需要保持特征图的尺寸一致,因此为了便于网络对不同阶段的特征图进行下采样(扩大感受野),将网络分为多个blocks,在每个block内保持相同的特征图尺寸。可以进一步简化模型,即在过渡层中减少特征图的数量,文中使用压缩系数为0.5(DenseNet-C)。进一步,DenseNet-BC指的是在Dense Blocks和Transition layers中,都减少输出的特征图数量。(DenseNet-BC是参数效率最高的一个DenseNet版本)

下表列出了DenseNet不同深度的信息,其中,conv表示BN-ReLU-Conv,网络结构采用包含4个Dense block的DenseNet-BC,k=32:
在这里插入图片描述
  之后在《Memory-Efficient Implementation of DenseNets》论文中,进一步解决了在管理不当的情况下,预激活批归一化和连续的卷积操作会产生随网络深度呈平方增长的特征图,从而实现DenseNet可能需要大量的GPU内存的问题。通过策略性地使用共享内存分配,使得训练非常深的DenseNet没有GPU内存的瓶颈。

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

SENet (2017)

  SENet 赢得了2017年 ImageNet LSVRC(ImageNet最后一届)的图像分类任务冠军,它的论文《Squeeze-and-Excitation Networks》由Momenta公司发表于CVPR2017。一般而言,CNN都是在局部感受野上将空间(spatial)信息特征维度(channel)的信息进行聚合,最后获取全局信息。为了提高网络的表示能力,许多现有的研究已经表明增强空间信息依赖的好处。然而,SENet希望解决的问题是模型可以自己学习到不同channel特征的重要程度,更加注重通道间的依赖关系。
  该模型的特点是提出了新的架构 “Squeeze-and-Excitation”(SE) block,来显式地建模通道之间的依赖关系。

  • Squeeze(压缩):全局信息嵌入。由于卷积只能在局部进行感知,尤其是对于网络浅层的特征提取,很难利用感受野区域以外的信息。因此,每个特征图为了获得全局信息,在空间维度上进行特征压缩变为一个通道描述,使其具有全局感受野,代表该特征图(通道)的信息。简单而言,就是将每个通道的二维矩阵压缩为一个实数,H×W×C压缩为1×1×C,输入和输出的通道个数不变。作者采用简单的global average pooling操作来实现,原则上,也可以采用更复杂的聚合策略。
  • Excitation(激励):自适应重新校正。上一步操作已经产生了通道描述,为了进一步表示通道间的依赖关系,对通道进行了重要性分析和激励操作。根据注意力的思想,利用门机制(sigmoid激活函数)为每个特征通道生成权重,看作是经过特征选择后的每个特征通道的重要性,然后通过乘法逐通道加权到先前的特征上(激励),完成在通道维度上对原始特征的重标定。为了降低模型复杂度以及提升泛化能力,这里采用包含两个全连接层的bottleneck结构,其中第一个FC层起到降维的作用,降维系数是个超参数 r(r=16在精度和复杂度之间取得了很好的平衡),然后采用ReLU激活,最后再经过FC层恢复原始的维度。因此,比只用一个全连接层既能减少参数量,也增加了非线性。

上述两个操作,体现在图2的SE block中,分别为 F s q ( ) F_{sq}() Fsq() F e x ( ) F_{ex}() Fex(),另外 F s c a l e ( ) F_{scale}() Fsca

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值