基于BP神经网络的手写数字识别探讨1.doc

上传人:新** 文档编号:560266671 上传时间:2023-06-16 格式:DOC 页数:5 大小:88.50KB
返回 下载 相关 举报
基于BP神经网络的手写数字识别探讨1.doc_第1页
第1页 / 共5页
基于BP神经网络的手写数字识别探讨1.doc_第2页
第2页 / 共5页
基于BP神经网络的手写数字识别探讨1.doc_第3页
第3页 / 共5页
基于BP神经网络的手写数字识别探讨1.doc_第4页
第4页 / 共5页
基于BP神经网络的手写数字识别探讨1.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于BP神经网络的手写数字识别探讨1.doc》由会员分享,可在线阅读,更多相关《基于BP神经网络的手写数字识别探讨1.doc(5页珍藏版)》请在金锄头文库上搜索。

1、基于BP神经网络的数字识别探讨基于BP神经网络的数字识别探讨摘要 数字识别是当今模式识别领域中重要研究方向之一,而对手写数字体的识别更是具有广阔的应用前景。文章基于BP神经网络对如何进行数字识别进行了相关探讨。通过MATLAB仿真实验表明,基于BP神经网络的手写数字体识别可以取得较好效果。abstract Number Identification is an important research field of pattern recognition , and the handwriting recognition has broad application prospects. The

2、 article is based on BP neural network to identify how to carry out the relevant figures discussed. By Matlab simulation shows that based on BP neural network handwriting recognition can achieve a good results.关键词 数字识别;模式识别;BP神经网络key wordsNumber recognition ;Pattern recognition; BP neural network数字识

3、别广泛应用于汽车牌照的数字自动识别和成绩单的识别以及表格中的数字识别等。项目涉及到交通、银行、教育和邮政等领域。实现数字的自动识别给人们提供了很大的方便。数字识别的算法较多,当前运用较好的主流算法以统计、神经网络和聚类分析的识别算法为主,如误差反向传播算法、支持向量机算法、自组织映射以及径向基函数等等。人工神经网络的基本特征为非线性映射、学习分类和实时优化,因此它为模式识别、非线性分类等研究开辟了新的途径。BP神经网络是一种典型的人工神经网络,有着广泛的应用。本文利用BP神经网络进行手写数字识别系统的研究。1 BP神经网络概述BP神经网络又称误差反向传递神经网络。它是一种依靠反馈值来不断调整节

4、点之间的连接权值而构建的一种网络模型。它的整个体系结构如图1所示,分为输入层、隐藏层和输出层,其中隐藏层根据具体情况的需要,可以是一层结构也可为多层结构。BP算法的基本思想是:学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输人层传人,经各隐藏层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐藏层向输入层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始的进行的。权值不断

5、调整的过程,也就是网络的学习训练过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止。图1 BP神经网络体系结构2 BP神经网络的数字识别BP神经网络数字识别过程由图像预处理和数字识别组成。图像预处理对图像进行一系列的变换后把最后提取到的样本的特征向量送到数字识别系统中,然后进行识别并给出结果。BP神经网络的数字识别过程如图2所示。特征提取BP神经网络训练预处理训练样本读入期望输出 图2 BP神经网络识别过程2.1 图像的预处理图像预处理是图像问的变换处理,是图像分析的前期准备,目的是使图像中描述客体特征的图像更加简练、独特性更强、信息少而唯一。本文对手写数

6、字图像样本进行了灰度化处理、二值化处理、去离散噪声、归一化调整等预处理。其中二值化处理利用graythresh函数得到图像的全局阈值,然后使用im2bw将灰度图像转换为二值图像。程序代码为:Threshold = graythresh(fig_gray);Fig_ bool = im2bw(fig_gray,threshold);其中fig_gray和fig_boo1分别为灰度图像的存储矩阵和二值化图像的存储矩阵。归一化处理将图片归一化为2036像素点阵图。2.2 特征提取在模式识别中,特征的选择是一个关键问题。将经过预处理后的数字图像中提取最能体现这个字符特点的特征向量,然后提取出训练样本中

7、的特征向量代入BP网络之中就可以对网络进行训练,提取出待识别的样本中的特征向量代入训练好的BP网络中,就可以对字符进行识别。本文采用逐像素特征提取方法提取数字样本的特征向量。归一化后的图像形成一个3620的布尔矩阵,依次取每列的元素转化为7201的列矩阵,即数字字符的特征向量。用matlab命令实现为:characteristic_vecotr=fig_bool_normalized(:);其中fig_bool_normalized为归一化后的图像的存储矩阵。2.3 BP神经网络结构231 输入层神经元个数的确定将数字图像的特征向量作为神经网络的输入,所以神经网络的输入层神经元个数等于特征向量

8、的维数,即2036=720个输入神经元。232 输出层神经元个数的确定因为要识别10个数字,因此输出选择为101的矩阵,即输出节点数为l0。当数字图像09输入神经网络后在输出神经元对应的位置上为1,其他的位置为0。输人数字0,第1个输出神经元为1,其他为0;输入数字1,第2个输出神经元为1,其他为0;以此类推。232 网络隐含层数的确定隐含层数越多,神经网络学习速度就越慢,根据Kosmogorov定理,在合理的结构和恰当的权值条件下,3层BP网络可以逼近任意的连续函数,因此,我们选取结构相对简单的3层BP网络。233 隐含层神经元个数的确定一般情况下,隐含层神经元个数是根据网络收敛性能的好坏来

9、确定的,在总结大量网络结构的基础上,得出经验公式:s=sqr(043nm+0.12m +2.54n+0.77m+0.35+0.51)其中n为输人层神经元个数,m为输出层神经元个数,根据以上公式,可以得出隐含层神经元个数为70。234 BP神经网络构造建立一个前向BP神经网络函数newff: net=newff(minmax(P),720,70,10,logsig,(logsig,logsig,traincgb);其中minmax(P)为神经网络的对它的720个输入元素的最大值和最小值的限制。P为训练样本集合。720,70,10为该神经网络的层结构。logsig,logsig,logsig为神经

10、网络的各层的转移函数,均设置为对数S型激活函数。训练函数采用 traincgb ,即采用Powel1-Beale共轭梯度法训练。2.4 BP神经网络的训练241 训练样本集合和目标值集合数字字符归一化后的图像为3620的布尔矩阵,用此3620=720个元素组成一个数字字符的列矩阵,即数字字符的特征向量。由09这10个数字的特征列向量组成一个72010的输入矢量,记为:sample_group=0,1,2, ,9 ;式中的0,1, ,9代表数字的特征列向量。与输入矢量对应的目标矢量是希望每一个数字输入神经网络后在输出神经元对应的位置上为1,其他的位置为0。为此取目标矢量为对角线上为1的1010的

11、单位阵,用matlab命令实现为:targets=eye(10);本文中09共l0类数据,每类取20个做训练样本,即20组输入矢量构成训练样本集合训练神经网络,训练样本集合如下:P=samples_groupl,samples_group2, ,group20;P=double(P);转化为双精度类型因为数字字符的特征向量由布尔元素组成,所以训练样本集合为布尔类型,而神经网络不能够对布尔值进行训练,所以需要将训练样本集合转化为双精度类型。 与训练样本集合相对应的目标值集合由20组目标矢量构成,目标值集合如下:T=targets,targets, ,targets,targets242 网络训练

12、本文神经网络训练采用的目标性能函数为SSE,误差性能目标值设置为001,当神经网络训练次数达到最大值1 000或者神经网络的误差平方和SSE降到001以下,终止训练。程序代码如下 :nettrainParamepochs=1000;最大训练次数nettrainParamshow=20;显示的间隔次数nettrainParammin_grad=le-10;最小执行梯度netpeformFcn:sse;设置目标性能函数nettrainParamgoal=001;性能目标值net1ayers1initFcn=initwb; 网络层的初始化函数选为initwb,使下面的输入层初始化语句randnr有效

13、netinputWeights1,1initFcn=randnr;输入层权值向量初始化net1ayerWeights2,1initFcn=randnr;第1网络层到第2网络层的权值向量初始化net=init(net); 初始化网络net,tr=train(net,P,T); 网络训练其中net,tr中的net为更新了权值的神经网络,tr为训练记录(次数和每次训练的误差)。从相关的神经网络训练中可以看出,当神经网络的误差平方和SSE为0008 8时,小于性能目标值001,神经网络训练结束,开始进行系统的性能测试。图3为学习误差曲线图。图3 神经网络学习误差曲线25 BP神经网络的测试测试函数为神

14、经网络仿真函数sire:testout=sim(net,test_sample)其中net为训练完成了的网络,test_sample为测试样本的特征向量,testout为神经网络的输出。部分程序代码如下:Test_sample:double(test_sample);布尔类型转化为双精度类型testout=sim(net,test_sample);神经网络的仿真max_value=max(testout);输出神经元最大值if(max_value07) 输出神经元的最大值大于07才进行数字识别,小于07时拒绝识别testout=compet(testout);number=find(testo

15、ut= =1)-1;数字识别结果end3 手写数字的识别结果本文中09共10类数据中每类取20个做测试样本,共200个测试样本对系统进行性能测试。测试结果如表1所示。由表1中的数据可知,数字识别的正确率为9948 ,正确率较高,拒识率为4,也比较高。总体数字识别有效率为955 。数字识别的正确率和拒识率与是否进行数字识别的判断值有关,本文的判断值设置为07。判断值选择的高,数字识别的正确率就高,但数字的拒识率也相应的就高。反之亦然。判断值的选择需要根据实际情况来定。表1 识别结果数字样本个数辨识个数错误识别正确率拒绝辨识拒识率有效率020190100%15%95%120190100%15%95%220200100%000320170100%315%85%420190100%15%

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号