基于BP網絡的字母識別
3.3 網絡訓練
為了使產生的網絡對輸入向量有一定的容錯能力,最好的辦法是使用理想的信號和帶有噪聲的信號對網絡進行訓練。使用不同信號的訓練都是通過BP網絡來實現(xiàn)的。網絡學習的速率和沖量參數設置為自適應改變,并使用函數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所示。本文引用地址:http://m.butianyuan.cn/article/180043.htm
3.3.2 加噪樣本訓練
為了保證設計的網絡對噪聲不敏感,有必要用10組帶有噪聲的信號對網絡進行訓練,設置向字母表加入的噪聲信號平均值分別為0.1和0.2。這樣就可以保證神經元網絡學會在辨別帶噪聲信號的字母表向量時,也能對理想的字母向量有正確的識別。同時在輸入帶有誤差的向量時,要輸入兩倍重復的無誤差信號,其目的是為了保證網絡在分辨理想輸入向量時的穩(wěn)定性。
在輸入理想樣本上加入噪聲的信號后,網絡的訓練過程誤差變化情況也可通過MATLAB進行觀察。選取其中的一組,觀察系統(tǒng)輸出結果如下:
TRAINLM, Epoch 30/1000, SSE 4.45738e-006/1e-005, Gradient 5.97808e-005/1e-010
TRAINLM, Performance goal met.
結果如圖4所示。
評論