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