APP下载

基于神经网络的手写字符识别优化研究

2018-10-20刘擎宇唐旭清

数码设计 2018年6期
关键词:BP神经网络遗传算法

刘擎宇 唐旭清

摘要:隨着人工智能和大数据的兴起,神经网络的应用越发广泛,使得机械识别成为一个热点研究问题。传统的手写字体识别是以BP神经网络为基础,在大样本的训练数据下对手写字体的进行智能识别。本文提出一种小样本抗干扰的识别方案,使得训练样本在数据较少且存在一定噪音干扰的情况下也能进行高精度、有效识别。首先通过对手写字符的预处理等步骤实现图像压缩,并构建BP神经网络。其次,通过实验数据对网络的拓扑结构进行分析,并结合遗传算法对BP神经网络的参数进行优化。最终,获得了合适的神经网络参数,使得识别网络具有收敛快、稳定性强的优点。

关键词:BP神经网络;遗传算法;目标规划;Otsu阈值分割

中图分类号:TP391.4文献标识码:A文章编号:1672-9129(2018)06-0021-03

Research on the Optimization of Handwritten Character Recognition Based on Neural Network

LIU Qingyu*, TANG Xuqing

(School of Science, Jiangnan University, Jiangsu Wuxi, 214122, China)

Abstract:With the rise of artificial intelligence and big data, the application of Neural Networks has become more widespread and Mechanical Identification has become a hot topic. Traditional handwritten character recognition is based on the BP Neural Networks with a lot of data training to achieve convergence. This paper proposes an anti-jamming identification Neural Networks, which can achieve convergence by smaller data training. Firstly, the handwritten character images were compressed by pre-processing, and the BP Neural Network was construct. Secondly, the network topology was analyzed by using the data experiment, and parameters of the BP Neural Network were optimized by applying the genetic algorithms. Finally, we obtained the network parameters in which the neural network has the advantages of fast convergence and strong stability.

KeywordsBP Neural Network Genetic Algorithm Goal Programming Otsu Threshold

引用:刘擎宇, 唐旭清. 基于神经网络的手写字符识别优化研究[J]. 数码设计, 2018, 7(6): 21-23.

CiteLIU Qingyu, TANG Xuqing. Research on the Optimization of Handwritten Character Recognition Based on Neural Network[J]. Peak Data Science, 2018, 7(6): 21-23.

引言

自从2006年深度置信网络(deep belief network,简称DBF)被Hinton等人提出,深度学习成为在机械智能领域中最具有发展潜力的研究方向,特别是神经网络模型的应用,在语言生成,语音识别,文本的分类处理,图像识别等领域都大放异彩[1],取得了突破性的进展。

图像识别是深度学习最早尝试的应用领域,物体的检测和图像的分类是识别的两个核心问题,而BP神经网络(back propagation neural network),支持向量机(support vector machine)和卷积神经网络[2](convolutional neural network)是解决图像识别的常用模型[3],都在该领域中有着广泛的应用和研究的价值。本文对研究BP神经网络的识别,针对BP神经网络的结构进一步的深究,对基于神经网络的识别进行优化[4]

BP网络具有学习性强和非线性映射的能力,但同时也存在收敛较慢,隐含层结构确定困难等缺点。本文旨在BP神经网络的缺点在手写字符的识别中的一些优化改进方式,具有一定的参考价值。实验数据来自9组不同特点的10张手写数字,共90张。

1  BP网络的结构和参数优化

许多BP网络对手写字体的识别研究旨在提高识别精度,忽略了网络的稳定性,既识别的字体存在噪音干扰也能有效识别的能力[5]

本文主要从优化神经网络的迭代参数和拓扑结构 [6],对BP神经网络进行研究。

首先利用遗传算法优化神经网络的迭代参数,加快网络的收敛。

其次确定隐含层的最优神经元数的大致范围,并引入人工噪音,通过分析在不同网络结构下,有噪音的识别与结构的内在关系,找出使神经网络识别达到最优值的隐含层层数。

1.1  BP神经网络的识别构建[7]

BP神经网络是一种有监督的前馈型神经网络,其特点是信息向前传播,误差反向传播。在信息向前传播过程中,信号从输入层输入,经隐含层的处理最后到输出层输出。输出层的输出值与期望值的误差向后传播调整网络的权值和阈值。

步骤1:构造神经网络

根据数据的结构确定输入层节点数n,隐含层层数和各层节点数l,输出层节点数m,初始化输入层、隐含层和输出层之间的连接权重wij、wjk,初始化隐含层的阈值a和输出层的阈值b,以及给定迭代次数,学习速率和激活函数。

步骤2:隐含层输出和输出层的结果计算

根据输入层的输入数据X,以及各层之间的连接权重和阈值,计算隐含层的输出结果H和输出层的预测结果O

隐含层的输出:隐含层的输出结果为输入值的线性组合的值,通过激励函数的投影得到,,其中f为隐含层的激励函数,本文使用的激励函数为:,输出层的预测:

步骤3:权值与阈值的更新

有监督的神经网络中,利用预测值与期望值的差别来更新网络的参数,到达机械学习的目的。首先根据网络预测O与期望输出Y计算网络的误差。将预测反向传播修正各层之间的连接权重和阈值,误差的计算为:;权值的更新:;

其中為学习速率,反应了网络权值与阈值修改浮动的大小。阈值的更新:

步骤4:迭代。判断是否达到最大迭代步数或者预期误差小于给定绝对误差限。若没有结束,则返回步骤2。

1.2  BP神经网络结构优化

最佳隐含层节点数可参考以下公式[9]

(1)

其中l为隐含层节点数,为输入层节点数,为输出层节点数,为0-10之间的常数。实际的应用中首先确定最佳隐含层节点数的大致范围,再通过试凑法找出最佳的节点个数。BP神经网络的学习率取值在[0,1]间,学习率越大对权值和阈值的修改程度越大。因此过大的学习率会使权值阈值在训练过程中产生较大的震荡,而过小的学习率收敛较慢,权值阈值很难达到稳定。变学习率的方法是指随着训练次数的增加,学习率不断的减小,最终网络达到稳定,变学习率的计算方法如下[10]

当训练样本比较小时,神经网络的识别效率受隐含层层数,学习速率和初始的连接权值和阈值的影响较大,因此可以结合遗传算法,模拟退火算法等优化算法给出最优的参数再进行识别,使其能快速达到收敛。

1.3  遗传算法优化BP网络参数[11]

遗传算法使用一种模仿自然界生物遗传和进化的一种搜索最优化的方法,采用进化论中“优胜劣汰,适者生存”的原理,按照所选择的适应度函数通过遗传中的选择,交叉,变异对个体进行筛选使适应度较好的个体保留,适应度差的个体淘汰,产生新的子代,并且优于上一代种群,反复循坏,直到找到满足条件的解。

(1)选择操作:选择操作是指从旧的种群中选择新种群的操作,个体的适应度值越高被选中的概率越大。轮盘赌算法常常被使用来选择种群中的个体。适应度函数:把个训练样本的预测值与期望值的绝对误差和作为个体的适应值

轮盘赌算法的思想是个体适应值在群体总适应值的比例作为个体被选择的概率

(2)交叉操作:交叉操作是指选择种群中的两个个体进行染色体位点的交换组合来产生新的个体的方法。

(3)变异操作:变异操作是指从群体中任选一个个体,以一定的概率在染色体的一点进行变异产生新的个体的方法。

(4)遗传算法优化BP神经网络的权值和阈值,种群中那个个体包含神经网络的所有权值与阈值,通过初始化,选择,交叉,变异操作来寻找最优的参数设置[12]

2  数字图像的预处理[13]

手写字体会因不同人的书写习惯等因素有着明显的差异性,进行二值化和中心化处理弱化其中的差异性,尽可能的保留字体之间的相同特征。图像的二值化处理[14]是图像分析中最常用的手段之一,在图像信息的压和提取等方面有着十分重要的作用。其目的是由RGB色彩空间与黑白色彩空间的转换,更好的进行图像的分割和识别功能。

二值化处理的基本原理是确定一个阈值,图像数据大于阈值的点设为1,小于阈值为0。

最大类间距法也叫做Otsu方法。其基本思想是用某一假定的灰度阈值将图像的灰度分成两组,当两组的类间方差最大时,此灰度值就是图像二值化的最佳阈值。

首先计算灰度值i出现的概率,假设两组灰度值在整体图像的百分比为w1w2,两组的平均灰度值为u1u2,则有两组灰度值的概率为:;灰度值的均值为:;圖像的总灰度均值为:;类间距方差定义为:

(2)

最佳的阈值确定:

Otsu方法可以理解为阈值将图像分解为对象和背景两部分,当两部分的类间方差最大时,对象和背景的差别最大,二值化效果最好,此时错分概率最小。因此这种方法在图像的二值化处理中有着广泛的应用[15]

由于手写字体的位置和大小不同的差异,需要对二值化后的图像做中心化处理。首先将图片做反色处理,再截取图片中含有完整数字的最小区域,最后将截取的含有完整数字的最小区域转化成标准的统一格式,得到最终处理后的图像。

在图2中,原始图像为RGB图像,处理后图像为的只有0或1的黑白圖像。

3  网络仿真与Matlab实现

神经网络采用不同的隐含层结构,选取60组手写数字带入神经网络训练,训练完成后将BP网络权值阈值参数作为输入变量,将训练的60组数据重新预测,预测误差作为适应度带入遗传算法优化网络参数。另外取30组数据进行检验。重复以上实验,得到20组数据取平均值。

直接调用matlab自带的神经网络工具箱,使用newff()函数创建一个BP神经网络:

net=newff(input,output,D,TF,BTF,BLF)

其中:input和output分别为输入输出向量;D是隐含层神经元向量;TF为节点的传递函数,常使用的传递函数有:正切S型传递函数tansing和对数S型传递函数logsing;BTF为训练函数,论文中介绍的动态变学习率梯度下降训练函数trainda;BLF为网络学习函数。

train()函数训练: net=train(net,input, output);

sim()函数识别 fore=sim(net,testdata)。

本文的实验中构造一个输入层有m×n个神经元,输出层有10个神经元的神经网络(区分字母时输出层为26个)。由公式(2)得隐含层的神经元个数的最佳范围在[8,24]。所有神经元都采用Sigmoid特性,最大迭代步数100,采用变学习率算法训练。

从表1可以看出,隐含层神经元个数在16-18时,BP网络的识别正确率较高,达到92%,而隐含层神经元个数过多或过少都会使网络的识别效率降低。

3.1  结果分析

对于任意一个识别样本,例如手写字符9,误差为期望输出y=[0 0 0 0 0 0 0 0 0 1]与实际BP网络输出的差值。从图3可以看出,三位书写者对于字符1和9绝对误差线在0.01以下,并没有太大的差异性,表明3个书写者字符1和9辨别度都比较高,与其他字符的区分程度也很高。从字符7的书写误差观察,书写者b书写的字符7在数字4上的误差有0.4552,其他两人在数字4上的误差分别为0.0501和-0.0089,使得BP网络在识别的过程中有认为书写者b书写的字符7与字符4有45.52%的相似度,但该字符最终判断在字符7上的相似度为0.9589,被准确区分。同样书写者a在书写字符8时,有0.5945的相似度与3相似,其他两人均无明显的误差。

3.2  模型的稳定性

在实际的生活中,图像数据可能存在丢失和在数据异常模糊等噪音的干扰。图片中的灰度值发生丢失或者在图像数据在传输存储环节发生错误,由于数据的丢失可以看作已知错误位置的数据错误问题,所以下面直接谈论数据错误的情况。

建立一个模拟灰度值发生错误的模型,图片中每个灰度值以一定的概率P进行反色,P可以看作是图片的信息发生错误的概率。将30组测试数据进行不同程度的噪音处理进行识别,进行20组重复实验取平均值。

图4观察,在噪音0.1下,字符的轮廓大部分仍保留了下来,可以对字符进行辨别。但当噪音提升到0.2时,字符变得十分模糊度。接下来分析BP神经网络是否也能将带噪音的手写字符进行有效的识别。

根据表2,在没有噪音的情况下,隐含层神经元个数在[16 18]时,BP神经网络的识别准确率最高。0.05的噪音下,最优神经元个数在[14 16],在0.1的噪音下,最优神经元个数在[12 14],在0.15的噪音下,最优神经元个数在[10 14],在0.2的噪音下,最优神经元个数在[10 14],随着噪音的增加,最优识别的BP神经网络的隐含层神经元个数减少。从神经网络的结构分析,隐含层神经元的输入值是是输入层输出值的线性组合,若隐含层神经元个数较多,则区分能力强,因此对噪音更加敏感,抗噪音能力弱。反之若隐含层神经元个数较少,则区分能力弱,因此不易受到噪音的影响,抗噪音能力强。

4  结束语

本文对结合遗传算法与BP神经网络,优化BP神经网络的内置参数,使得神经网络在训练数据相对较小的情况下也能快速达到收敛状态。优化BP神经网络的内部结构,找到一个恰当的隐含层神经元个数,使得BP神经网络同时具有高效的识别,同时通过实验分析不同噪音下的隐含层结构与识别准确率的关系,发现网络抗干扰能力和识别准确率都与网络的拓扑结构有一定的联系。但非实验直接确定隐含层的个数与网络抗干扰能力和识别准确率的函数关系还需深入研究。

参考文献:

[1]      梁天新,杨小平,王良,等. 記忆神经网络的研究与发展[J]. 软件学报, 2017, 28(11):2905-2924.

[2]      李云. 改进的小波神经网络结构优化算法及其应用研究[D]. 西南大学, 2016.

[3]      孙志军, 薛磊, 许阳明,等. 深度学习研究综述[J]. 计算机应用研究, 2012, 29(8):2806-2810.

[4]      Gong R K, Zhang Y N, Wang C H, et al. Application of the Compound Model of BP Neural Networks and Wavelet Transform in Image Definition Identification[J]. Advanced Materials Research, 2013, 605-607:2265-2269.

[5]      梅贵琴. 改进的Elman神经网络和网络参数优化算法研究[D]. 西南大学, 2017.

[6]      李丹. 基于BP神经网络的多样本手写体字符识别[J]. 软件, 2016, 37(7):103-108.

[7]      刘浩然, 赵翠香, 李轩,等. 一种基于改进遗传算法的神经网络优化算法研究[J]. 仪器仪表学报, 2016, 37(7):1573-1580.

[8]      胡金滨 唐旭清, 人工神经网络的BP算法及研究, 信息技术.2004(3):1-4.

[9]      王云, 陈丽芳. 基于粗决策树规则的神经网络隐含层确定[J]. 数码设计, 2016(3):29-34.

[10]    Yang C C, Prasher S O, Landry J A, et al. Application of artificial neural networks in image recognition and classification of crop and weeds.[J]. Canadian Biosystems Engineering, 2000, 42(3):147-152.

[11]    Ontman A Y M, Shiflet G J. Application of artificial neural networks for feature recognition in image registration[J]. Journal of Microscopy, 2012, 246(1):20.

[12]    赵秦川. 数字图像处理技术与应用探讨[J]. 科技与创新, 2018(4):147- 148.

[13]    Chung H C, Liang J, Kushiyama S, et al. Digital image processing for non-linear system identification[J]. International Journal of Non-Linear Mechanics, 2004, 39(5):691-707.

[14]    禹翼. MATLAB在数字图像处理教学中的应用[J]. 现代信息科技, 2017, 1(2):89-90.

[15]    陈蔼祥. 用于字符和数字识别的若干分类方法的比较研究:实验结果[J]. 计算机科学, 2015, 42(s1):102-106.

猜你喜欢

BP神经网络遗传算法
面向成本的装配线平衡改进遗传算法
基于遗传算法对广义神经网络的优化
基于遗传算法对广义神经网络的优化
基于遗传算法的临床路径模式提取的应用研究
基于遗传算法的临床路径模式提取的应用研究
遗传算法在校园听力考试广播系统施工优化中的应用
物流配送车辆路径的免疫遗传算法探讨
就bp神经网络银行选址模型的相关研究
基于DEA—GA—BP的建设工程评标方法研究
复杂背景下的手势识别方法