基于BP网络的字母识别
3.3 网络训练
为了使产生的网络对输入向量有一定的容错能力,最好的办法是使用理想的信号和带有噪声的信号对网络进行训练。使用不同信号的训练都是通过BP网络来实现的。网络学习的速率和冲量参数设置为自适应改变,并使用函数trainlm进行快速训练。
3.3.1 理想样本训练
首先用理想的输入信号对网络进行训练,直到平方和误差足够小。下面进行理想样本训练,训练结束条件为:最大次数为1 000,误差平方和为0.000 01。训练代码如下:
net.performFcn='sse';
net.trainParam.goal=0.00001;
net.trainParam.show=5;
net.trainParam.epochs=1000;
net.trainParam.mc=0.95;
[net,tr]=train(net,p,t);
训练过程误差变化情况可通过MATLAB进行观察,训练结果为:
TRAINLM, Epoch 77/1000, SSE 6.58108e-006/1e-005, Gradient 8.03024e-005/1e-010
TRAINLM, Performance goal met.
可见,经过77次训练后,网络误差达到要求,结果如图3所示。本文引用地址:https://www.eepw.com.cn/article/180043.htm
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所示。
评论