欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    完整word版基于BP神经网络的英文字母识别.docx

    • 资源ID:13910144       资源大小:255.26KB        全文页数:17页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    完整word版基于BP神经网络的英文字母识别.docx

    1、完整word版基于BP神经网络的英文字母识别基于BP神经网络的英文字母识别摘要:本报告主要介绍了利用BP神经网络进行英文字母的识别,并在模式识别的过程中考虑了噪声干扰的存在,能够使得网络具有一定的容错能力,用MATLAB模拟实现英文字母的识别结果。关键词:BP神经网络,模式识别,噪声干扰,MATLAB一、模式识别与BP神经网络1。1模式识别与神经网络的特点1。1.1 模式识别的基本原理模式识别系统的结构如图1所示,下面对各部分进行简要说明。图1 模式识别系统的构成(1)信息获取:为了使计算机能够对各种现象进行分类识别,要用计算机可以运算的符号来表示所研究的对象。通常输入对象的信息有二维图像、一

    2、维波形、物理参量和逻辑值三种类型。通过测量采样和量化,可以用矩阵或向量表示二维图像或一维波形。这就是数据获取的过程.(2)预处理:去噪声,提取有用信息,并对输入测量仪器或其它因素所造成的退化现象进行复原(3)特征值提取与选择:由图像或波形所获得的数据量是相当大的。例如,一个文字图像可以有几千个数据,一个卫星遥感图像的数据量就更大。为了有效的实现分类识别,就要对原始数据进行变换,得到最能反映分类本质的特征1.1。1。2 神经网络的特点(1)它具有自组织和自学习能力,能够直接输入数据并进行学习.(2)神经网络具有推广能力。(3)网络是非线性的,即它可以找到系统输入变量之间复杂的相互作用。1.2 B

    3、P神经网络1.2。1 BP网络简介20世纪80年代中期,学者Rumelhart、McClelland和他们的同事提出了多层前馈网络MFNN(Mutltilayer Feedforward Neural Networks)的反向传播学习算法,简称BP网络(Back Propagation Network)学习算法2。BP 神经网络是一种神经网络学习算法。其由输入层、中间层、输出层组成的阶层型神经网络,中间层可扩展为多层.相邻层之间各神经元进行全连接,而每层各神经元之间无连接,网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元获得网络的输入响应产生连接权值(Weight)。然后按

    4、减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权,回到输入层。此过程反复交替进行,直至网络的全局误差趋向给定的极小值,即完成学习的过程.BP网络主要作用于以下几个方面:(1)函数逼近:用输入矢量和相应的输出矢量训练一个网络来逼近一个函数;(2)模式识别:用一个特定的输出矢量将它与输入矢量联系起来;(3)分类:把输入矢量以所定义的合适的方式进行分类;(4)数据压缩:减少输出矢量的维数以便于数据传输或存储。1。2.2 BP网络模型BP网络是一种单向传播的多层前向网络,每一层节点的输出只影响下一层节点的输出,其网络结构如图2所示,其中X和Y分别为网络输入、输出向量,每个节点表示一

    5、个神经元。网络是由输入层、隐层和输出层节点构成,隐层节点可为一层或多层,同层节点没有任何耦合,前层节点到后层节点通过权连接。输入信号从输入层节点依次传过各隐层节点到达输出层节点。图2 BP神经网络模型1.2.3 BP网络算法思想BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入。经各层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传、并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信

    6、号正向传播与误差反向传播的各层权值调整过程,是周而复始的进行的。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可接受的程度,或进行到预先设定的学习次数为止。二、字母识别问题的描述模式识别应用的领域非常广泛,其中字母识别是常研究的一个课题。而对英文字母的识别方法也很多,由于条件不同解决的方法也不同,这里讨论利用BP神经网络对26个英文字母的识别。在对字母进行识别之前,首先必须将字母进行预处理3,即将待识别的26个字母中的每一个字母都通过的方格形式进行数字化处理,其有数据的位置设为1,其他位置设为0。如图2给出了字母A、B和C的数字化过程,然后用一个135的向量

    7、表示。例如图3中字母A的数字化处理结果所得对应的向量为:LetterA=00100010100101010001111111000110001图3 数字化字母由此可得每个字母由35个元素组成一个向量.由26个标准字母组成的输入向量被定义为一个输入向量矩阵alphabet,即神经网络的样本输入为一个3526的矩阵.其中alphabet=letterA,letterB,lettereC,letterZ。网络样本输出需要一个对26个输入字母进行区分输出向量,对于任意一个输入字母,网络输出在字母对应的顺序位置上的值为1,其余为0,即网络输出矩阵为对角线上为1的2626的单位阵,定义为target=ey

    8、e(26)。三、网络设计 进行神经网络设计的首要任务就是网络结构的确定,一般情况下,网络结构的设计包括:输入输出神经元个数、隐含层个数、隐含层中神经元数目以及每层传递函数来确定。 (1)输入层神经元个数 输入层神经元个数根据待识别字符所提取的网格像素特征的维数大小确定。在本文中,要识别的字母是5*7布尔量的网格,因此输入向量的元素应该是35个。 不含噪声的输入向量的元素值应该是0或1,26个不同的0、1组合代表不含噪声的英语字母AZ,如不含噪的字母A,其输入向量值为0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0

    9、 0 1,可用矩阵形式来示例字母A的布尔量网格. (2)输出层神经元个数 如果神经网络用作分类器,其类别数为m个,那么输出一般也就取m个神经元。本设计是对26个英文字母进行识别,故输出层应该为26个神经元.(3)隐含层个数神经网络的许多特性正是由于隐含层的存在才具备,然而,具体取多少隐含层合适却没有确定的规律可循,不同的应用对象,与其相适应的网络结构差别很大。理论上已经证明:具有偏差和至少一个S型隐含层加上一个线性输出层的网络,能够逼近任何有理函数,也即含有一个隐含层的三层BP网络即可完成非线性函数的逼近.由于BP网络的功能实际上是通过网络输入到网络输出的计算来完成的,所以多于一个隐含层的BP

    10、网络虽然具有更快的训练速度,但在实际中需要较多的计算时间;另一方面,训练速度也可以通过增加隐含层神经元数来达到。因此,可采用具有一个隐含层的三层BP神经网络。 (4)隐含层中神经元数目在实际设计中,确定隐含层神经元个数的办法是:对于给定的输入输出模式,通过反复调试和对不同神经元数进行训练对比得到合适的值。下面为隐含层神经元个数选择的经验公式: 式中,h_num为隐藏层神经元个数,i_num为输入层神经元个数,o_num为输出层神经元个数.由此公式可得本系统的隐含层神经元个数h_num应为31个。 (5)每层传递函数不同的神经网络其传递函数则不一样,BP神经网络采用logsig函数作为传递函数,

    11、该函数不仅具有光滑、可微、非线性和饱和等特性,而且其导函数也很容易用本身来表达,简化了计算。其算法是: 四、实验设计与验证 4.1实验设计4.1.1 生成网络使用函数newff创建一个两层网络,具体程序为:alphabet,targets=prprob;R,Q = size(alphabet);S2,Q = size(targets);P=alphabet;S1 = 10;%隐层节点数net = newff(minmax(alphabet),S1 S2,logsig logsig,traingdx);net.LW2,1 = net.LW2,1*0.01;net.b2 = net.b2*0。01

    12、;T=targets;4。1.2 网络训练为了使产生的网络对输入向量有一定的容错能力,最好的办法是使用理想的信号(无噪声)和带有噪声的信号对网络进行训练。使用不同信号的训练都是通过BP网络来实现的。因此,可首先进行无噪声网络训练,再进行有噪声字母网络训练,最后再次进行无噪声网络训练4,具体程序如下:1无噪声字符网络的训练net。performFcn = sse; net。trainParam.goal = 0.1; net。trainParam.show = 20; net。trainParam.epochs = 5000; net。trainParam.mc = 0.95; P = alph

    13、abet;T = targets;net,tr = train(net,P,T);%具有噪声字符网络的训练netn=net; net。trainParam.goal = 0.6; net.trainParam.epochs = 300; T=targets targets targets targets; for pass=1:10P=alphabet+randn(R,Q)0。1,alphabet+randn(R,Q)0。2,alphabet+randn(R,Q)0.1,alphabet+randn(R,Q)*0。2;netn,tr = train(netn,P,T);end%3再次无噪声网络

    14、训练netn.trainParam。goal = 0。1; netn。trainParam.show = 5; net.trainParam.epochs = 500; P = alphabet;T = targets;netn,tr = train(netn,P,T);4。1。3 系统性能测试为了测试系统的可靠性,本文用了加入不同级别的噪声的字母样本作为输入,来观察用理想样本和加噪样本训练出来的网络的性能,并绘制出误识率曲线,如图4所示。图4 误差识别曲线图4中虚线代表用无噪声训练网络的出错率,实线代表有噪声训练网络的出错率。从图4可以看出,在均值为00。1之间的噪声环境下,两个网络都能够准

    15、确地进行识别。当所加的噪声均值超过0.1时,待识别字符在噪声作用下不再接近于理想字符,无噪声训练网络的出错率急剧上升,此时有噪声训练网络的性能较优.系统性能测试程序详见程序清单。4。2 实验验证对上面设计的系统进行实验仿真验证,如对字母A、B、W进行识别,识别结果如图5所示,左侧为含噪声字母右侧为成功识别的字母,程序详见程序清单。图5 字母A、B、W识别结果为更好地识别26个英文字母,测试时用加入比例为20的噪声的26个字母AZ作为输入,并绘制出含有噪声与成功识别的字母,程序详见如下:noise_percent=0.2;for k=1:26 noisyChar=alphabet(:,k)+ra

    16、ndn(35,1)*noise_percent; subplot(6,9,k+floor(k/9。5)*9); plotchar(noisyChar); de_noisyChar=sim(net,noisyChar); de_noisyChar=compet(de_noisyChar); answer=find(de_noisyChar=1); subplot(6,9,k+floor(k/9.5)*9+9); plotchar(alphabet(:,answer));endset(gcf,Position,10,60,900,700, color,w)程序运行结果如图6所示,奇数行是比例为20

    17、噪声下的字母,偶数行为成功识别的字母。图6 英文字母识别结果图五、结论利用BP网络对有噪声的字母进行识别和仿真,结果表明BP神经网络既能完成特征提取又能完成分类功能,经过足够多的原始样本训练后的BP神经网络,其容错性和识别性比较好。此网络具有联想记忆和抗干扰功能,对字母具有一定的辨识能力,是一种对字母识别的有效方法.参考文献:1 边肇祺,张学工等. 模式识别M. 北京: 清华大学出版, 2000.2 侯媛彬, 杜京义, 汪梅。 神经网络M.西安:西安电子科技大学出版社,2007.3 丛爽, 陆婷婷. 用于英文字母识别的三种人工神经网络的设计J。 仪器仪 表学报, 2006,27(6):2242

    18、-2244.4 谢丽娟,丁正生,陈俏.基于BP 网络的字母识别J.信息化纵横,2009,18:6874. 程序清单:%生成26个字母布尔值的样本数据,使用neewff()构建两层神经网络.网络取3510-26的结构。%(1)构造网络*alphabet,targets=prprob;R,Q = size(alphabet);S2,Q = size(targets);P=alphabet;S1 = 10;%隐层节点数net = newff(minmax(alphabet),S1 S2,logsig logsig,traingdx);net.LW2,1 = net。LW2,10。01;net.b2

    19、= net。b2*0。01;T=targets;%*%(2)神经网络的网络训练%*1无噪声字符网络的训练net。performFcn = sse; net.trainParam。goal = 0.1; net.trainParam.show = 20; net。trainParam.epochs = 5000; net。trainParam.mc = 0。95; P = alphabet;T = targets;net,tr = train(net,P,T);2具有噪声字符网络的训练netn=net; net.trainParam。goal = 0。6; net。trainParam。epoc

    20、hs = 300; T=targets targets targets targets; for pass=1:10P=alphabet+randn(R,Q)*0.1,alphabet+randn(R,Q)*0。2,alphabet+randn(R,Q)0。1,alphabet+randn(R,Q)0.2;netn,tr = train(netn,P,T);end%3再次无噪声网络训练netn。trainParam。goal = 0。1; netn.trainParam.show = 5; net。trainParam。epochs = 500; P = alphabet;T = target

    21、s;netn,tr = train(netn,P,T);%*(3)系统性能测试%*noise_range=0:.05:。5;max_test=100;network1=;network2=;T=targets;for noiselevel=noise_range fprint(Testing networks with noise level of 。2fn,noiselevel); errors1=0; errors2=0; for i=1:max_test; P=alphabet+randn(35,26)noiselevel; A=sim(net,P); AA=compet(A); err

    22、ors1=errors1+sum(sum(abs(AAT)))/2; An=sim(netn,P); AAn=compet(An); errors2=errors2+sum(sum(abs(AAnT)))/2; end network1=network1 errors1/26/100; network2=network2 errors2/26/100;endecho onclfplot(noise_range,network1100,-,noise_range,network2100);title(识别误差);xlabel(噪声指标);ylabel(无噪声训练网络-有噪声训练网络);*(4)系

    23、统仿真%*noisyJ = alphabet(:,1)+randn(35,1)*0。2;对字母A加噪声figureplotchar(noisyJ);绘图A2=sim(net,noisyJ);A2=compet(A2);answer=find(compet(A2)=1);figureplotchar(alphabet(:,answer);%输出识别结果noisyJ=alphabet(:,2)+randn(35,1)0。2;figureplotchar(noisyJ);A2=sim(net,noisyJ);A2=compet(A2);answer=find(compet(A2)=1);figure

    24、plotchar(alphabet(:,answer);noisyJ=alphabet(:,23)+randn(35,1)0.2;figureplotchar(noisyJ);A2=sim(net,noisyJ);A2=compet(A2);answer=find(compet(A2)=1);figureplotchar(alphabet(:,answer));%*noise_percent=0.2;for k=1:26 noisyChar=alphabet(:,k)+randn(35,1)*noise_percent; subplot(6,9,k+floor(k/9.5)*9); plotchar(noisyChar); de_noisyChar=sim(net,noisyChar); de_noisyChar=compet(de_noisyChar); answer=find(de_noisyChar=1); subplot(6,9,k+floor(k/9。5)9+9); plotchar(alphabet(:,answer));endset(gcf,Position,10,60,900,700, color,w)*


    注意事项

    本文(完整word版基于BP神经网络的英文字母识别.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开