王梓桥 刘沛丰 郝峰 王铮 崔现伟
摘要:本文基于深度学习技术搭建卷积神经网络(Convolutional Neural Networks-简称CNN),用MNIST数据集作为训练以及测试样本设计了一个手写数字识别技术应用系统。系统采用ReLu的激活函数,实验结果表明对手写数字的识别准确精度可以达到98.6%。
关键词:手写数字识别;深度学习;卷积神经网络
中图分类号:TP391.413 文献标识码:A 文章编号:1007-9416(2018)11-0078-02
0 引言
近年来,随着深度学习的飞速发展以及卷积神经网络在图像识别的研究取得突破性进展,手写数字识别问题已成为该领域的一个热点。传统的人工提取圖像特征方式逐渐被基于深度学习的深层网络学习特征方式所取代。针对手写数字识别问题的研究具有较大的学术价值,该技术实用性强且应用广泛。卷积神经网络是近年发展起来,并引起广泛重视的一种高效识别方法。由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到广泛应用[1-2]。
本文基于深度学习技术搭建卷积神经网络模型,探索了激活函数和学习速率的影响,并获得了较好的实验效果。
1 深度学习简介
深度学习的概念来自于人工神经网络的研究,是机器学习的发展与延伸,也是其第二次浪潮。20世纪90年代初,各种浅层机器学习模型被提出,成为当时的主流。而在2006年,深度学习的概念由Hinton等人提出,从此开启深度学习在学术界和工业界的浪潮。深度学习是机器学习中一种基于对数字进行表征学习的方法,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像、声音和文本。深度机器学习方法有监督学习与无监督学习之分,例如,卷积神经网络就是一种深度的监督学习下的机器学习模型,而深度置信网络(Deep Belief Nets,简称DBNs)就是一种无监督学习下的机器模型。本文实验采用的是CNN模型。
2 模型构建
手写数字识别系统的结构采用分层设计,主要包括:输入层、两层卷积层、两层池化层、两层全连接层、Softmax输出层共八层结构。结构如图1所示。
第一层卷积层:设置输入为每个图像处理后得到的像素矩阵(28*28*1)。设置卷积核的大小为5*5,步长为1。设置卷积层深度为32。深度过大会导致运算时间变长,甚至导致过拟合问题,而通过调整参数发现深度为32是一个最合适的值,可以得到最好的准确率。输出为在此层经过卷积运算后得到卷积层节点矩阵(24*24*32)。
第一层池化层:设置输入为上一层运算所得到的卷积层节点矩阵(24*24*32)。设置过滤器大小为2*2,步长为1。输出为在此层进行最大池化后得到池化层节点矩阵(12*12*10)。
第二层卷积层:设置输入为上一层池化后得到的节点矩阵(12*12*10)。设置卷积核大小为5*5,卷积层深度为64。输出为卷积层节点矩阵(8*8*64)。
第二层池化层:设置输入为上一层运算所得到卷积层节点矩阵(8*8*64)。设置过滤器大小为2*2,步长为1。输出为池化层节点矩阵(4*4*64)。
第一层全连接层:设置输入为由第四层池化层的输出转化而成的一维矩阵。输出由前向传播算法得到。
第二层全连接层:输入与第一层全连接层相同。
Softmax层:通过Softmax回归处理全连接层的输出结构得到分类结果。
3 参数选择
常用的激活函数有Sigmoid函数、Tanh函数、ReLu函数。经对比实验得出结论:ReLu函数并不需要输入归一化来防止它们达到饱和,所以本文实验采用ReLu函数作为激活函数。
学习速率对于手写数字识别系统的影响很大,当学习速率过大时,会导致权重摆动幅度过大,只能在代价函数最小值点附近来回波动,从而无法获得最小值点;当学习速率过小时,不仅会大幅增加学习时间,还浪费了计算机资源。因此应合理选择学习速率。本文实验采用指数衰减的方式设置学习速率,可以保证训练速度前期较快、后期减慢,利于得到最优解。
4 实验
使用MNIST训练数据集训练5000次,设置每迭代100次输出一次日志,得到准确率。经过5000次训练后准确率保持在一个稳定水平。为了使结果更加直观,绘制如下准确率随训练次数变化的折线图。经过5000次训练后准确率保持在一个稳定水平,如图2所示。最终测试结果准确率为98.6%。
5 结语
在这项工作中,我们探索了卷积神经网络技术在手写数字识别领域的应用。实验所用的MNIST数据集具有一定权威性,其样本规模较大,数字图片来源广泛。我们采用了ReLu作为激活函数,优化了学习速率,在实验数据集上获得了98.6%的高准确率。
参考文献
[1]Pradeep J, Srinivasan E, Himavathi S. Neural network based handwritten character recognition system without feature extraction. IEEE International Conference on Computer Communication and Electrical Technology (ICCCET),2011:40-44.
[2]Ian Goodfellow,Yoshua Bengio, Aaron Courville. Deep Learning.MIT Press. http://www.deeplearningbook.org,2016.
Application of Handwritten Digit Recognition Technology Based on Deep Learning
WANG Zi-qiao,LIU Pei-feng, HAO Feng, WANG Zheng, CUI Xian-wei
(School of Computer Science, North China University of Technology, Beijing 100144)
Abstract:In this paper, we build a Convolutional Neural Networks (CNN) based on deep learning technology, and designs a handwritten digit recognition system. We use MNIST data set as our training and testing set. ReLu activation function is employed to improve recognition accuracy. Experimental results show that the accuracy of recognition of handwritten digits can be 98.6%.
Key words:handwritten digit recognition; deep learning; convolutional neural network