基于BP網(wǎng)絡(luò )的字母識別
3.3 網(wǎng)絡(luò )訓練
為了使產(chǎn)生的網(wǎng)絡(luò )對輸入向量有一定的容錯能力,最好的辦法是使用理想的信號和帶有噪聲的信號對網(wǎng)絡(luò )進(jìn)行訓練。使用不同信號的訓練都是通過(guò)BP網(wǎng)絡(luò )來(lái)實(shí)現的。網(wǎng)絡(luò )學(xué)習的速率和沖量參數設置為自適應改變,并使用函數trainlm進(jìn)行快速訓練。
3.3.1 理想樣本訓練
首先用理想的輸入信號對網(wǎng)絡(luò )進(jìn)行訓練,直到平方和誤差足夠小。下面進(jìn)行理想樣本訓練,訓練結束條件為:最大次數為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);
訓練過(guò)程誤差變化情況可通過(guò)MATLAB進(jìn)行觀(guān)察,訓練結果為:
TRAINLM, Epoch 77/1000, SSE 6.58108e-006/1e-005, Gradient 8.03024e-005/1e-010
TRAINLM, Performance goal met.
可見(jiàn),經(jīng)過(guò)77次訓練后,網(wǎng)絡(luò )誤差達到要求,結果如圖3所示。本文引用地址:http://dyxdggzs.com/article/180043.htm
3.3.2 加噪樣本訓練
為了保證設計的網(wǎng)絡(luò )對噪聲不敏感,有必要用10組帶有噪聲的信號對網(wǎng)絡(luò )進(jìn)行訓練,設置向字母表加入的噪聲信號平均值分別為0.1和0.2。這樣就可以保證神經(jīng)元網(wǎng)絡(luò )學(xué)會(huì )在辨別帶噪聲信號的字母表向量時(shí),也能對理想的字母向量有正確的識別。同時(shí)在輸入帶有誤差的向量時(shí),要輸入兩倍重復的無(wú)誤差信號,其目的是為了保證網(wǎng)絡(luò )在分辨理想輸入向量時(shí)的穩定性。
在輸入理想樣本上加入噪聲的信號后,網(wǎng)絡(luò )的訓練過(guò)程誤差變化情況也可通過(guò)MATLAB進(jìn)行觀(guān)察。選取其中的一組,觀(guān)察系統輸出結果如下:
TRAINLM, Epoch 30/1000, SSE 4.45738e-006/1e-005, Gradient 5.97808e-005/1e-010
TRAINLM, Performance goal met.
結果如圖4所示。
評論