图像分类之经典卷积神经网络AlexNET、VGG、GoogLeNet、ResNet和DenseNet

时间:2024-03-31 12:06:19

1、CNN的架构模型

  CNN是一种前馈网络,即信息流从输入到输出都是单向的。正如人工神经网络(ANN)是受生物学启发的,CNN也是。大脑的视觉皮层由简单细胞和复杂细胞交替组成(Hubel & Wiesel, 1959, 1962),这激发了他们对CNN架构的设计。CNN的架构有多种变体,通常,它们由卷积层和池化层(subsampling)组成,这些层被分组成模块。在前馈网络中,最后会连接一层或多层全连接层。这些模块通常堆叠在一起,形成一个深层模型。
图像分类之经典卷积神经网络AlexNET、VGG、GoogLeNet、ResNet和DenseNet
  图像直接输入到CNN网络中,接下来是几个阶段的卷积和池化,然后,经过一层或多层全连接层的特征表示,最后,经过一个完全连接层输出类标签。

  从科学技术发展角度看,CNN经典框架的发现深受生物神经科学的发展,通过这篇博文《CNN简史》,我们会发现,现代人工神经网络受生物研究的影响可能比我们想象中的还要大。从中可以得到CNN的三个重要思想:a、权值共享 ; b、局部连接(也叫稀疏连接) ; c、平移不变性和等变性
  1.1、权值共享
图像分类之经典卷积神经网络AlexNET、VGG、GoogLeNet、ResNet和DenseNet
  特性:使用卷积核的权重系数进行卷积时,在同一张图片上权重值系数是一样的,这就是权值共享。
  好处:大大的减少了参数,加速了训练速度。
  1.2、局部连接
图像分类之经典卷积神经网络AlexNET、VGG、GoogLeNet、ResNet和DenseNet
  特性:每个神经元仅与输入神经元的一块区域连接,这块局部区域称作感受野(receptive field)。在图像卷积操作中,即神经元在空间维度(spatial dimension)是局部连接。
  好处:大大的减少了参数,加速了训练速度。
  1.3、平移不变性和等变性
  可以参考这篇博文《CNN 中的等变(equivariant)和不变(invariant)
  平移不变性是指不管对图像中目标进行平移、旋转或缩放,在输出中都能检测到该目标;平移等变性是指图像中目标按某个方向平移或旋转,在输出中相应特征也会在这个方向上移动或旋转;简单来说就是,在CNN的卷积操作中的参数共享使得它对平移操作有等变性,而一些池化操作对平移有近似不变性。

2、CNN经典架构

  2.1 LeNet
  1998年,LeNet由在深度学习领域有着三巨头之一美誉的LeCun等提出,这是最早、最著名的神经网络结构之一。LeNet主要用于识别手写字符,最高识别准确率为98%。LeNet奠定了现代卷积神经网络的基础。
图像分类之经典卷积神经网络AlexNET、VGG、GoogLeNet、ResNet和DenseNet
  LeNet是一个6层的网络结构,包括3个卷积层、2个下采样层和1个全连接层。每个卷积层包括卷积、池化以及sigmoid**函数三部分,使用卷积提取空间特征,降采样层采用平均池化,最后采用softmax作为多分类器。
  2.2 AlexNet
  为了增加AlexNet网络的深度和广度,2012年,Krizhevsky等设计了AlexNet网络,以极大的优势赢得了当年的ImageNet大规模视觉识别挑战赛(ILSVRC),证明了复杂模型下卷积神经网络的有效性,建立了神经网络在计算机视觉领域中的主导地位。
图像分类之经典卷积神经网络AlexNET、VGG、GoogLeNet、ResNet和DenseNet
  AlexNet是一个8层的网络结构(不包括激励层、池化层、LRN(local response normalization)和dropout),其中包括5个卷积层和3个全连接层。第一个卷积层:f=11×11、s= 1和p= 0,第二个卷积层:f=5×5、s= 1和p= 0,其余卷积层:f=3×3、s= 1和p= 0;**函数使用ReLU;池化层:f=3×3、s= 2;全连接层使用了dropout技巧。
  优势:1)ReLU 作为**函数,可以帮助解决深度网络梯度分散的问题;2)使用数据增强、dropout和LRN 层来阻止网络过度拟合,提高模型的泛化能力。

  2.3 VGGNet
  VGGNet是由GoogleDeepMind公司和牛津大学计算机视觉组联合提出的深度卷积网络,它证明网络深度是影响性能的关键因素。该网络有着良好的泛化性能,易于移植到别的图像识别项目,并可下载VGGNet已经训练好的参数以实现良好的初始化权重操作。许多卷积神经网络都是基于VGGNet,如FCN(fully convolutional networks)、UNet、SegNet等。VGGNet版本很多,常用的是VGG16、VGG19网络。
图像分类之经典卷积神经网络AlexNET、VGG、GoogLeNet、ResNet和DenseNet
图像分类之经典卷积神经网络AlexNET、VGG、GoogLeNet、ResNet和DenseNet
  上图是VGG16的网络结构,共有16层(不计池化层和softmax),卷积核大小为3×3,深度分别为64、128、256、512、512,池化层:f=2×2、s= 2。
  VGG16 网络结构与AlexNet相似,区别在于:1)VGGNet拥有16 ~ 19层的网络层数,而AlexNet只有8层,2)VGG16把卷积层上升到卷积块的概念,卷积块包括2~3个卷积层,增大了网络感受野,减少了网络参数,并且通过反复使用**函数ReLU,可得到更多的线性变换,进一步提高了学习能力。
  2.4 GoogLeNet(此处主要介绍Inception V1,可以点击Inception版本变形查看V2、V3和V4)
  GoogLeNet是Szegedy等提出的一种全新深度学习结构,网络结构和VGGNet类似,在主干卷积环节使用Inception结构模块,模块组之间使用步幅为2的3×3最大池化层以减小输出的高和宽。GoogLeNet的好处是很大程度上加深和加宽了网络,减少了参数量,将错误率降至6.656%,但该模型的计算复杂度高,修改通道数困难。
  GoogLeNet Inception V1架构如下
图像分类之经典卷积神经网络AlexNET、VGG、GoogLeNet、ResNet和DenseNet
  Inception V1模块结构
图像分类之经典卷积神经网络AlexNET、VGG、GoogLeNet、ResNet和DenseNet
  2.5 ResNet
  2015年He等提出ResNet网络,在主干卷积环节使用residual结构模块,使用152层超深卷积神经网络对输入数据进行训练,取得较好的效果。
图像分类之经典卷积神经网络AlexNET、VGG、GoogLeNet、ResNet和DenseNet
  上图为ResNet的基本模块,x 为输入样本,F(x)+x是输出结果,F (x)表示网络中数据的运算方式。如果H (x)=F (x)+x 是神经网络的最优拟合结果,则最优的F (x)就是H (x)和x 的残差,采用拟合残差的方法来改善网络的性能,在训练期间保证了残差为零,因此含残差学习单元的深度学习模型网络性能不会受到影响。ResNet模型就是残差学习单元的连续叠加,理论上无限叠加也不会改变网络性能。
  ResNet的创新点是:1)实现了深层的神经网络结构,解决了因不断深化神经网络而使得准确率达到饱和的问题;2)输入和输出能直接相连,这样学习残差就是整个网络的工作,很好地简化了学习目标与难度;3)ResNet是一种迁移性很好的网络结构,易于与其他网络集成。
  2.6 DenseNet
  Huang等提出了DenseNet网络,主要构建模块是稠密块和过渡层。稠密块为稠密连接的highway的模块,过渡层为相邻2个稠密块的中间部分。稠密块定义输入和输出的连接方法,过渡层用于确定通道数。稠密块内部特征图大小必须一致,层级输入是多个字符串的连接,区别于ResNet的element-wise连接,内部每个节点代表BN+ReLU+Conv。
图像分类之经典卷积神经网络AlexNET、VGG、GoogLeNet、ResNet和DenseNet
  传统卷积神经网络中,如果有 L 层,就有L 个连接,但在DenseNet中,每个稠密块都利用该模块中前面所有层的信息,如上图所示,即每层都与前面层有highway的稠密连接,连接数目为L ×(L +1)/2。highway的稠密连接方式缓解了深层网络的梯度消失问题,特征得到了重用,大幅度减少了模型参数,甚至减少了在小样本数据上的过拟合。其缺点是:随着稠密块深度的加深,深层输入特征图谱的维度和最终输出的维度都非常大,针对该问题,采取在稠密块里添加Bottleneck单元和在过渡层里添加1×1卷积的方式来降维。

3、参考资料

  1、Deep Convolutional Neural Networks for Image Classification:A Comprehensive Review
  2、LeNet5:Gradient-Based Learning Applied to Documnet Recognition
  3、AlexNET:ImageNet Classification with Deep Convolutional Neural Networks
  4、VGG:Very Deep Convolutional Networks for Large-Scale Image Recognition
  5、GoogLeNet-Inception V1:Going Deeper with Convolutions
  6、ResNet V1:Deep Residual Learning for Image Recognition
  7、DenseNet:Densely Connected Convolutional Networks
  8、《CNN经典结构