APP下载

基于改进的卷积神经网络图像识别方法

2020-02-24珂,

科学技术与工程 2020年1期
关键词:池化层识别率卷积

张 珂, 侯 捷

(上海应用技术大学机械工程学院,上海 200093)

随着时代的进步、科技的发展,计算机视觉已经广泛地应用到于各个领域,而这些应用的核心技术就是图像处理[1]、图像识别[2]和分类的任务。而识别技术是通过计算样本的特征,计算机把运用到分类器上,针对不同的计算数值产生分类。自20世纪80年代以来,光学字符识别方法研究一直都是模式识别的热门话题[3]。由于不同的人手写数字的习惯不同,所写的数字字体都不尽相同,对于计算机而言,能够正确地识别出大量的手写字体不是一件容易的事情。因此,研究一种准确又高效的数字识别方法具有重要意义[4]。

针对图像识别方法中,传统的识别方法如支持向量机、传统神经网络、最近邻域法KNN等。最小距离分类算法是比较传统的识别算法,缺点在于针对手写字体的适用能力不强。KNN最近邻域法的识别方法思想来源于统计学[5],原理是将图像的特征进行计算,测量出不同特征计算结果的距离进行分类,其优点是对异常的采集数据不敏感。支持向量机(support vector machine,SVM)已成功运用到图像识别方法上。支持向量机在机器学习中,可以避开高维空间的复杂性,在基于小样本、高维度空间计算和非线性问题中,表现非常突出。但是在分类问题中,求解函数时所占的存储空间较大。上述这些传统的识别算法,对较为复杂的数学函数,表达能力是非常不足的,泛化性能不好,通常对数据的预测及精度达不到预期效果[6-8]。卷积神经网络(convolutional neural networks, CNN)的研究最早开始于20世纪80年代,由美国学者Cun等提出[9]。它的出现为解决图像识别的泛化能力提供了可能性。卷积神经网络,作为深度学习中比较成功的模型,已经在图像识别领域中得到了诸多应用。

在以上所述识别方法上,以神经网络作为识别研究方法,并结合图像识别的基本原理,对比不同的识别算法,改进LetNet-5的网络结构,同时运用dropout的方法解决训练过程中出现的过拟合现象。通过MINIST数据库进行网络结构实验,提高网络结构的运算速度,同时尽可能提高算法的识别准确率。

1 深度神经网络图像识别模型设计

LeNet-5是一个非常成功的手写字符识别神经网络,由被称为卷积神经网络之父的LeCun提出[10]。LeNet的整体结构较小,总参数约6万个,在图像识别领域中表现优秀,应用范围广泛。

1.1 神经网络基本结构

传统的CNN一般由输入层、卷积层、下采样层、全连接层、输出层这五部分组成[11]。网络结构如图1所示。

第一层为输入层。针对普遍的多层神经网络,第一层就是特征向量[12]。一般地,图像通过人工处理计算得到特征向量,并作为神经网络的输入。而卷积神经网络与普遍的多层神经网络不同,整个图像则为网络的输入层,如本文的实验对象为MINIST数据库中手写数字图片,经过处理所得图像的尺寸为28×28,为了方便数据的调用、读取,可以将图像按照像素个数展开,形成784个结点。

卷积层,也称为特征提取层。图像特征提取很多文献都有提过,卷积操作是卷积神经网络的灵魂,卷积核则是卷积操作的工具。图像通过卷积核得出卷积计算值,生成新的特征图片。在卷积核遍历整体图片时,卷积核中的参数是共享状态的,这就意味着运算量大大减少[13]。原理如图2所示。

图2 卷积运算原理图Fig.2 Principle diagram of convolution operation

下采样层,也称为池化层。特征图片在进行池化操作中,图片的深度不发生改变,但是可以缩小图片的大小[14]。池化操作可以看作是把一张高分辨率图片转变成尺寸较小的低分辨率图片。通过多次池化层,可以逐步减少最后全连接层的参数个数,从而减少整个神经网络参数,提高训练速度。池化层本身没有可以训练的参数。

全连接层与一般的全连接层相同。其输入层是前面的特征图,会将特征图中所有的神经元变成全连接的样子。这个过程为了防止过拟合会引入Dropout。

1.2 LeNet-5模型结构

LeNet5 这个网络虽然很小,但它的整体结构模型非常完整,传统的卷积、池化等操作都有涉及[15]。

如图3所示,LeNet-5共有7层,除输入层和池化层,每层都含可训练参数;每个层有多个特征层,每个特征层通过卷积滤波器提取,输出新的特征层,每个特征层有多个隐藏节点。其中C1和C3表示卷积层,S2和S4表示池化层,F表示全连接层。C1到F6可以当作隐藏层。

图4 改进后的网络结构模型
Fig.4 Improved network structure

对传统的LeNet-5模型进行如下改进:在LeNet-5网络中,激励函数为双曲正切函数,池化层为2层,卷积层2层。在此,去掉C5层,直接将S4处理过后的数据进行F6全连接层连接,同时改变各层神经元的个数,增加卷积层操作时的特征提取维度,提高特征识别的准确率。具体结构如图4所示,对比改进后的模型可以看出,隐藏层减少到5层,整体提取维度加大。卷积层与池化层交替运算,所以改进的图片仍保留了图像对位移、缩放和旋转的不变性和良好的鲁棒性的优点。

在改进后的网络结构中,输入层的数据尺寸仍为MINIST数据输入大小。C1为第一个卷积层,运算后有16个24×24的特征图,这些特征图中,每一个神经元都是由输入层的数据与5×5的卷积核进行卷积操作得出,在卷积运算时,同一特征映像图的权值共享,网络可以并行的学习。卷积后的特征映像图会作为S2池化层的输入对象,池化后的特征映像图图像个数不会发生变化,尺寸则缩小一倍。C3是第二个卷积层,S4是第二个池化层,当特征图像进行第二次池化操作后,会以全连接的方式相连得到输出的输出层,因为样本是0~9的种类区分,对应10个节点,整个CNN网络模型的参数一共有6 369个参数,与原始的LeNet-5模型的60 000个参数相比,参数个数有明显的减少。

1.3 神经网络算法实现

1.3.1 训练过程

网络模型一般训练时可分为两个阶段。

第一阶段,前向传播。在网络进行前向运算过程中需要三部分信息。第一是输入,也就是特征向量。本次实验数据源于MINIST字符库,是由手写数字整合打包的公开实验数据,每个数字尺寸大小都已定义为28×28像素,一共784个特征点可以把这784个点当作特征向量作为输出传输到输入层。第二,神经网络的连接结构,神经网络中的神经元也叫做节点。在网络准备训练之前,需要做一系列的初始化操作:设定计算参数的初始值;设置网络的结构以及卷积核大小;并用合理的初始值来定义各个参量的权值,设置学习率和迭代次数。最后输入层输入数据,经过网络的卷积池化,计算得出前向传播的结果。

第二阶段,反向传播。对于训练结果如何更好地提高,优化各个参量,最常采用的方法是反向传播算法。反向传播算法具体工作原理如图5所示。

由图5可知,反向传播算法的实质就是迭代。由于训练样本量大,不可能一次性传输所有样本,所以在每次迭代的训练开始,都会小批量的抽取训练数据,这一小批量样本叫作一个batch。这个batch会通过前向传播算法,计算出训练后的识别检测结果。因为训练样本中带有识别正确标签,所以可以通过计算的结果和标签进行对比,找出预测结果和正确标签存在的数值差距。最后根据这一数值,重新更新网络中各个节点的权值数值,使得进一步减小数值差距,在下一batch进行训练后,预测结果更加接近真实数值。

1.3.2 算法实验

(1)

将式(1)转换为矩阵形式:

(2)

式(2)中:f表示激活函数;wl为l层特征图的权值;bl为第l层特征图的偏置实验中将ReLU函数作为激活函数。

采样层中,针对上一次卷积操作所得数据作为池化层的输入,池化操作是利用一个矩阵窗口在输入张量上进行扫描,并且每个窗口中的值通过取最大、取平均或其他的一些操作来减少元素个数。其计算形式为

(3)

式(3)中:n表示从卷积层到池化层的窗口大小;Mj表示输入的图像特征图的集合。

然后是误差的逆向传播过程,对每一单样本(x,y),它经过网络内部运算过后所得结果可以用代价函数进行表示为

(4)

式(4)中:tn表示第n个样本的实际输出;yn表示第n个样本的理想输出。

该网络模型的反向过程采用平方误差来作为指标维度为m,样本数量n的代价函数为

(5)

在方向传播过程中,采用了批量梯度下降法来更新各个神经元的权值与偏置比重。其中,常数η∈(0,1)是比例系数,gk表示公式曲线中该点的斜率,算法公式简化为

wij(k+1)=wij(k+1)+Δwij=wij(k)+ηgk

(6)

针对交叉熵代价函数表示式为

(7)

根据式(7)可以得出,当期望y与神经网络输出相等时,c=0。计算权值的偏导数:

(8)

由式(8)得,权值的改变受σ(z)-y的影响,也就是期望与输出的误差所决定的。该函数的优点在于:当σ(z)-y值较大时,整体的变化量就大,更易于训练参数的迭代更新,当σ(z)-y值较小时,整体的变化量就小,更易于训练结果的收敛。因此采用交叉熵代价函数来更新网络参数。

对于ReLU函数,曲线特征如图6所示。

图6 ReLU函数模型Fig.6 ReLU function model

从图6可知,ReLU函数是分段函数,把取值小于0时,输出值都是0,当取值大于0时,输出值呈线性变化,这种函数能够产生单侧抑制的效果。相比于其他激活函数来说,ReLU有以下优势:对于线性函数,该激活函数表达能力比其他激活函数都要强;对于非线性函数,该激活函数由于能够产生单侧抑制的效果,因此可以避开训练时梯度消失的相关问题,使得模型在训练过程中,随着迭代次数增大也能呈现稳定的收敛状态。

2 实验结果与分析

MINIST数据集来自美国国家标准与技术研究所,训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中部分样本如图7所示,它总共包含70 000张图片,其中60 000张训练图片和10 000张测试图片,训练集与测试集(test set)图片不重复。其中 50% 是高中学生, 50% 来自人口普查局(the census bureau) 的工作人员。测试集也是同样比例的手写数字数据,该数据都是具有标签的28×28的图片数据集。

图7 MINIST部分样本实例Fig.7 Some sample examples of MINIST

本次实验的CPU参数为Intel(R)Core(TM)i7-8700@3.20GHz,内存为8 GB,系统为Windows10,64位操作系统,使用Anaconda仿真tensorflow的开发环境仿真训练。实验中的学习率取为1×10-4,采用交叉熵代价函数来更新网络参数,训练中,加入dropout避开过拟合问题。训练batch=50,遍历完所有的训练集为一次迭代,初始变量采用标准差为0.1的正态分布进行赋值,总共训练50次输出最终预测结果,然后针对模型训练数据进行分析验证,其结果如图8和图9所示。该网络识别正确率最终为0.992。

图8 改进后网络结构识别率曲线图Fig.8 Recognition rate curve of improved network structure

图9 改进后网络结构loss曲线图Fig.9 The loss of improved network structure

为了测试比较改进深度神经网络的性能,使用传统的LeNet-5的结构进行输出结构调整,同时也采用相同的数据训练集进行仿真对比。在传统的网络模型中,多了一层卷积层和一层全连接层,未加入dropout方法防止过拟合。仿真结果如图10和图11所示,从图10中可以看出:传统神经网络的识别率在98.5%。改进的模型识别率相比较,传统的识别性能更加优秀。

图10 原神经网络结构识别率曲线图Fig.10 Structural recognition rate of original neural network

图11 原神经网络结构loss曲线图Fig.11 The loss curve of original neural network

对比图8、图10, 可以看出,随着迭代次数的增加,正确率也在不断提高,最后网络逐渐达到收敛的状态。在收敛效果上,改进的神经网络结构收敛的效果趋于稳定,在迭代50次的情况下,最终的识别率为99.24%;而传统的LeNet-5在进行训练时,随着迭代次数的增加,识别率随之增加,呈现出不稳定的状态,识别波动相对较大。在迭代50次的情况下,最终的识别率为98.58%。

与此同时,本次实验还针对训练批次做出实验数据研究,每次输入的batch样本数量对识别率的影响。分别将单次的batch设置为50、100、200,实验中其他条件不变。整合以后得到表1。训练迭代次数为50。每5次迭代显示当前训练识别准确率。

从表1中可以看出:在迭代到35次以后,50batch、100batch模型都可达到高于90%的识别准确率,随之迭代次数继续增加,识别率的变化已经趋近平缓,可认为此时网络的模型达到收敛状态。其中收敛速度最快的为50batch,最慢的为200batch。在迭代了45次左右,识别正确率会在99%上下波动,最终在50次迭代中仍未提高。从整体次数来看,200batch的模型,在前期的数据训练上,识别率落后于50batch、100batch模型,100batch模型最终在迭代50次后,模型识别正确率在99.1%左右浮动。在训练过程中,50batch的训练速度并不是最快的。

表1 不同批次条件识别率实验表Table 1 Test recognition rate of different batch conditions /%

3 结论

在LeNet-5神经网络基础上,改进了该网络的结构,大大减少了训练的神经元参数数量,提高了训练的时间,同时增加了特征提取层数量,提高了识别的准确率。通过实验数据,优化后的神经网络在识别手写数字识别正确率上,比原传统的网络结构模型提高了0.8%左右,达到了预期的效果。实验中,不仅比较了方法的不同,而且针对训练批次也进行数据分析,虽然小批量的识别率会大于大批量训练方式的,但是训练速度上要比大批量训练方式慢。未来的识别训练实验中,还需要针对训练批量大小,选取合适的参数,提高识别率的同时,尽可能地提高训练速度。

猜你喜欢

池化层识别率卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络模型研究分析*
基于卷积神经网络的纸币分类与点钞
基于深度学习卷积神经网络的人体行为识别研究
卷积神经网络的分析与设计
从滤波器理解卷积
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
基于全卷积神经网络的SAR图像目标分类*
基于傅里叶域卷积表示的目标跟踪算法
档案数字化过程中OCR技术的应用分析