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為**結果。
程式執行時顯示的網路結構和執行過程如下圖。
如果以後需要用到已訓練好的網路可以把訓練好的網路儲存起來,下次可以直接進行**,具體方法見下圖。
但是在用神經網路進行**時需要注意輸入資料的數量和樣本的數量,樣本數量較少時要考慮網路的可用性和準確性。
Matlab實現BP神經網路
該實現為 資料探勘 課程的一次作業。資料在 上,所以資料為csv格式。但bp神經網路演算法為最一般的實現,所以有參考價值。close all 關閉開啟的檔案 clear 清除記憶體中的資料 echo on 顯示執行的每一條命令 clc 清除命令列視窗 pause 敲任意鍵開始 定義訓練樣本 p為輸入...
BP神經網路(基於MATLAB)
clc clear all 匯入資料 load s data.mat s含量所用資料 n 12 n 是自變數的個數 m 1 m 是因變數的個數 讀取訓練資料 train num 1600 訓練樣本數 train data s data 1 train num,特徵值歸一化 train input,m...
BP神經網路演算法
bp神經網路是一種基於有監督的學習,使用非線性可導函式作為傳遞函式的前饋神經網路。一 模型 bp神經網路由輸入層 隱含層 輸出層組成。訓練過程分為網路輸入訊號正向傳播和誤差訊號反向傳播,按有監督學習方式進行訓練。1 相鄰層之間結點的連線有乙個權重wij,其值在 1,1 之間 2 每乙個神經單元都有一...