摘要:基于深度学习卷积神经网络在手写体数字识别中的应用,对卷积神经网络的结构进行介绍,同时使用MNIST数据集对设计的卷积神经网络模型进行训练与测试,训练后的模型在MNIST的测试集样本中的识别精度可以达到99.25%。最终将训练好的模型用于在线手写体数字的识别,识别精度高达99%以上。实验结果表明,与传统的线性回归模型相比,卷积神经网络有更好的鲁棒性和抗干扰性,识别精度明显优于传统的线性回归模型。
关键词:卷积神经网络;MNIST;手写数字识;线性回归;深度学习
中图分类号:TP311文献标识码:A
文章编号:1009-3044(2020)21-0013-03
开放科学(资源服务)标识码(OSID):
目前,由于手写数字的应用范围广泛,例如邮政编码手写体、智能手机的手写输入法等,使得手写数字识别研究成了深度学习的研究热点之一。手写数字识别研究的内容是让计算机准确、高效地识别人随机手写的数字,但由于不同人的书写方式千差万别,书写的大小与角度也不尽相同,进而增加了对手写数字识别的难度,因此传统线性回归模型不能正确精准地对手写体数字进行识别[1]。
在此背景下.由于卷积神经网络结构的不断优化以及计算机性能的不断提升,使得卷积神经网络在图像识别领域取得了重大的突破。卷积神经网络中可以将图像的每一个像素均看成一个特征,直接将手写数字图像作为卷积神经网络模型的输入并自动进行特征提取,再根据提取后的特征进行分类识别[2],不仅克服了传统方法中需要对图像实时预处理的弊端,还提高了对手写数字的识别精度。
本文实验中把通过MNIST数据集训练好的卷积神经网络模型保存下来,在Python环境下结合Flask,在线随机手写不同形状和大小的数字并进行实时识别。为了直观地体现卷积神经网络识别的精确度,本文将识别结果的概率值在前端页面展现出来,并和传统的线性回归模型进行对比,体现出了卷积神经网络对手写数字识别的优势性与高精度性。
本文分为3章,组织结构如下,第1章介绍卷积神经网络相关理论知识,第2章为实验结果与分析,介绍卷积神经网络的训练过程和实验结果,第3章对全文进行总结。
1 卷积神经网络
卷积神经网络的核心思想是通过权值共享和局部感知域的方法减少网络的参数个数,缓解了网络模型过拟合的问题,获得了某种程度的尺度、位移、形变不变性,同时还降低了网络模型的复杂程度[3]。卷积神经网络的基础架构主要包含了五个部分,分别是输入层、卷积层、池化层、全连接层与输出层[4]。其网络结构如图1所示。
1.1卷积层
卷积层又称为特征提取层,主要作用就是对输入的数据进行特征提取,其内部包含了多个卷积核,组成卷積核的每个元素都对应一个权重系数和一个偏差量,并且卷积核的个数决定了最终提取的数据特征数量。卷积运算的实质是用一个可训练的卷积核fx去卷积一个输入的图像,然后加一个偏置bx,得到卷积cx。卷积的详细过程可以理解为使用一个卷积核依次过滤图像的各个区域,从而得到这些区域的特征值[5]。卷积的流程如图2所示。
1.2池化层与激活函数
池化层又称为降采样层,其作用是对卷积层提取出的特征进行降采样处理,进一步减少特征数量并降低特征数据的维度,同时不影响对图像的描述,还能够有效地避免过拟合问题的出现。目前下采样的常用方法有平均值下采样、最大值下采样、高斯下采样等。本文在实际应用中,将输入的特征图划分成多个不重叠的2x2大小的图像块,然后采用了均值法进行降采样,其公式如式(1)所示。
在神经网络中,常用的激活函数有Sigmoid函数、ReLU函数和softmax函数等,根据其自身的优势不同使得他们的应用范围也不尽相同。在卷积神经网络中,隐藏层节点和输出层采用了不同激活函数。在隐藏层由于需要对图像特征的提取域降维,为了解决梯度消失的问题,使用了ReLU作为激活函数;在输出层为了避免出现重复分类的现象,使用了softmax作为激活函数[6]。ReLU和softmax函数公式如式(2)、(3)所示。
1.3全连接层
全连接层在整个卷积神经网络结构中位于池化层的后一层,显而易见其作用是连接经过卷积和降采样后提取出来的所有高级特征,并将最后的输出值送给分类器得出最终的分类结果。全连接层的最终目的是将学到的“分布式特征表示”映射到样本标记空间[7],其实现过程是通过对输入的特征做加权求和,再加上偏置量,然后通过softmax激活函数[8]来获得最终的结果,其表达式如式(4)所示。
2 实验过程与分析
2.1 模型训练
本实验在Windowsl0 64位操作系统,Python3.7.0环境下使用MNIST数据集进行模型训练,其中每张图像大小为28x28像素。训练样本为MNIST中的60000张手写数字图像,为了提高模型识别的准确率总共训练20000次,总耗时5610秒;测试的样本为MNIST测试集中的10000张手写数字图像,在该测试集上的正确率为99.25%。卷积神经网络模型的训练过程如图3所示。
2.2 实验过程
模型训练完成后,将保存下来的训练模型正式用于实时手写体数字的识别。为了直观地展示识别的效果,本实验在Py-thon的环境下结合Flask并以前端页面的形式展示识别效果。前端页面如图4所示。
可视化界面主要分为三个模块,手写数字区域,图像输入区域和识别结果区域。在手写数字区域可以通过拖动鼠标进行书写0-9之间的任意数字,书写完毕后将其同比例缩放成28x28像素的图片作为模型的输入,最后将识别的结果以0到l之间的概率值的形式输出,进而判断出识别的效果。其中识别结果区域对每一个手写数字将输出10个结果,十个结果中概率值最高的即为最终的识别结果。同时在识别结果区域增加了同样由MNIST数据集训练20000次的线性回归模型来同时进行手写数字的识别,其识别结果与卷积神经网络模型的识别结果进行直观对比。实验流程如图5所示。
2.3 实验结果与分析
在进行随机手写数字在线识别的过程中,对十个类别的阿拉伯数字分别进行了10次测试。测试过程中,为了体现卷积神经网络模型相对于线性回归模型有着更高识别率和更好的鲁棒性以及抗干扰性,在用鼠标进行随机书写数字时故意改变了手写数字的形状、大小和倾斜角度来验证识别效果。其部分手写数字测试结果如下图所示。
对0-9十个类别的随机手写数字分别测试10次,两种模型的平均识别精确率统计结果如表1所示。
对10个类别的手写数字的测试表明,经过MNIST训练后的卷积神经网络模型对相对规范的手写数字的识别正确率达到99%以上,甚至出现识别率100%情况。对于在相同情况下训练的线性回归模型在手写数字相对规范的情况下对数字0、1、2、3、4、7的识别率也能达到94%以上,但对于数字5、6,9的识别率相对较低;对于数字8,由于其与数字3有较大的相似性,因此线性回归模型将数字8识别成了数字3,而卷积神经网络模型能够正确识别8和3。
当手写数字的大小、形状和倾斜度发生变化时,卷积神经网络对数字0、1、2、3、4、7的平均识别率仍能大于在MNIST测试集中的99.25%的识别率,而对于数字5、6、8、9的识别率略有下降,但其平均识别率仍在97%以上,当手写数字发生严重变形时,卷积神经网络模型也会出现识别错误的情况(如图8);而在同样的条件下,线性回归模型的识别率大大降低且出现了较多识别错误的情况。因此足以证明,卷积神经网络相对于传统的线性回归模型有着更高的识别率,同时拥有更好的鲁棒性和抗干扰性。
3 总结
本文使用MNIST数据集对卷积神经网络模型进行训练,然后将训练好的模型用于在线手写数字的识别。实验结果表明,在MNIST的测试数据集上的识别准确率为99.25%,对规范的手写数字的识别准确率高达99%以上,因此可以认为本实验的卷积神经网络模型达到了正确识别手写数字的效果。但训练出来的模型還存在一定的局限性,当手写体数字的位置、大小、倾斜度等发生较大变化时,会使得卷积神经网络模型对手写数字的识别精确率略低于MNIST测试数据集上的准确率,甚至会出现识别错误的情况。针对训练后的模型存在的局限性,可以通过对原始的数字图像进行缩放、平移、旋转等操作来扩充训练模型的数据集,进而使得训练后的模型对手写数字的识别有更高的精确率。
参考文献:
[1]张涛,杨剑,宋文爱,等.改进卷积神经网络模型设计方法[Jl,计算机工程与设计,2019,40(7):1885-1890.
[2]马媛媛,史加荣.卷积神经网络及其在手写体数字识别中的应用[J].湖北工程学院学报,2017,37(6):66-72.
[3]尹晓伟,王真真,孟庆林,等.基于改进的LeNet-5手写数字识别研究[Jl,信息通信,2019,32(3):17-18.
[4]吕红,基于卷积神经网络的手写数字识别系统的设计[J].智能计算机与应用,2019,9(2):54-56,62.
[5]邢萌.基于TensorFlow手写数字识别模型设计与实现[J].电子技术与软件工程,2019(2):56.
[6]代贺,陈洪密,李志申.基于卷积神经网络的数字识别[J].贵州师范大学学报(自然科学版),2017,35(5):96-101.
[7]陈岩,李洋洋,余乐,等.基于卷积神经网络的手写体数字识别系统[Jl.微电子学与计算机,2018,35(2):71-74.
[8] Ravi Babu U,Kumar Chintha A,Venkateswarlu Y.Handwrittendigit recognition using structural, statistical features and K-nearest neighbor classifier[J].lnternational Journal of Informa-tion Engineering and Electronic Business, 2014,6(1):62-68.
【通联编辑:闻翔军】
作者简介:何帅(1996-),男,四川省渠县人,在读研究生,研究方向为图像处理与模式识别。