卷积神经网络发展

2021-03-03 09:43欧阳鑫玉
辽宁科技大学学报 2021年5期
关键词:池化网络结构神经元

周 楠,欧阳鑫玉

(辽宁科技大学 电子与信息工程学院,辽宁 鞍山 114051)

卷积神经网络(Convolutional neural networks,CNN)与传统识别方法相比,具有识别速度快、分类准确度高、所需特征少、可以自训练等优点,已被广泛应用于计算机视觉、智能控制、模式识别和信号处理等领域,并在图像目标识别、自然语言处理、语音信号识别等方面取得了极大的成功,成为深度学习的代表算法之一[1-2],推动着人工智能的快速发展。

1 卷积神经网络的发展阶段

1.1 萌芽阶段

卷积神经网络的雏形最早出现于1962年,Hubel和Wiesel[3]对猫大脑中的视觉进行系统研究,整理了猫脑中各个神经元的电活动,首次提出感受野的概念,激发人们对神经网络进一步思考,并在图像识别等领域引入感受野的思想,促进了神经网络的快速发展。1980年,Fukushima等[4]提出一个神经网络结构,该结构包含卷积层和池化层,并给出神经认知机(Neocognitron)算法。这是CNN中卷积层和池化层的设计来源。

1.2 发展阶段

在此基础上,Lecun等[5]于1998年提出LeNet-5网络,构建基于梯度的反向传播(Back propagation,BP)算法对网络进行训练,采用有监督的方法,形成卷积神经网络的雏形。LeNet-5使用两个卷积层和两个全连接层,首次提出“卷积”的概念。自此以后,卷积神经网络吸引了学术界的广泛关注。LeNet-5在物体检测、人脸识别、目标检测、语音识别等方面逐渐开始被应用。但在一般的任务中,LeNet-5不如k-近邻(k-nearest neighbor,KNN)、支持向量机(Support vector machine,SVM)等算法应用广泛,发展缓慢,处于学术边缘。

2006年,Hinton等[6]提出一种具有多层神经元的深度置信网络(Deep belief networks,DBN),它是一种生成模型,通过训练各个神经元的权重,生成训练数据,训练效果特别好,大大提高了神经网络的鲁棒性。

1.3 快速发展阶段

在2012年的Imagenet图像识别大赛中,Hinton组提出深层结构的AlexNet[7],引入Dropout方法。与LeNet-5网络相比,AlexNet的网络更深,将识别错误率从25%降低到15%。特别是AlexNet使用图形处理器(Graphics processing unit,GPU)运算,促进了图像识别领域的发展。

2013年,Zeiler等[8]提出ZFNet,获得ILSVRC(Imagenet large scale visual recognition challenge)冠军。ZFNet采用反卷积技术对CNN进行可视化分析,使用更小的卷积核,保留更多的特征,加强了CNN的分层抽象学习的能力。

2015年,He等[9]提出ResNet算法,在Top-5上的错误率仅为3.75%,缓解梯度消失问题。之后,He等优化Fast R-CNN[10]和Mask R-CNN[11]等算法,在识别大量信息的基础上,还能完成目标检测、实例分割等任务,使图像识别技术迅猛发展。

此后,新的卷积神经网络不断产生。如VGGNet(Visual geometry group network)[12]和Goog-LeNet[13]等卷积神经网络具有良好的识别效果。2016年以后,残差注意力网络(Residual attention network)[14]、Xception[15]、MobileNet[16]、Mobile-NetV2[17]和Efficient Net[18]等网络在识别精度、运行速度、网络轻量性和适用范围等方面,较之前的网络又有进一步提升。

2 卷积神经网络结构

卷积神经网络包含4种核心模块。

2.1 卷积层

卷积是一种提取图像特征的有效方法。用卷积核按照设定好的步长在特征图上滑动,遍历所有像素点。

卷积层是卷积神经网络的核心层,包含大量的计算。在处理高维度图像输入时,无法让每个神经元均与所有神经元一一连接,只能让每个神经元进行局部连接,这种连接的空间大小称为神经元的感受野。为了控制参数的数量,需要用到权值共享。权值共享使用同一个卷积核卷积整个图像,参数量大大减少。

卷积层参数包含卷积核(filter)、步长(stride)和填充(padding)。为了防止边缘信息丢失,可采取填充方法多次计算边缘,使得卷积之后图片跟原来一样大。

2.2 池化

在卷积神经网络中,需要大量的图片输入到网络中进行训练。为了减轻网络负担,在为图片保留显著特征基础上,降低特征维度,则必须进行池化。池化利用图片的下采样不变性减少像素信息,只保留图片重要信息,且变小后仍能看出所表达的内容。池化后的图片大大提高了网络计算效率。池化的方法有多种,如最大池化、均值池化等,而最大值池化是卷积神经网络中常用的方法。池化过程如图1所示。

图1 池化过程Fig.1 Pooling process

采用2×2的池化核,步长为2,使用全0填充。均值池化是将每一个2×2区域中的平均值作为输出结果;最大池化是将2×2区域中的最大值作为输出结果,从而找到图像特征。池化操作容易丢失图片信息,需要增加网络深度解决。

2.3 激活函数

卷积神经网络提取到的图像特征是线性的,非线性变换可以增加模型表达能力。激活函数可以对提取到的特征进行非线性变换,起到特征组合的作用。

早期卷积神经网络主要采用Sigmoid函数或tanh函数。随着网络的扩展以及数据的增多,近几年ReLU(Rectified linear unit)在多层神经网络中应用较为广泛。ReLU的改进型函数,如Leaky-ReLU、P-ReLU、R-ReLU等也在使用。除此之外,ELU(Exponential linear units)函数、MaxOut函数等也经常被使用。

常用的Sigmoid函数的表达式为

tanh函数的表达式为

ReLU函数表达式为

上述三种常用函数的图像如图2所示。Sigmoid函数存在梯度弥散,且函数不是关于原点对称,计算指数函数比较耗时,在反向传播时,易出现梯度消失,无法完成深层网络的训练。tanh函数原点对称,计算指数函数速度快,但仍存在梯度弥散问题。ReLU函数解决部分梯度弥散问题,收敛速度更快,但在x取负数时,部分神经元死亡且不会复活。Leaky-ReLU函数解决了神经死亡问题。

2.4 全连接层

全连接层是卷积神经网络的分类器,通常位于网络的最后。卷积操作可以实现全连接层。矩阵向量乘积是全连接网络的核心操作,即

式中:x是全连接层的输入;W为权重;b为偏置。

图2 三种激活函数的图像Fig.2 Images of three activation functions

全连接层的每个节点都需要和上一层每个节点彼此相接,学习模型参数,进行特征拟合,把前一层的输出特征综合起来,故该层的权值参数在网络中最多。参数过多,导致网络运算速度降低,所以近年来常用全局平均池化(Global average pooling,GAP)来替换全连接层,很大程度上加快了网络的运行速度。全连接层结构如图3所示。在池化后输出的20个12×12的图像,经过全连接层变成1×100向量,实现预测分类功能。

图3 全连接层示意图Fig.3 Schematic diagram of full connection layer

3 几种经典的卷积神经网络

3.1 LeNet

LeNet即LeNet-5,是公认最早的卷积神经网络之一,是很多神经网络架构的基础,其网络结构如图4所示。LeNet-5共有7层网络,每层都包含可训练参数;每层都有多个特征图(Feature Map),每个特征图输入的特征通过卷积滤波器进行提取,每个特征图有多个神经元。卷积层的局部连接和权重共享,卷积层的参数较少。

图4 LeNet-5网络结构Fig.4 Lenet-5 network structure

LeNet-5是一种用于手写体字符识别的非常高效的卷积神经网络。Ahranjany等[19]提出一种将卷积神经网络与梯度下降训练算法相结合的手写波斯语/阿拉伯语数字识别方法,识别率达到99.17%;如果剔除10%的“难识别”样本,识别率达到99.98%。Liu等[20]改进LeNet-5的卷积神经网络模型,应用于脱机手写英文字符识别,对每一层的神经元数量和某些层之间的连接方式进行特殊设置,在UNIPEN的小写和大写数据集上进行测试,对大写和小写的识别率分别为93.7%和90.2%。Ying等[21]在LeNet-5上提出一种新的激活函数——整流指数单元(Rectified exponential units,REU),该函数输出的均值接近0,改进了ReLU函数中神经元假死现象,使激活函数的选择更加多样化。Liu等[22]利用LeNet-5检测诊断制造设备中的内圈磨损、外圈磨损和轴承滚子磨损等故障,在电机轴承数据集上进行验证,提高了诊断精度,收敛速度更快。传统的表情识别方法通常只利用一个或几个特征处理正面人脸图像,导致有用信息丢失严重,对噪声和人脸姿态过于敏感。Ma等[23]将LeNet-5和SVM(Support vector machine,SVM)结合,在MTFL数据库和GENKI-4K数据库上的识别准确率分别达到87.81%和86.80%。

LeNet-5网络的缺点有:(1)网络规模较小,在大量数据集上表现不尽人意;(2)容易过拟合;(3)神经网络计算复杂。

3.2 AlexNet

2012年,AlexNet在ILSVRC中夺得冠军,Top-5测试的误差率为15.3%,但是第二名误差率却达到26.2%。

AlexNet网络结构类似于LeNet,均采用先卷积后进行全连接的方式。但AlexNet更为复杂。AlexNet有6.5万个神经元,600万个参数,5层卷积,3层全连接网络,输出层是有1 000通道的softmax函数。AlexNet的网络结构如图5所示。

图5 AlexNet的网络结构Fig.5 AlexNet network structure

吕鸿蒙等[24]在2017年把增强的AlexNet应用在阿尔茨海默病的早期诊断中,取得较好的测试效果。张雪芹等[25]将AlexNet网络模型进行优化处理,应用于206类植物图像识别,识别精度达到86.7%。Liu等[26]在AlexNet的基础上设计一个残差网络,在烟雾识别上精度达到98.56%。

AlexNet的优点:(1)AlexNet将Sigmoid激活函数改为ReLU激活函数,使得运算更加简单,更易训练;(2)AlexNet采用丢弃法控制全连接层的模型复杂度;(3)AlexNet将局部响应归一化处理(Local response normalization,LRN)后加在激活函数ReLU的后面,大大增加网络的泛化能力,提高训练准确度;(4)使用两块GPU进行计算,运算效率大大提高;(5)使用Dropout方法防止过拟合。

3.3 VGGNet

VGGNet是2014年由牛津大学Visual Geometry Group与Google DeepMind公司共同研发的深度卷积神经网络,获得2014年ILSVRC比赛的亚军和定位项目的冠军,在Top5上的错误率仅为7.5%。VGGNet探索了卷积神经网络的深度和其性能之间的关系。VGGNet在整个网络中全部采用3×3的卷积核和2×2的池化核,通过加深网络结构来提升性能。网络结构如图6所示。

图6 VGGNet网络结构Fig.6 VGGNet network structure

Liu等[27]提出一种基于VGGNet算法的神经网络学习方案,层和不重要的通道可以自动生成。相比AlexNet网络,VGGNet模型尺寸是AlexNet网络1/20,计算机操作是AlexNet网络1/5,减少运行时内存,不需要高性能的硬件支持。Sun等[28]提出一种基于VGGNet网络模型的深度学习智能调制识别算法,提高数字信号在低信噪比下的识别性能。Yang[29]改进VGGNet算法,提出一种名为MicroFace的人脸识别方法,减少对高性能计算机的依赖,识别率达到了96%,具有良好的识别性能和很高的实用性。

VGGNet优点:(1)AlexNet采用3×3的池化核,而VGGNet全部采用2×2的池化核和多个较小卷积核,AlexNet更有利于增加网络的拟合或表达能力;(2)为了提取更多信息,VGGNet采用多通道,网络第一层通道数为64,后面逐层翻倍,至512个通道;(3)由于卷积层可替代全连接层,故网络可以适应不同尺寸的图片,增加了通用性,但由于VGGNet使用3个全连接层,使得计算机资源耗费严重;(4)VGGNet在增加网络深度方面起着举足轻重的作用。

3.4 GoogLeNet

GoogLeNet在2014年的ILSVRC比赛中夺得冠军。GoogLeNet是基于Inception模块的深度神经网络模型。经过两年的不断改进,逐渐形成了Inception V2、Inception V3、Inception V4等版本。GoogleNet有500万个参数,是2012年的AlexNet参数的1/12,且准确度更高。GoogLeNet增加网络的深度和宽度,网络深度达到22层(不包括池化层和输入层),但没有增加计算代价。GoogLeNet模块结构如图7所示。

图7 GoogLeNet模块结构图Fig.7 Diagram of GoogLeNet module structure

Zhong等[30]基于GoogLeNet网络提出单一和集合HCCR-GoogLeNet模型,在手写汉字识别上达到了新的技术水平。HCCR-GoogLeNet有19层,只涉及到726万个参数,在离线HCCR竞争数据集上的识别准确率分别为96.35%和96.74%,超过以往的最佳成绩。Zhu等[31]利用改进的GoogLeNet进行极端天气识别,在ILSVRC-2012数据集上进行实验,与原始GoogLeNet相比,该方法的识别正确率从94.74%提高到95.46%,在CPU和GPU上识别速度快1.39倍和2.44倍。Li等[32]提出一种基于深度卷积生成对抗网络(Unsupervised representation learning with deep convolutional generative adversarial networks,DCGAN)和 改 进 的GoogLeNet脱机手写汉字识别方法,能够修复和识别被遮挡的字符,在扩展的CASIA-HWDB1.1数据集测试效果很好。

GoogLeNet的优点:(1)网络架构的改变,充分提升网络内部资源的利用率;(2)将网络深度改为22层,在增加网络深度和宽度的基础上,未增加计算代价;(3)采用平均池化(average pooling)代替全连接层,将准确率提升0.6%;(4)网络增加2个softmax用作辅助分类器,减少梯度消失问题。

3.5 ResNet

ResNet于2015年发布,获得ILSVRC比赛的冠军,取得5项第一。ResNet解决了深度卷积神经网络模型训练难的问题。

一般来说,深度学习表达能力的增强需要更多的参数和网络层数,所以从AlexNet的7层网络到VGGNet的16层乃至19层,直到GoogLeNet的22层网络。但网络层数的增加会导致网络收敛慢,分类性能和准确率并不能明显提升。为了解决这些问题,ResNet使用152层的网络结构,并采用跳跃结构,使Top 5错误率仅为3.57%。

ResNet结构如图8所示。在网络结构中,采用捷径连接(shortcut connections),把输入a直接传到最后的输出作为初始结果,输出结果为S(a)=K(a)+a,当K(a)=0时,S(a)=a。故ResNet学习目标从S(a)变为S(a)-a,残差K(a)=S(a)-a。因此,残差结果逼近于0成为后面的训练目标,且随着网络加深,准确率不再下降。

图8 ResNet网络结构Fig.8 ResNet network structure

Lu等[33]提出深耦合ResNet模型,称为DCR(Deep coupled ResNet),用于低分辨率的人脸识别,性能明显优于现有技术水平。Wen等[34]提出一种新的TCNN(Transfer convolutional neural network)方法,该方法结合迁移学习,在电机轴承数据集和自吸离心泵数据集上预测精度均优于其他传统方法与深度学习模型。

ResNet与VGGNet相比,复杂度降低,参数减少,深度更深,一定程度上减少梯度弥散或梯度爆炸问题的发生;更利于优化,能有效解决深度网络退化问题。

4 结论

本文梳理了卷积神经网络的发展历程,介绍卷积神经网络的三个阶段。对卷积神经网络的结构进行总结,介绍卷积层、池化层、常见激活函数的优缺点和全连接层。阐述了几个经典的、具有代表性的卷积神经网络(LeNet,AlexNet,VGGNet,GoogLeNet,ResNet)的发展和演变。

随着人工智能的发展,人机交互的需要,卷积神经网络有着不可替代的优势,但也需要不断改进:继续增加网络的自学习能力,使网络更易搭建和解决实际问题;网络层数的增加会导致训练速度降低;在数据不足的情况下,增加网络学习准确率等。随着CNN对于目标检测技术日趋成熟,向无人驾驶、教育、医疗和智能家居等领域迅速迈进。CNN研究还有很多关键问题需要解决,通过努力,定会将CNN的发展提升新的高度。

猜你喜欢
池化网络结构神经元
基于Sobel算子的池化算法设计
基于高斯函数的池化算法
卷积神经网络中的自适应加权池化
基于卷积神经网络和池化算法的表情识别研究
跃动的神经元——波兰Brain Embassy联合办公
基于互信息的贝叶斯网络结构学习
知识网络结构维对于创新绩效的作用机制——远程创新搜寻的中介作用
沪港通下A+ H股票网络结构演化的实证分析
复杂网络结构比对算法研究进展
ERK1/2介导姜黄素抑制STS诱导神经元毒性损伤的作用