BP神經網路演算法

2021-07-09 13:26:52 字數 2110 閱讀 2389

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 學習效率 ...