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