基于神经网络的手写体数字的识别
2019-04-24宋季泽
宋季泽
摘 要:随着人工智能时代的到来,科研人员都开始思考如何提高现有的信息处理技术。改善手写体数字的识别效果对信息技术发展有很大的推动作用。卷积神经网络(CNN)是近年发展起来的一种高效识别方法,是多层感知机的一个变种模型,也是对BP神经网络的优化。本文提出了一种基于CNN神经网络的手写体数字自动识别方法,利用从学习样本中提取的特征向量对分类器进行训练,并实现了分类识别。本文重点阐述了支持神经网络的基本原理和该方法的实现过程,实验结果表明基于卷积神经网络的识别方法具有较好的效果。
关键词:手写体数字识别;BP神经网络;卷积神经网络
中图分类号:TP182 文献标识码:A 文章编号:1671-2064(2019)05-0028-02
0 引言
手写体数字识别问题源自邮政编码、统计报表、财务报表、银行票据处理等实际应用。因此手写数字的识别研究一旦能够有效提升其精度并应用在实际工业经济领域中,可以减少很大人工工作量。本文所使用的BP神经网络算法是应用于前馈型神经网络训练的著名算法,在原理上依赖于最优化理论中成熟的梯度下降算法。CNN卷积神经网络是对BP神经网络的优化,它具有局部权值共享的特殊结构,减少了网络自由参数的个数,避免了对图像的复杂前期预处理,最明显的是在运行速度上明显高于BP神经网络。
本文首先对数字样本进行特征提取,然后分别通过BP神经网络和CNN卷积神经网络的方法进行识别,最后与采取KNN传统方法的实验结果进行了比较。
1 算法介绍
1.1 BP神经网络
BP网络(Back Propagation),是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。
前馈神经网络由输入层、中间层(隐层)和输出层组成。相邻层之间的节点采取全连接方式。这三个层分别有不同的功能,输入层负责处理输入的数据,数据形式往往是向量。中间层是多层的神经网络,进行特征表示,最后的输出层输出符合实际需求的数据形式的数据。一次正向传播的过程,正向传播处理过程,由输出层向外界输出信息处理结果。
BP反向传播算法的权值的优化采用的是梯度下降算法。梯度下降算法属于局部寻优的过程,首先随机选择一个初始值,然后沿着目标函数的负梯度方向对权值进行更新。在经过一次正向计算后得到输出与期望的差值,误差代入梯度下降的公式进行计算,对各层的权值进行修正。通常会将神经网络的迭代次数进行限制或者设置一个阈值,当输出与期望的差小于该阈值时,停止迭代计算。所得到的权值阈值就是最后的结果。
目标损失函数为: (1)
参数更新公式为: (2)
本文采用BP神经网络为三层,即中间层为单隐层,结构如图1所示。激励函数的选择直接影响到神经网络结构的性能,因此各层之间选择合适的激励函数非常重要。本文第一层和第二层选择的激励函数均为S型函数。
(3)
1.2 卷积神经网络
卷积神经网络(CNN)是近年发展起来的一种高效识别方法,是多层感知机的一个变种模型,也是对BP神经网络的优化。该算法特征映射结构采用影响函数核小的sigmoid函数作为卷及网络的激活函数,使得特征具有位移不变形,并且每一个映射面上的神经元共享权值,大大减小神经网络的计算量。
以分类数字的LeNet-5为例,这个CNN含有三种类型的神经网络层:
(1)输入层:直接将图像像素信息输入到输入层,不必再使用额外的手动设计特征输入。这样的操作减小了人工预处理过程。
(2)卷积层(C层):中间的卷积网络卷积层起到特征提取的作用。每一层和上一层都通过卷积操作进行变换。不同的卷积核参数分别对局部感受野进行不同的特征表示。卷积操作是深度学习里面最重要的结构之一,它使神经网络具有很大的鲁棒性,能够适用于不同的样本。
(3)抽样层(S层):抽样层属于中间层,该层起池化作用。它通过固定参数与卷积层相连,它的作用是减小特征图的尺寸,并对局部特征进行提取。它的参数在网络训练过程中不再改变。
(4)输出层:卷积神经网络的输出层与常见的前馈网络一样,为全连接方式。最后一层隐层(可为C层或S层)所得到的二维特征模式被拉伸成一个向量,与输出层以全连接方式相连。
2 手写体数字识别系统
2.1 特征提取
特征提取是指如何提取图像信息,得到想要的结果(例如图像的分类,目标的定位等)。因此在深度学习之前,如何手工设计良好的特征提取方法直接影响最后的识别效果。特征选择的好坏具有很强的随机性,这样的方法鲁棒性很差。传统图像处理对数字识别特征提取可以有很多方法,例如分析從框架的左边框到数字之间的距离变化,反应了不同数字的不同形状。
本文采用的是将每个数字进行等分并统计每一个子块内的白色像素的个数作为区别各个数字的特征。由于本文采用的样本统一都是32乘32的,因此将其进行1024等分,然后提取每一个子块内的白色像素的个数。
2.2 建立BP神经网络模型
本文所使用的的样本数量为2880个,其中包含了1934个训练样本,946个测试样本。然后将前面所提取的特征值通过PCA降维的方法将特征维数从1024维降到100维,这样可以加快运算时间提高算法效率。
本文采用BP神经网络为三层,即中间层为单隐层,结构如图1所示。输入层直接采用降维后的特征值。输入神经元个数为100,即特征值按列排成列向量作为输入数据,隐含层设置了的80个神经元,对于输出神经元个数,由于数字识别是10类,就将输出层的神经元个数设为10。迭代次数300次,误差限设为0.001。
2.3 建立卷积神经网络模型
在这里借鉴了Lecun Yann所开发的Lenet所用的卷积神经网络的思路。LeNet5的网络输入层由32*32的感知节点组成,每一个感知器用来接收输入32*32灰度图像的一个像素。
网络第一层为卷积层,卷积核的数目为6,卷积核的大小为5*5,输入层经过第一卷积层,输入图像被卷积成6个28*28的特征图,特征图的大小由输入时的32*32变成28*28。
网络的第二层为抽样层,其局部感受域大小为2*2,即每一个2*2的像素被下采样为1个像素,经过第二个层隐层后,特征图的大小变为14*14,特征图的数目不变,仍为6个。
网络的第三层为卷积层,卷积核的数目为16个,卷积核的大小为5*5,所以经过该层输出的特征图的大小为10*10。特征图的数目变成16个。
网络的第四个隐含层S4为下采样层,局部感受域的大小为2*2,该层输入为16个5*5的特征图。
网络的第五个隐层是卷积层,它是最后一个卷积层,卷积核的大小为5*5,卷积核的数目为6,在卷积操作完成以后,C5将得到的特征图展开成一个向量,向量的大小为120。
网络的第六层为一个全连接网络,节点数为84,这84个节点与C5的120个输入节点完全相连。
网络的输出层节点数目为10,表示对应问题的分类数目(0-9共10个数字)。
3 结果分析
样本数量为2880个,其中包含了1934个训练样本, 946个测试样本。测试结果如表2。
通过对比BP神经网络与KNN的方法的正确率本文发现BP神经网络的效果与KNN接近,但是由于BP神经网络存在一个随机性,并且训练结果与参数设置存在很强的相关联度。隐层节点的个数对识别率的影响不大,但节点越多,运算量越大,训练时间越长;激活函数对识别率有显著的影响;学习率的选择影响训练速度,学习率越高,训练越快,但有可能会造成网络不收敛。整体训练时间比较长,测试时间也较长。
卷积神经网络,虽然在训练网络阶段花费较长时间训练,但在测试阶段时间比BP神经网络断,因为训练只需这一次,以后的数据直接下载已经训练好的网络直接测试,总体还是比较快速的,并且准确率比较高。
可以得出,在样本质量参差不齐的情况下,基于CNN卷积神经网络的方法相比于其它的方法能保持较高的准确率,并且有应用在商业方面的潜力。
4 结语
本文利用了像素数分块提取方法数字样本进行了特征提取,并利用了PCA的方法对特征值的维数进行了降维。最后分别采用了BP神经网络与CNN卷积神经网络对手写体数字进行了分類识别,与传统的KNN方法相比,基于CNN的识别方法正确率较高,最终效果比较可观。但本文仍然存在很多可以改进的地方,在提高算法的速度方面仍然可以做出很多可以优化改进的地方。
参考文献
[1] Vapnik V N著,张学工译.统计学习理论的本质[M].清华大学出版社,2000.
[2] 边肇祺,张学工等.模式识别(第二版)[M].清华大学出版社,2000.
[3] 杨光正,吴岷,张晓莉.模式识别[M].中国科学技术大学出版社,2001.