bp神經網路是一種基於有監督的學習,使用非線性可導函式作為傳遞函式的前饋神經網路。
一、模型
bp神經網路由輸入層、隱含層、輸出層組成。訓練過程分為網路輸入訊號正向傳播和誤差訊號反向傳播, 按有監督學習方式進行訓練。
1、相鄰層之間結點的連線有乙個權重wij,其值在[-1,1]之間;
2、每乙個神經單元都有一定量的能量,我們定義其能量值為該結點j的輸出值oj;
3、除輸入層外,每一層的各個結點都有乙個輸入值,其值為上一層所有結點按權重傳遞過來的能量之和加上偏置;
4、除輸入層外,每一層都有乙個偏置值,其值在[0,1]之間;
5、除輸入層外,每個結點的輸出值等該結點的輸入值作非線性變換;
訓練乙個bp神經網路,實際上就是調整網路的權重和偏置這兩個引數,bp神經網路的訓練過程分兩部分:
前向傳輸,逐層波浪式的傳遞輸出值;逆向反饋,反向逐層調整權重和偏置;二、前向傳輸(feed-forward前向反饋)
前向傳輸的輸出層的計算過程公式如下:
三、逆向反饋(backpropagation)
通過更新權重和偏置,向後傳播誤差,它分為兩種情況:
(1)對於輸出層的第j個節點,誤差的計算公式如下:
其中ej表示第j個結點的誤差值,oj表示第j個結點的輸出值,tj是給定的目標輸出值。
(2)對於隱含層的第j個節點,通過下一層的所有結點誤差按權重累加,計算公式如下:
其中wjk表示當前層的結點j到下一層的結點k的權重值,ek下一層的結點k的誤差率。
計算完誤差率後,就可以利用誤差率對權重和偏置進行更新,首先看權重的更新:
其中λ表示表示學習速率,取值為0到1,學習速率設定得大,訓練收斂更快,但容易陷入區域性最優解,學習速率設定得比較小的話,收斂速度較慢,但能一步步逼近全域性最優解。
更新完權重後,還有最後一項引數需要更新,即偏置:
四、訓練終止條件
停止條件有下面兩種:
1、設定最大迭代次數,比如使用資料集迭代100次後停止訓練
2、計算訓練集在網路上的**準確率,達到一定門限值後停止訓練
五、舉例
對於下面模型:
總結
從上面可以看出。整個過程分為三步:
(1)初始化權重和偏置
(2)向前傳播輸入
(3)向後傳播誤差
缺點:收斂速度慢,不具備全域性搜尋能力和容易陷入區域性極小值。
BP神經網路演算法
bp back propagation 神經網路是在1986年被rumelhart與mccelland等科學家提出的概念,正如名字所說,它是一種back propagation型的網路,它將訓練誤差進行逆向傳播,通過前饋的方式不斷修正網路中各神經元的權值,而進行自身學習的。bp神經網路拓撲結構包含有...
神經網路BP演算法
def seed d,q,l d代輸入層神經元個數,q代表隱層神經元的個數,l代表輸出層元素的個數,該函式用來初始化權重和閾值 v np.array random.random for i in range q for j in range d 初始化輸入層到隱層權重 print v w np.ar...
BP神經網路演算法實現
bp神經網路演算法實現 include include include include define nh 3 輸入層 define ni 4 隱層 define nj 1 輸出層 define nk 100 樣本容量 define test 70 測試集容量 define nr 0.7 學習效率 ...