基于卷积神经网络的手写数字图像识别方法

2020-03-02 08:45
绵阳师范学院学报 2020年2期
关键词:手写识别率过滤器

杨 栩

(成都师范学院物理与工程技术学院,四川成都 611130)

0 引言

随着计算机视觉的研究应用逐步推向深入,数字图像的分类识别也越来越成熟,神经网络是图像模式识别中的一种重要算法,它模拟生物神经网络,由输入节点、隐藏层节点和输出节点等多层节点组成,通过卷积神经网络[1-3]可以实现深度学习[4],手写数字图像分类识别可以通过卷积神经网络实现.

特征提取是深度神经网络的难点之一,由于图像输入向量的维度一般都特别大,计算量特别大,特征降维就非常必要.高子祥等[5]提出一种双路卷积神经网络来丰富差异特征,提高特征表达层次,该算法重复使用卷积池化过滤器,神经网络层数过多,计算量偏大;杨鎏等[6]提出一种全局-局部神经网络提取特征,再用支持向量机(SVM-Support Vector Machine)来分类,该算法分类精度不高,最高73.5%.本文使用卷积神经网络(一个卷积层一个池化层)实现手写数字分类识别,输入图像(28*28像素)通过20个9*9像素卷积过滤器提取图像特征,再通过20个池化过滤器进一步降维到10*10像素,ReLU函数有效避免了梯度消失和过拟合问题.最终使手写数字识别率达到96.3%.

1 深度神经网络建模

图1 深度神经网络建模及预测Fig.1 Modeling and prediction of deep neural network

对经过预处理后的手写数字图像实现灰度值归一化[8],本文采用MNIST数据库,该数据库总共包含70 000张28*28像素的手写数字图像,为了控制训练时间,选取数据库中的8 000张作为训练数据,2 000张作为测试数据.训练图片在随机梯度下降学习规则的作用下对深度神经网络进行训练,使随机初始化的权重值得到优化.测试图像数据经过训练好的神经网络后得到分类输出.深度神经网络建模及预测框图如图1所示.

1.1 随机梯度下降学习规则

由于梯度是方向导数最大的方向,用梯度下降算法计算误差曲面的最快下降方向,随机梯度下降算法计算训练数据的误差并随机调整权重,激活函数权重更新公式如下:

ei=di-yiδi=φ'ieiΔWi,j=αδixjWi,j=Wi,j+ΔWi,j

(1)

其中α(0<α1)为学习率,Wi,j为两层极点间的权重,输出节点i的误差ei=di-yi(di为输出节点i的正确输出),输出节点的激活函数为φi,xj为输入节点j的数据.本文中隐藏层节点采用整流线性单元ReLU函数[9](公式2)作为激活函数,它的导数为公式3,它能很好的解决梯度消失问题,如图2所示.

(2)

(3)

输出层激活函数采用softmax函数[10-12](公式4),该激活函数不仅考虑到了输入的加权和,还考虑到了其它输出节点的输出值,且满足条件∑φ(vi)=1(vi为输出节点i的加权和,φ(x)为激活函数),也即所有输出节点通过激活函数后会以不同概率分类到每一类,并且所有分类概率之和为1,不会出现重复分类现象,softmax激活函数如图3所示.

(4)

图2 ReLU激活函数Fig.2 Relu activation function

图3 softmax函数Fig.3 Softmax function

1.2 深度神经网络

对于单层神经网络或者不可训练的神经网络来说是没有意义的,随机梯度下降增量规则在多层神经网络中应用的最大障碍是隐藏层的正确输出不得而知,进而隐藏层的误差不能确定,本文隐藏层误差用反向传播的增量的加权和来定义.进而误差可以反向传播到输入层,从而神经网络的每一层的权重都可以进行调整.

图像为28*28像素的手写数字图片,经过卷积层的20个9*9像素的过滤器过滤后,经过ReLU激活函数,再进入池化层进一步降维,降维后的特征向量进入神经网络学习,最后通过softmax函数输出分类,深度神经网络[13-16]模型如图4所示.

1.2.1 卷积池化过滤器 采用20个9*9像素的过滤器对图像进行卷积运算,卷积过滤器如图5所示,手写数字7经过卷积过滤器处理后的特征如图6所示,池化后的结果如图7所示.

图5 卷积过滤器图像特征Fig.5 Convolution filter image features图6 数字图像7经过卷积层处理后的结果Fig.6 The result of digital image 7 processed by convolution layer图7 数字图像7经过池化处理后的结果Fig.7 The result of pool treatment of Figure 7

1.2.2 节点的正向传播计算 假设降维后的神经网络模型有n个输入节点,m个隐藏节点,k个输出节点,W1为输入层和隐藏层之间的权重向量矩阵,X为输入向量,v为隐藏节点加权和,v’为输出层节点加权和,W2为隐藏层和输出层之间的权重向量矩阵,Y’为隐藏层节点通过激活函数后的输出向量.隐藏层节点的加权和为

(5)

隐藏层节点通过激活函数后的输出为

(6)

输出层节点加权和为

(7)

1.2.3 误差的反向传播计算 计算正确输出与模型输出之间的误差向量e,再计算输出节点的增量δ,该增量与节点间权重的加权和作为隐藏层误差e',反向传播至输入层,进而调整到神经网络的所有权值.

2 手写数字分类识别实验

实验步骤:

[1]选用MNIST图像库中8 000张图片用于训练卷积神经网络.

[2]输入图像(28*28像素)经过20个9*9像素的卷积过滤器,维度降维20*20像素.

[3]经过池化层进一步降低图像维度到10*10像素.

[4]输入2 000维度向量进一步训练神经网络.8 000张训练图像用于训练深度神经网络.

[5]最后用MNIST图库中另外2 000张图像用于测试,检验图像分类准确率.

手写数字分类属于神经网络中的多分类问题,通过卷积池化后输入向量为2 000维,W为[9,9]向量,W1为[2 000,100]向量,W2为[100,10]向量,训练样本为MNIST图像库中8 000个样本,测试样本为该图像库中另外2 000个样本.训练样本如图8所示,部分测试结果如表1所示.

表1 部分测试样本识别率Tab.1 Recognition rate of some test samples

通过试验可以看出,卷积神经网络算法对于手写数字分类识别具有非常高的识别率,训练样本8 000,测试样本为2 000时,识别率为93.5%,如图9所示.训练样本对识别率影响非常大,如果逐步提高训练样本个数从1 000到8 000,训练次数固定为3,识别率从61.6%提升到93.5%,如图10所示.保持训练样本8 000不变,对样本的训练次数也能影响识别率.训练次数从1次到8次,识别率从86.73%上升到96.3%,如图11所示.

图8 输入为28*28像素的训练数字图像Fig.8 Input training digital image of 28*28 pixels

图9 训练样本8 000时的识别率Fig.9 Recognition rate of 8 000 training samples

图10 训练样本对识别率的影响Fig.10 The influence of training samples on recognition rate

图11 训练次数对识别率的影响Fig.11 The influence of training times on recognition rate

3 结论

卷积神经网络通过卷积过滤器、池化过滤器实现图像特征提取,输入向量降维,已大大缩减了计算量,通过训练样本使深度神经网络权重参数得到了优化,ReLU函数[16]有效解决了梯度消失问题,对电气化铁路中手写数字签名识别率达到了96%以上.通过实验可以看出,过滤器通过ReLU函数后,出现了个别过滤器全黑的图像,这意味着该过滤器没有捕捉到图像的任何特征,这种情况需要更多的训练数据、更多的训练次数才能改善.

猜你喜欢
手写识别率过滤器
我手写我心
抓住身边事吾手写吾心
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
听力正常青年人的低通滤波言语测试研究*
更 正
基于集成学习的MINIST手写数字识别
提升高速公路MTC二次抓拍车牌识别率方案研究
声音过滤器
高速公路机电日常维护中车牌识别率分析系统的应用
深度学习在手写汉字识别中的应用综述