基于BP网络的字母识别
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网络对有噪声的字母进行识别和仿真,结果表明此网络具有联想记忆和抗干扰功能,对字母具有一定的辨识能力,是一种对字母识别的有效方法。
- 智能交通之汽车车牌定位识别设计与实现,软硬件协同(12-05)
- 技术知识小贴士:二极管的识别技巧和检测方法(01-21)
- 利用DSP高速处理能力对指纹识别的系统方案(01-17)
- 一种战场电磁信号识别技术(12-25)
- 基于PMBus和VID技术的电源电路设计(12-20)
- 高速公路计重收费系统中轮轴识别器改进设计与实现(07-05)