卷积神经网络发展简述 | 课程作业-蒋誉

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卷积神经网络发展简述 | 课程作业-蒋誉相关的知识,希望对你有一定的参考价值。

  • 摘要:深度学习作为近年来快速发展的一个领域,而卷积神经网络是其包含的深度神经网络中的一种经典的结构,一直被相当多的研究者所研究,尤其是随着数据集的扩充和GPU性能的大幅提升,卷积神经网络由此得到了更多的关注。本文最开始回顾了它的起源和发展;然后对卷积神经网络的基本结构进行了介绍;接着描述了近年来研究者们针对卷积神经网络的组件(卷积层、池化层、激活函数及其它方面)的一些改进措施;最后以计算机视觉领域的权威学术型比赛ILSVR为时间线,介绍了冠亚军所采用网络的架构,以此反映卷积神经网络的发展。

  • 关键词: 卷积神经网络;改进措施;架构;应用领域

  • Abstract:Deep learning is a field of rapid development in recent years, and convolutional neural network is a classical structure of deep neural network it contains. It has been studied by quite a few researchers, especially with the expansion of data sets and the substantial improvement of GPU performance, convolutional neural network has received more attention. This paper first reviews the origin and development of convolutional neural networks. Then the basic structure of convolutional neural network is introduced. Then, some measures to improve the components of convolutional neural networks (convolution layer, pooling layer, activation function and other aspects) in recent years are described. Finally, taking ILSVR, the authoritative academic competition in the field of computer vision, as the time line, the network architecture adopted by the champion and runner-up is introduced, so as to reflect the development of convolutional neural networks.

  • Key words:convolutional neural network;improvement measures;architecture;development

 

01   言


  积神经网络(Convolutional Neural NetworksCNN)源自对生物体的视觉感知机制的模拟和近似。HubelWiesel[1]1962年发现猫脑的视觉皮层中存在负责挖掘图像中局部空间相关性的细胞,称为感受野(receptive filed)。随后在1980年,Fukushima[2]在此研究基础上提出了结构和它类似的神经认知机(neocognitron),这是一种多层的人工神经网络,S型细胞和C型细胞是组成它的最主要的两种单元,其中S型细胞能够最大响应感受野中如边缘等刺激;C型细胞对确切位置的刺激局部不敏感。神经认知机能够准确识别带有较小位移或轻微变形的图像。在1998年,LeCun[3]在此研究基础上进行了改进,使用BP算法设计并训练了基于梯度学习的经典的CNN模型——LeNet-5,成功对手写数字字符进行了识别。

  后续许多工作都是基于LeNet-5做出的改进,最值得关注的是2012年由Krizhevsky[4]提出的CNN架构AlexNet,该架构相比以往所有方法,在图像分类中取得了显著突破。之后的研究者在AlexNet的基础上做出改进,向着越深、越宽、越复杂的方向发展,提出了如VGGNetDPNSENet等架构,但随之出现的过拟合、难优化等问题驱使着研究者不断地提出改进的措施。

  本文首先介绍CNN的基本结构,然后针对CNN中各部分的改进措施进行阐述,最后总结一些典型的CNN架构以显示CNN的发展。

 

02 CNN基本结构


  CNN的主要由输入层、卷积层(convolutional layers)、池化层(pooling layers,又称取样层)、全连接层和输出层构成[4],如图1展示了经典CNN模型LeNet-5的结构,其中卷积层和池化层一般会交替设置若干个。

▲ 图2.1 LeNet-5网络结构

2.1 卷积层

  输入层以后的第一层是卷积层,它由多个特征面(Feature Map)组成,特征面包含了多个神经元,每个特征面只和前层特征面的局部连接,连接由卷积核来实现,如图2所示,这样的局部区域被称为神经元的感受野。卷积核是权值矩阵,在图像识别中往往选择3×3或者5×5的矩阵。卷积层的作用是,通过卷积核和前层进行卷积,从而提取输入中不同的特征,卷积层的层数越高,它提取的特征越高级越抽象,CNN也由此得名,其中第一层的卷积层提取的是输入层中的边缘、角等相对形象的特征。

  在同一个输入的特征面和同一个输出的特征面中的权值是共享的,如图2所示,权值共享发生在同一颜色中,不同颜色的权值不共享,通过权值共享可以减小模型的复杂度,方便训练[6]。

▲ 图2.1.1 卷积层与池化层结构

  卷积层中神经元的输出函数又称激活函数,CNN中一般选用非线性函数作为的激活函数,如sigmoidtanhReLU等,非线性的引入使得多层网络能够检测非线性特征。

2.2 池化层

  池化层在卷积层后面,也有多个特征面组成,且每个特征面和卷积层的一个特征面相对应,如图2所示。池化层的作用是降低特征面的分辨率(降维或者抽象),相当于对卷积层提取得到的特征进行再一次的特征提取,具有移位不变性,

  最大值池化和均值池化是常见的两种池化操作。最大值池化是选取输入的区域中的最大值进行输出,往往是提取一些比较形象的特征,因此最大值池化层一般是低层的;均值池化则是取输入区域中所有值的算术平均值作为输出。可以看出,池化过程对应的也是一个非线性的过程。

2.3 全连接层

  CNN中经在输出前,会连接全连接层。全连接层可以有单个也可以有多个,主要用于汇总前一层中的零散的局部信息,经过整合以后形成全局的信息,传给输出层。

  为了提升网络的性能,全连接层中神经元的激活函数一般选择的是ReLU函数。在选取合适的损失函数后,可以通过BP算法来训练全连接层中的权值[6]。

  当数据集相对于神经网络而言规模较小时,训练很容易会发生过拟合的情况,为了正则化,全连接层中会采用丢失数据技术(dropout),该方法通过随机使某些隐层节点失效,使其在BP算法中既不参与前向传播又不参与反向传播,这样的方法使得网络能学习到鲁棒性更好的特征。目前对CNN的研究大都是采用ReLU + dropout的技术[7]

2.4 输出层

  输出层是CNN的最后一层,常用softmax逻辑回归(softmax regression)的来进行处理输出:对分类分类问题而言,输出的是输入图片归于某类别的概率;对于回归问题而言,输出的是一个具体的数值[4]

  针对不同的问题需要选择合适的损失函数(loss function),这是因为CNN的训练目标就是使得损失函数最小。常用均方误差(Mean Squared ErrorMSE)函数和交叉熵(cross entropy)函数等来作为损失函数。

 

03 CNN改进措施


  2012CNN架构AlexNet被提出[5]使得CNN的发展有了重大突破后,研究者们的研究重心转向了对CNN进行改进,用以解决由于网络复杂化导致的过拟合、难优化等问题。目前研究者们主要在卷积层、池化层和激活函数方面提出了许多的改进措施。

3.1 卷积层方面的改进

  卷积层用以提取图像中不同的特征,近年来的研究者通过一些关键举措来改进卷积层,提高了整个CNN网络的性能。

3.1.1 网中网结构

  CNN卷积层的卷积运算一般是线性的,然后利用激活函数来进行非线性的输出,因此其更适合发掘一些线性可分的特征。但是,如果要发掘高度非线性的一些特征,就要通过抽象来得到同一概念在不同的变体中的那些保持不变的特征,这类特征往往更常见。基于此目的,在2013Lin[8]提出了网中网(Network in NetworkNIN)结构,如图3所示,该结构将传统的线性卷积层(Linear convolution layer)替换成了微型神经网络,称为MLP卷积层(Mlpconv layer)。

▲ 图3.1.1 线性卷积层和MLP卷积层

  (MLP卷积层的激活函数选用ReLU函数,采用BP算法来进行训练的,能够提取更加抽象的特征,泛化能力更强。

3.1.2 Inception结构

  受到网中网结构的启发,2014Szegedy[9]提出了Inception模型,通过降维来降低卷积运算的计算量。具体运行如图4所示,先用1×13×35×53个不同尺寸的滤波器提取不同尺度的特征信息,将信息融合后传递给下一层,其中1×1的滤波器就是起到降维的作用,降低后续卷积的运算量。

▲ 图3.1.2 Inception结构

3.1.3 双卷积

  CNN的卷积层中通过权值共享来降低模型的复杂度,方便训练,在此方向上,2016Zhai[10]提出了双卷积神经网络(DCNN),结构如下图5所示,它采用滤波器组(meta filters)来代替原本独立的一组卷积滤波器,组内的滤波器可以相互转化,由此为参数共享提供了额外的支持,提高参数效率。但是由此带来的代价是双卷积造成的计算成本的增加。

▲ 图3.1.3 双卷积神经网络

3.2 池化层方面的改进

  池化层用以简化卷积层的信息,降低维度。除了常用的最大值池化和均值池化,研究者针对所研究的具体问题,还提出了一些比较成功的池化操作。

3.2.1 混合池化

  Yu[11]等在2014年提出了混合池化的方法,如下式(1)所示。

▲ 图3.2.1

  该方法实际上是最大值池化和均值池化的组合,其中是0或1的随机值,对应使用最大值或者均值池化。训练过程中正向传播的会被记录用于反向传播。混合池化可以更好地解决过拟合的问题。

3.2.2 随机池化

受dropout技术的启发,Zeiler等[12]在2013年提出了随机池化的方法。该方法首先将区域内的值进行归一化,然后利用处理之后的值来计算每个区域的概率,从而获得分布 P ( p 1 , ⋯   , p R i ) P\\left( p_1 , \\cdots ,p_Ri \\right) P(p1,,pRi) ,选择的多项式分布中的一个位置,池化后的激活值表示为: y j = x l ,    l P ˜ ( p 1 , ⋯   , p ∣ R j ∣ ) y_j = x_l ,\\,\\,l\\~P\\left( p_1 , \\cdots ,p_\\left| Rj \\right| \\right) yj=xl,lP˜(p1,,pRj)

  该方法可以用到许多通常用不到的元素值,随机因素的引入同样可以很好地避免过拟合的产生。

3.2.3 空间金字塔池化

  He[13]2015年提出了空间金字塔池化(spatial pyramid poolingSPP),该方法如下图6所示,对输入的特征图中的局部区域进行池化,这些区域的大小与图像成比例,由此获得了固定大小的特征向量,作为输入进入全连接层。SPP是最后一个池化层,使得网络能够处理不同大小的图像。

▲ 图3.2.2 空间金字塔池化

3.2.4 Spectral池化

  Rippel[14]通过对图像的频域进行裁剪提出了Spectral池化。该池化需要先对输入特征图进行离散傅里叶变换(DFT),然后按照需要输出的图像尺寸,对频率图维持频率中心进行裁剪,对裁剪后的频率图进行逆DFT获得输出图像。如图7所示,相比于最大值池化,Spectral池化在相同的输出维数中保留更多的信息,且通过使用FFT可以降低计算量。

▲ 图3.2.3 最大值池化与Spectral池化输出对比

3.3 激活函数的改进

  激活函数将非线性引入了CNN中,使得网络能够解决非线性的问题。除了选用常见的sigmoid函数、tanh函数和ReLU函数,近年来,针对这些常见函数的出现的一些问题,研究者提出了一些新的激活函数。

3.3.1 Leaky ReLU函数

  ReLU函数是最广泛运用的激活函数,但是它存在一个缺点,那就是神经元不活动时梯度为0,这样不仅可能会使得训练过程减慢,还会造成一些最初未被激活的节点一直不会被激活,从而导致死节点的产生。因此在2013年,Maas[15]提出了Leaky ReLU函数,表达式如下:

f ( x ) = x x ≥ 0 0.1 x x < 0 f\\left( x \\right) = \\left\\ \\beginmatrix x & x \\ge 0\\\\0.1x & x < 0\\\\\\endmatrix \\right. f(x)=x0.1xx0x<0

  该函数与ReLU函数的区别是在负值部分会进行压缩,而不是将其变为0

3.3.2 Swish函数

  Swish函数是谷歌的研究者在2017年提出的一种新型的激活函数[16],该函数表达式如下:

f ( x ) = x 1 + e − β x f\\left( x \\right) = x \\over 1 + e^ - \\beta x f(x)=1+eβxx

▲ 图3.3.1 Swish函数

  该函数为介于线性函数和ReLU函数之间的函数。与ReLU函数不同,Swish函数平滑非单调,如下图8所示。

3.4 其他方面的改进

  除了在卷积层、池化层和激活函数做出改进,研究者还在其他方面进行了改进,如在CNN中加入新的模块来改善网络的性能。

3.4.1 空间变换网络

  为了减小CNN受数据在空间上多样性的影响,2016Jaderberg[17]CNN中加入了空间变换网络(Spatial Transformer NetworksSTNs),该模块结构如下图9所示,主要由本地化网络(Localisation network)、网络生成器(Grid generator)和采样器(Sampler3个部分组成。STNs不需要改变CNN的结构,可以直接作为输入层或者插入到中间层之后,在使得CNN对处理图像的平移、旋转和缩放等变换具有不变性的同时,还能保证很快的计算速度。

▲ 图3.4.1 空间变化网络结构

3.4.2 反卷积

  反卷积网络(Deconvolutional Networks)是由Zeiler[18]2010年提出的,相比与CNN自底而上地不断提取特征,反卷积网络是用已经学习了的滤波器组卷积特征面,将得到的特征进行求和以后重构输入的信号,如下图10所示。

▲ 图3.4.2 单层反卷积层

  如图11所示,反卷积网络的作用是可视化CNN中各层网络提取得到的特征,从而方便研究者对其进行分析和改进[19]。

▲ 图3.4.3 通过反卷积可视化提取特征

 

04 CNN卷积架构发展


  CNN发展到现在出现了许多卷积架构,而架构也朝着更深、更宽的方向发展。ILSVRImageNet Large Scale Visual Recognition Challenge)是机器视觉领域最受追捧也是最权威的学术竞赛,本节通过分析ILSVRC分类任务各届的冠亚军网络,介绍其代表性的架构来显示CNN的发展。

4.1 LeNet-5

  LeNet-5LeCun[3]1998年提出的经典的CNN模型,能够对手写数字字符进行识别。LeNet-5模型的结构如图1所示,由2个卷积层、2个池化层和2个全连接层组成,结构较为简单,但能够很好地展示CNN的原理。

4.2 AlexNet

  AlexNetKrizhevsky[4]2012年提出的CNN架构,该架构凭借15.4%Top5错误率赢得了当年ILSVRC比赛的冠军,相比以往的方法取得了重大突破。AlexNet模型的结构如图12所示,由5个卷积层和3个全连接层组成。相比前人的架构,AlexNet做出了一系列的改进:采用了ReLU函数作为激活函数提高了训练速度;引入了dropout技术来减弱全连接层中的过拟合问题;采用了局部响应归一化(local response normalizationLRN)提高泛化能力;通过调整训练集中RGB通道强度等方式进行了数据增强的处理等等[4]

▲ 图4.2.1 AlexNet 模型结构

4.3 ZFNet

  ZFNetZailer[19]2013年提出的CNN架构,该架构凭借11.2%Top5错误率赢得了当年ILSVRC比赛的冠军。ZFNet模型的结构如下图13所示,总体可以看作是AlexNet架构进行了微调和优化。

▲ 图4.3.1 ZFNet模型结构

  ZFNet通过引入反卷积使得每一层提取的特征可视化,在训练过程中,低层的特征会快速收敛,高层的特征则需要到后期才能收敛,如图14所示。ZFNet对于图像的翻转和缩放的输出是稳定的,但是对于图像的旋转难以稳定,除此之外如果对象被遮挡的话分类的准确性会显著下降。

▲ 图4.3.2 不同层次提取的特征

4.4 VGGNet

  VGGNetSimonyan[20]2014年提出的CNN架构,在当年ILSVRC比赛中取得定位冠军、

  分类亚军的成绩,错误率为7.3%VGGNet模型的结构如图15所示,相较于之前的架构,VGGNet的层数达到了19层,主要讨论了深度对于CNN的重要性。

▲ 图4.4.1 VGGNet模型的网络结构

  VGG是通过重复使用3×3的卷积层和2×2的池化层来增加网络的深度。由于两个3×3的卷积层可以组成5×5的感受野,实际上这种方式相当于是用几个尺寸小的滤波器取代尺寸大的滤波器,目的是减少训练用的参数,但同时也使得网络的判断更加准确。

4.5 GoogLeNet

  GoogLeNetSzegedy[9]2014年提出的CNN架构,该架构凭借6.67%Top5错误率赢得了当年ILSVRC比赛的分类冠军。GoogLeNet模型的结构如图16所示,它是一个22层的CNN,由多个Inception模块(图4)级联而成,Inception模块可以在保持计算成本的同时增加网络的宽度和深度;GoogLeNet删掉了全连接层,减少网络参数的同时也提高了算法的计算效率和性能。

4.6 ResNet

  ResNetHe[21]2015年提出的CNN架构,该架构赢得了当年ILSVRC比赛的检测、定位和分类冠军,取得了3.57%Top5错误率。ResNet共有192层,是一个非常深的网络。

  针对由卷积导致的深层网络梯度消失从而难以训练的问题,ResNet在网络中加入了残差模块从而形成了深度残差网络,使得卷积层可以被跳过。如图17所示,由残差模块组成的残差网络学的是残差映射 F ( x ) = H ( x ) − x F\\left( x \\right) = H\\left( x \\right) - x F(x)=H(x)x ,而不像传统网络那样学习卷积层函数。

▲ 图4.6.1 GoogleNet模型结构

▲ 图4.6.2 ResNet模型的残差模块

4.7 ResNeXt

  ResNeXt是在ResNet的基础上发展起来的网络,由Xie[22]2016年提出的,获得了当年ILSVRC比赛的分类亚军。ResNeXt的模块结构如图18所示,它是ResNet的残差模块和GoogLeNetInception模块的结合体,其中Inception模块的每个分支相同,不需要人为进行设计。

▲ 图4.7.1 ResNeXt模型结构

  图18 ResNeXt模块(右)和ResNet模块(左)对比[22]

  ResNeXt同时借鉴了VGGResNet重复堆叠模块追求深度的思想,最终的分类结果要优于ResNetResNeXt的架构如下图19所示。

  图19 ResNeXt和ResNet的架构对比[22]

4.8 DenseNet

  受ResNet跳过卷积层思想的启发,Huang[23]2016年提出了DenseNet架构。该架构结构如图20所示,在卷积网络中采用前馈的方式将每一层与其它层进行连接,其特征图借此输入到其它层中。相比于ResNetDenseNet在取得相当准确性的同时只需要更少的参数,并且同样改善了深度神经网络训练过程中的梯度消失的问题。

▲ 图4.7.2 DenseNet模型的结构

4.9 DPN

  DPNDual Path Network)是Chen[24]2017年提出的CNN架构,该架构凭借6.2%的识别错误率赢得了当年ILSVRC比赛的定位冠军。DPN模型的结构如图21所示。

▲ 图4.9.1 DPN模型结构

  DPN综合了ResNet重用已提取的特征和DenseNet试图提取新特征这两种架构的优点,既能在层内共享通用的特征,又能以双路径来探索新的特征。

4.10 SENet

  SeNetSqueeze-Excitation Networks)是Hu[25]2017年提出的CNN架构,该架构凭借2.3%的识别错误率赢得了当年ILSVRC比赛,的识别任务冠军。SeNet模块的结构如图22所示,该架构对于有利于分类的特征予以激励,而对于无用于分类的特征予以抑制,即通过学习全局信息来选择性地对信息的特征进行强调。

▲ 图4.10.1 SeNet模块结构

  SeNet可以以引入很少的参数和计算量为代价,换取CNN性能的大幅提升。

 

05   论


  从上世纪80年代,Fukushima[2]提出了人工神经网络——神经认知机(neocognitron)以后,CNN在近年来发展迅速,尤其是在计算机视觉领域一直备受关注,而本文介绍了近年来研究者对CNN的一些改进措施以及出现的几种比较重要的CNN的架构,以显示其研究发展。

  但是CNN仍然存在一些待突破的方向,如随着架构向越深的方向发展,训练方法和算力要求都需要同步提高;此外目前的CNN几乎都是有监督学习,这需要人预设分类指标,费时费力,需要向着无监督方向发生转变。

 

考文献 ※


[1] HUBEL D H, WIESEL T N. Receptive fields, binocular interaction and functional architecture in the cat’s visual cortex[J/OL]. The Journal of physiology, 1962, 160(1): 106-154.
[2] FUKUSHIMA K. Neocognitron: a self organizing neural network model for a mechanism of pattern recognition unaffected by shift in position[J/OL]. Biological cybernetics, 1980, 36(4): 193-202.
[3] LECUN Y, BOTTOU L, BENGIO Y, et al. Gradient-based learning applied to document recognition[J/OL]. Proceedings of the IEEE, 1998, 86(11): 2278-2324.
[4] 陈超,齐峰.卷积神经网络的发展及其在计算机视觉领域中的应用综述[J].计算机科学,2019,46(03):63-73.
[5] KRIZHEVSKY A, SUTSKEVER I, HINTON G. ImageNet classification with deep convolutional neural networks[J/OL]. Communications of the ACM, 2017, 60(6): 84-90.
[6] 周飞燕,金林鹏,董军.卷积神经网络研究综述[J].计算机学报,2017,40(06):1229-1251.
[7] KRIZHEVSKY A, SUTSKEVER I, HINTON G. ImageNet classification with deep convolutional neural
  networks[J/OL]. Communications of the ACM, 2017, 60(6): 84-90.
[8] LIN M, CHEN Q, YAN S. Network In Network[J/OL]. 2013.
[9] SZEGEDY C, LIU W, JIA Y, et al. Going Deeper with Convolutions[J/OL]. 2014.
[10] ZHAI S, CHENG Y, LU W, et al. Doubly Convolutional Neural Networks[J/OL]. 2016.
[11] YU, DINGJUN, et al. Mixed Pooling for Convolutional Neural Networks[C]// International Conference on Rough Sets and Knowledge Technology . Springer, Cham, 2014: 364-375.
[12] ZEILER M D, FERGUS R. Stochastic Pooling for Regularization of Deep Convolutional Neural Networks[J]. arXiv.org, 2013.
[13] HE K, ZHANG X, REN S, et al. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition[J/OL]. IEEE transactions on pattern analysis and machine intelligence, 2015, 37(9): 1904-1916.
[14] RIPPEL O, SNOEK J, ADAMS R P. Spectral Representations for Convolutional Neural Networks[J/OL]. 2015.
[15] MAAS, ANDREW L. Rectifier Nonlinearities Improve Neural Network Acoustic Models[C] // Proc.ICML.2013.
[16] RAMACHANDRAN P, ZOPH B, LE Q V. Searching for Activation Functions[J/OL]. 2017.
[17] JADERBERG M, SIMONYAN K, ZISSERMAN A, et al. Spatial Transformer Networks[J]. arXiv.org, 2016.
[18] ZEILER M D, KRISHNAN D, TAYLOR G W, et al. Deconvolutional networks[C/OL]//2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. IEEE, 2010: 2528-2535.
[19] ZEILER M D, FERGUS R. Visualizing and Understanding Convolutional Networks[J/OL]. 2013.
[20] Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[J]. arXiv preprint arXiv:1409.1556, 2014.
[21] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.
[22] Xie S, Girshick R, Dollár P, et al. Aggregated residual transformations for deep neural networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 1492-1500.
[23] HUANG G, LIU Z, WEINBERGER K Q, et al. Densely connected convolutional networks[J]. arXiv:1608.06993,2016.
[24] CHEN Y, LI J, XIAO H, et al. Dual path networks[C]//Advances in Neural Information Processing Systems.2017:4470-4478.
[25] Hu J, Shen L, Sun G. Squeeze-and-excitation networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7132-7141.


● 相关图表链接:

以上是关于卷积神经网络发展简述 | 课程作业-蒋誉的主要内容,如果未能解决你的问题,请参考以下文章

适用于深度学习的高性能系统架构综述

40深度卷积神经网络的发展史

机器学习三 卷积神经网络作业

了解CNN

机器学习 | 卷积神经网络初识

14 深度学习-卷积