干货 | 一文总结经典 CNN 架构,从 LeNet 到 SENet

自 2012 年 AlexNet 在 ImageNet 竞赛上一鸣惊人后,深度学习便进入了蓬勃发展阶段。卷积神经网络(Convolutional Neural Networks)也在图像领域发挥出前所未有的威力,例如图像分类,目标检测、定位,语义分割等。

卷积神经网络发展至今,已经产生了很多变体,网络之间各有特点。本文以最基本的分类网络为基础,对各种经典网络进行概括性总结。

LeNet5-1998

Gradient-Based Learning Applied to Document Recognition
卷积神经网络可以追溯到 1998 年(卷积神经网络的起源还要早),LeCun 把这个网络称为 LeNet-5,并用于手写数字的识别。
LeNet-5
原论文中提出使用了三种架构思想来确保对一定程度的平移、缩放和扭曲不变性:

  • 局部感受野(local receptive fields)
  • 权值共享(weight sharing)
  • 下采样(subsampling)

LeNet 使用了 卷积-下采样-非线性激活 序列(下采样采用平均池化),这个网络特征一致延续至今。除此之外,全连接(full connection)和特征图(feature maps)等也还是现在卷积网络的基本组件。可见 LeNet 对卷积网络产生了多大的贡献。但是,由于数据和硬件条件的限制,深度学习一直沉寂到 2012 年。

AlexNet-2012

ImageNet Classification with Deep Convolutional Neural Networks
AlexNet
2012 年,AlexNet 横空出世,在 ILSVRC-2012 上大大超越了第二名的选手,从此深度学习进入高速发展阶段。

AlexNet 和 LeNet 在总体架构上很相似,但是 AlexNet 更深,也使用了更多技巧。

特点

  • 使用 ReLU 作为非线性激活函数
  • 使用重叠池化(Overlapping Pooling)
  • 使用数据增强和 Dropout 来减少过拟合
  • 在两块 GPU 上训练,发展为后来的分组卷积

VGG-2014

Very deep convolutional networks for large-scale image recognition

VGG
VGG 可以说是现在最常用的基础网络之一,原因就在于网络结构十分简洁统一,基本就是 卷积-池化 的堆叠,缺点就是参数量比较大。

VGG 相比于 AlexNet,网络更深,且只使用了 3x3 的卷积核,因为两个 3x3 的卷积相当于 5x5 的感受野,三个 3x3 的卷积相当于 7x7 的感受野。在这个网站可以计算感受野

GoogLeNet(Inception V1)-2014

Going Deeper with Convolutions

Inception-1
图源:Medium

提升深度神经网络最直接的办法就是增大网络尺寸,但是越大的网络越容易过拟合、且网络越大需要的计算资源也越大。因此,Google 在它的网络中引入了 Inception 模块。
Inceptionmodule
Inception 模块,图源:slideshare

特点

  • 提出 Inception 模块
  • 在 Inception 模块中使用 3x3、5x5 卷积获得多尺度信息。
  • 在 3x3、5x5 卷积之前使用 1x1 卷积降维,减少参数数量。
  • 在网络中使用两个辅助分类器,提供正则化效果,避免梯度消失。
  • 使用全局平均池化(Global average pooling),增强了特征图与类别间的对应关系,减少了参数,避免了过拟合。

GAP
全局平均池化图解,对每个特征图求均值,图源:GitHub

1x1 卷积和全局平均池化在 Network in Network 这篇文章中提出。

ResNet-2015

Deep Residual Learning for Image Recognition
resnet
图源:deeplearning.ai

当深的网络开始收敛时,暴露出性能退化的问题,这并不是由于过拟合的原因。ResNet 很好地解决了这个问题,并把网络深度直接提高到了 152 层。ResNet 最重要的贡献便是提出了残差块(residual block)的概念,残差块中引入快捷连接(shortcut connection),即输入特征图和经过变换之后的特征图相加,既不增加额外的参数也不增加计算复杂度,使得低层信息可以流向高层,避免了梯度消失的问题,也使得网络更加容易训练。
residual

Inception 系列-2014~2016

Inception V2/V3

Inception V2
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
按照 Inception 系列文章的最后一篇的划分,上面这篇文章被称为 Inception V2。主要贡献是提出了后来的网络经常使用的 BatchNormalization 技巧,BN 使得网络在训练阶段的优化空间变得平滑,加速网络收敛。

Inception V3
Rethinking the Inception Architecture for Computer Vision
Inceptionv3
图源:Medium

Inception V3 的特点是将大卷积分解成小卷积,即 5x5 卷积可以用两个 3x3 卷积代替,3x3 卷积可以用 3×1 卷积后接一个 1×3 卷积代替,这种做法节约了计算成本。(下图分别为 Inception 模块 A、B、C,上图中 Inception 模块数量与原论文有出入)
在这里插入图片描述
除此之外,Inception V3 还设计了尺寸缩减模块(图未展示)用于缩减特征图,使用了标签平滑(label smoothing)技巧来达到正则化效果。Inception V3 中光是 Inception 模块就有 3 种结构,尺寸缩减模块又是另一种结构,太复杂,人工设计痕迹太重,远没有 ResNet 架构的简洁与统一。

Inception V4、Inception-ResNet

Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning

Inception V4
Inceptionv4
图源:cnblogs

Inception V4 对每个网格大小(即每个 Inception 模块)进行了统一,和 Inception V3 相比没有什么太大的变化。改进了 Stem 部分和尺寸缩减部分的架构。

Inception-ResNet
Inception-ResNet (这里指原文中的 Inception-ResNet-v2)与 Inception V4 的主要区别在于 Stem 结构和 Inception 模块,Inception-ResNet 中的 Inception 模块引入了 ResNet 中提出的快捷连接。整体性能与 Inception V4 接近。

Xception

Xception: Deep Learning with Depthwise Separable Convolutions

Xception 最大的特点便是用深度可分卷积替代了 Inception 模块。动机来源于一个假设:跨通道相关性和空间相关性是完全可分离的。
下图是一个传统的深度可分卷积过程,Xception 中使用的顺序不同,先执行 1x1 卷积,再执行深度卷积。
Xception 于 Inception V3 相比,在没有增加参数的情况下提升了性能,提高了参数的效率。
Xception
图源:Towards Data Science

ResNet 系列-2015~2016

ResNet V2

Identity Mappings in Deep Residual Networks
resnet-v2
ResNet V2 和 ResNet 的不同之处就在于层与层之间的顺序,在 ResNet V2 中,分支中的层不像传统的 Conv-BN-ReLU 顺序,而是改成了 BN-ReLU-Conv。作者把这个称为预激活(pre-activation),其思想是将非线性激活也看成一个恒等映射(identity mapping),这样,在前向和反向阶段,信号可以直接的从一个单元传递到其他任意一个单元。这样的操作使得优化更加简单,甚至能训练深达 1001 层的 ResNet。下图展示了这一方法的来源过程。
在这里插入图片描述

ResNeXt

Aggregated Residual Transformations for Deep Neural Networks

正如 Inception-ResNet 借鉴了 ResNet 的思想,ResNeXt 也借鉴了 Inception 的思想。对于每一个残差块,进行 分-变换-合(split-transform-merge)操作,用更少的层可以得到比 ResNet 还要好的结果,且降低了复杂度。

文章还提出了一个 “cardinality” 概念,即残差块被分组的数量。
ResNeXt
ResNeXt 模块可以等价于 Inception-ResNet 模块,进而等价于分组卷积。加粗字体展示了等效变换。
在这里插入图片描述

DenseNet-2016

Densely Connected Convolutional Networks
densenet
DenseNet 和 ResNet 的思路类似,但是 DenseNet 中每一层都将之前所有层的输入进行拼接,之后将输出的特征图传递给之后的所有层,重用特征,从而最大化信息(梯度)流,避免了梯度消失问题,也减少了参数量。
在这里插入图片描述

SENet-2017

Squeeze-and-Excitation Networks

SENet 中提出了 SE(squeeze and excitation) 模块,通过显式地建模卷积特征通道之间的相互依赖性来提高网络的表示能力。采用特征重标定策略,通过学习来获取每个通道的重要程度,从而有选择性的提升信息特征并抑制不太有用的特征。
在这里插入图片描述
如下图所示,SE 模块可以很方便地嵌入现有的网络。全局平均池化作为 Squeeze 操作,生成通道描述符,提取出全局信息。然后是两个全连接层组成的 Excitation 操作,用于建模通道间的相关性。Sigmoid 后得到的输出和另一分支的特征图进行逐通道相乘。
嵌入 SE 模块会稍微增加参数量,但能得到可观的性能提升。
在这里插入图片描述

总结

以上仅仅列出了部分用于分类的卷积神经网络,近些年来卷积网络的发展十分迅速,例如引入了注意力机制、卷积网络与循环网络相结合、图神经网络等,还有近期利用 GAN 产生的令人惊叹的结果,都见证了卷积神经网络在图像领域的发展。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值