微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > 基于BP网络的字母识别

基于BP网络的字母识别

时间:12-25 来源:互联网 点击:

3.3.2 加噪样本训练
  为了保证设计的网络对噪声不敏感,有必要用10组带有噪声的信号对网络进行训练,设置向字母表加入的噪声信号平均值分别为0.1和0.2。这样就可以保证神经元网络学会在辨别带噪声信号的字母表向量时,也能对理想的字母向量有正确的识别。同时在输入带有误差的向量时,要输入两倍重复的无误差信号,其目的是为了保证网络在分辨理想输入向量时的稳定性。
  在输入理想样本上加入噪声的信号后,网络的训练过程误差变化情况也可通过MATLAB进行观察。选取其中的一组,观察系统输出结果如下:
  TRAINLM, Epoch 30/1000, SSE 4.45738e-006/1e-005, Gradient 5.97808e-005/1e-010
  TRAINLM, Performance goal met.
  结果如图4所示。

3.3.3 再次用理想样本训练
  在网络进行了上述的训练以后,网络对无误差的信号可能也会采用对带有噪声信号的办法。这样做会付出较大的代价。因此,必须再次使用理想的样本进行训练。这样就可以保证在输入理想数字信号时,网络能够最好地对其做出反应。其训练代码如下:
  netn.trainParam.goal=0.00001;
  netn.trainParam.epochs=1000;
  netn.trainParam.show=5;
  [netn,tr]=train(netn,p,t);
  训练结果为:
  TRAINLM, Epoch 0/1000, SSE 4.60127e-007/1e-005, Gradient 4.23932e-006/1e-010
  TRAINLM, Performance goal met.
  满足要求。
3.4 对网络进行仿真和测试
  为了测试系统的可靠性,本文用了加入不同级别的噪声的字母样本作为输入,来观察用理想样本和加噪样本训练出来的网络的性能,并绘制出误识率曲线,如图5所示。

  图5其中虚线代表用无噪声训练网络的出错率,实线代表用有噪声训练网络的出错率。从图5可以看出,在均值为0~0.05之间的噪声环境下,两个网络都能够准确地进行识别。当所加的噪声均值超过0.05时,待识别字符在噪声作用下不再接近于理想字符,无噪声训练网络的出错率急剧上升,此时有噪声训练网络的性能较优。
3.5 测试实例
  本文用一个含噪声的字母F作为网络输入,并绘出含噪声的字母F,其输出语句为:
noisyF=alphabet(:,6)+randn(35,1)*0.2;plotchar(noisyF) ;
  其结果如图6所示。

  然后再用训练后的网络进行识别,其识别语句为:
  A2=sim(net,noisyF);
  A2=compet(A2);
  answer=find(compet(A2)==1)。识别结果如图7所示。

本文利用BP网络对有噪声的字母进行识别和仿真,结果表明此网络具有联想记忆和抗干扰功能,对字母具有一定的辨识能力,是一种对字母识别的有效方法。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top