MATLAB 中BP神經網絡算法的實現
BP神經網絡算法提供了一種普遍並且實用的方法從樣例中學習值為實數、離散值或者向量的函數,這里就簡單介紹一下如何用MATLAB編程實現該算法。
具體步驟
-
這里以一個普遍實用的簡單案例為例子進行編程的說明。
假設一組x1,x2,x3的值對應一個y值,有2000組這樣的數字,我們選擇其中1900組x1,x2,x3和y作為樣本,其余100組x1,x2,x3作為測試數據來驗證。
-
首先需要讀取這些數據,並把數據賦值給input 和 output 。
我是把數據存儲在excel表中,所以用xlsread函數來讀取數據。讀取出來的數據是2000*4的矩陣。
-
將樣本數據進行歸一化處理。
-
初始化網絡結果,設置參數,並用數據對網絡進行訓練。
newff函數是給出了最簡單的設置,即輸入樣本數據,輸出樣本數據和隱含層節點數;epochs是設置迭代次數;lr是設置學習率;goal是設置目標值。
-
設置好參數,需要將預測數據進行歸一化處理,然后將預測結果輸出,並將輸出的結果進行反歸一化處理,神經網絡就完成了。BPoutput為預測結果。
-
程序運行時顯示的網絡結構和運行過程如下圖。
-
如果以后需要用到已訓練好的網絡可以把訓練好的網絡儲存起來,下次可以直接進行預測,具體方法見下圖。
但是在用神經網絡進行預測時需要注意輸入數據的數量和樣本的數量,樣本數量較少時要考慮網絡的可用性和准確性。







