您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 111基于BP神经网络的手写数字识别探讨1
神经网络在手写数字识别中的应用第-1-页共11页计算智能课程设计神经网络在手写数字识别中的应用班级:信息与计算科学姓名:学号:完成日期:2011年11月1日神经网络在手写数字识别中的应用第-2-页共11页目录神经网络在手写数字识别中的应用................................................................-3-[摘要].................................................................................................................-3-一、BP神经网络概述......................................................................................-3-二、BP神经网络的数字识别..........................................................................-4-2.1图像的预处理....................................................................................-5-2.2特征提取............................................................................................-5-2.3BP神经网络结构................................................................................-6-2.3.1输入层神经元个数的确定...............................................-6-2.3.2网络隐含层数的确定.......................................................-6-2.3.3隐含层神经元个数的确定...............................................-6-2.3.4BP神经网络构造...............................................................-7-2.4BP神经网络的训练............................................................................-7-2.4.1训练样本集合和目标值集合...........................................-7-2.4.2网络训练...........................................................................-8-2.5BP神经网络的测试.........................................................................-9-三、手写数字的识别结果............................................................................-10-四、结束语....................................................................................................-11-神经网络在手写数字识别中的应用第-3-页共11页神经网络在手写数字识别中的应用[摘要]数字识别是当今模式识别领域中重要研究方向之一,而对手写数字体的识别更是具有广阔的应用前景。文章基于BP神经网络对如何进行数字识别进行了相关探讨。通过MATLAB仿真实验表明,基于BP神经网络的手写数字体识别可以取得较好效果。数字识别广泛应用于汽车牌照的数字自动识别和成绩单的识别以及表格中的数字识别等。项目涉及到交通、银行、教育和邮政等领域。实现数字的自动识别给人们提供了很大的方便。数字识别的算法较多,当前运用较好的主流算法以统计、神经网络和聚类分析的识别算法为主,如误差反向传播算法、支持向量机算法、自组织映射以及径向基函数等等。人工神经网络的基本特征为非线性映射、学习分类和实时优化,因此它为模式识别、非线性分类等研究开辟了新的途径。BP神经网络是一种典型的人工神经网络,有着广泛的应用。本文利用BP神经网络进行手写数字识别系统的研究。[关键词]数字识别;模式识别;BP神经网络一、BP神经网络概述BP神经网络又称误差反向传递神经网络。它是一种依靠反馈值来不断调神经网络在手写数字识别中的应用第-4-页共11页整节点之间的连接权值而构建的一种网络模型。它的整个体系结构如图1所示,分为输入层、隐藏层和输出层,其中隐藏层根据具体情况的需要,可以是一层结构也可为多层结构。BP算法的基本思想是:学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输人层传人,经各隐藏层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐藏层向输入层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始的进行的。权值不断调整的过程,也就是网络的学习训练过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止。图1BP神经网络体系结构二、BP神经网络的数字识别BP神经网络数字识别过程由图像预处理和数字识别组成。图像预处理对图像进行一系列的变换后把最后提取到的样本的特征向量送到数字识别系统中,然后进行识别并给出结果。BP神经网络的数字识别过程如图2所示。训练样本读入预处理BP神经网络特征提取神经网络在手写数字识别中的应用第-5-页共11页图2BP神经网络识别过程2.1图像的预处理图像预处理是图像问的变换处理,是图像分析的前期准备,目的是使图像中描述客体特征的图像更加简练、独特性更强、信息少而唯一。本文对手写数字图像样本进行了灰度化处理、二值化处理、去离散噪声、归一化调整等预处理。其中二值化处理利用graythresh函数得到图像的全局阈值,然后使用im2bw将灰度图像转换为二值图像。程序代码为:Threshold=graythresh(fig_gray);Fig_bool=im2bw(fig_gray,threshold);其中fig_gray和fig_boo1分别为灰度图像的存储矩阵和二值化图像的存储矩阵。归一化处理将图片归一化为20×36像素点阵图。2.2特征提取在模式识别中,特征的选择是一个关键问题。将经过预处理后的数字图像中提取最能体现这个字符特点的特征向量,然后提取出训练样本中的特征向量代入BP网络之中就可以对网络进行训练,提取出待识别的样本中的特征向量代入训练好的BP网络中,就可以对字符进行识别。本文采用逐像素特征提取方法提取数字样本的特征向量。归一化后的图像形成一个36×20的期望输出神经网络在手写数字识别中的应用第-6-页共11页布尔矩阵,依次取每列的元素转化为720×1的列矩阵,即数字字符的特征向量。用matlab命令实现为:characteristic_vecotr=fig_bool_normalized(:);其中fig_bool_normalized为归一化后的图像的存储矩阵。2.3BP神经网络结构2.3.1输入层神经元个数的确定将数字图像的特征向量作为神经网络的输入,所以神经网络的输入层神经元个数等于特征向量的维数,即20×36=720个输入神经元。2.3.2输出层神经元个数的确定因为要识别10个数字,因此输出选择为10×1的矩阵,即输出节点数为l0。当数字图像0—9输入神经网络后在输出神经元对应的位置上为1,其他的位置为0。输人数字0,第1个输出神经元为1,其他为0;输入数字1,第2个输出神经元为1,其他为0;以此类推。2.3.2网络隐含层数的确定隐含层数越多,神经网络学习速度就越慢,根据Kosmogorov定理,在合理的结构和恰当的权值条件下,3层BP网络可以逼近任意的连续函数,因此,我们选取结构相对简单的3层BP网络。2.3.3隐含层神经元个数的确定一般情况下,隐含层神经元个数是根据网络收敛性能的好坏来确定的,在总结大量网络结构的基础上,得出经验公式:s=sqr(0.43nm+0.12m+2.54n+0.77m+0.35+0.51)其中n为输人层神经元个数,m为输出层神经元个数,根据以上公式,可以得出隐含层神经元个数为神经网络在手写数字识别中的应用第-7-页共11页70。2.3.4BP神经网络构造建立一个前向BP神经网络函数newff:net=newff(minmax(P),[720,70,10],{‘logsig’,(‘logsig’,‘logsig’},‘traincgb’);其中minmax(P)为神经网络的对它的720个输入元素的最大值和最小值的限制。P为训练样本集合。[720,70,10]为该神经网络的层结构。{‘logsig’,‘logsig’,‘logsig’}为神经网络的各层的转移函数,均设置为对数S型激活函数。训练函数采用traincgb,即采用Powel1-Beale共轭梯度法训练。2.4BP神经网络的训练2.4.1训练样本集合和目标值集合数字字符归一化后的图像为36×20的布尔矩阵,用此36×20=720个元素组成一个数字字符的列矩阵,即数字字符的特征向量。由0~9这10个数字的特征列向量组成一个720×10的输入矢量,记为:sample_group=[0,1,2,⋯,9];式中的0,1,⋯,9代表数字的特征列向量。与输入矢量对应的目标矢量是希望每一个数字输入神经网络后在输出神经元对应的位置上为1,其他的位置为0。为此取目标矢量为对角线上为1的10×10的单位阵,用matlab命令实现为:targets=eye(10);本文中0—9共l0类数据,每类取20个做训练样本,即20组输入矢量构成训练样本集合训练神经网络,训练样本集合如下:P=[samples_groupl,samples_group2,⋯,group20];P=double(P);%转化为双精度类型因为数字字符的特征向量由布尔元素组成,所以训练样本集合为布尔类型,而神经网络不能够对布尔值进行训练,所以需要将训练样本集合转化为双精度类型。与训练样本集合相对应的目标值集合由20组目标矢量构成,目标值集神经网络在手写数字识别中的应用第-8-页共11页合如下:T=[targets,targets,⋯,targets,targets]2.4.2网络训练本文神经网络训练采用的目标性能函数为SSE,误差性能目标值设置为0.01,当神经网络训练次数达到最大值1000或者神经网络的误差平方和SSE降到0.01以下,终止训练。程序代码如下:net.trainParam.epochs=1000;%最大训练次数net.trainParam.show=20;%显示的间隔次数net.trainParam.min_grad=le-10;%最小执行梯度net.peformFcn:‘sse’;%设置目标性能函数net.trainParam.goal=0.01;%性能目标值net.1ayers{1}.initFcn=‘initwb’;%网络层的初始化函数选为‘initwb’,使下面的输入层初始化语句randnr’有效net.inputWeights{1,1}.initFcn=‘randnr’;%输入层权值向量
本文标题:111基于BP神经网络的手写数字识别探讨1
链接地址:https://www.777doc.com/doc-3095656 .html