BP神經網路

2021-07-14 13:39:06 字數 3016 閱讀 5827

x 為輸入向量,

y為隱藏層的神經元,

z 為輸出層,

d為目標真實值, 本文預設

z 不經過sigmod處理。x-y的權重為

w,y-z的權重為

v 。yj

=∑ix

iwij

(1)oyi

=f(y

j)(2)

其中激勵函式f(

x)=1

1+e−

x f′

(x)=

f(x)

∗(1−

f(x)

)(3) z

k=∑j

f(yj

)vjk

此時系統的損失值為 e=

12∑k

(zk−

dk)2

(4) 則 ∂

e∂zk

=zk−

dk=δ

zk(5) ∂e

∂yj=

∑k∂e

∂zk∂

zk∂f

(yj)

∂f(y

j)∂y

j=∑k

δzkv

jkf′

(yj)

=δyj

(6) ∂e

∂vjk

=∂e∂

zk∂z

k∂vj

k=δz

k∗f(

yj)(7) ∂

e∂wi

j=∂e

∂yj∂

yj∂w

ij=δ

yj∗x

i(8)

從第(6)式可以看出y層的第j個節點(神經元)的殘差等與z層與其所連線的所有節點(神經元)的殘差與權值的乘值的和再乘以對該節點(y層的第j個節點)的導數。

從(7)(8)y層第j個節點到z層第k個節點的權值導數等於y層第j個節點的激勵值乘以z層第k個節點的殘差。

因為這是簡單的三層網路,(8)式中的xi

相當於前一層的激勵值,只不過這裡沒有前一層。

神經網路的求解過程中,需要求解神經元的殘差,權重的導數,偏值的導數(例子沒有這個值)。用o

li=f

(zli

) 表示第l層第i個節點的激勵值,即第l層的輸出值。

損失值e=1

2∥y−

f(zl

)∥2

設網路有l層,則第l層第i個節點的殘差為: δl

i=∂∂

zli1

2∥y−

f(zl

)∥2

δli=

∂∂zl

i12∥

y−f(

zl)∥

2=∂∂

zli1

2∑j=

1n(y

j−ol

j)2=

−(yi

−oli

)∗f′

(zli

)(9)

另倒數第二層為l,神經元個數為m;最後一層為大寫l, 神經元個數為n。

則易得: zl

j=∑m

k=1f

(zlk

)wlk

j(10) δ

li=∂

e∂zl

i=∂∂

zli1

2∥y−

f(zl

)∥2=

∂∂zl

i12∑

j=1n

(yj−

olj)

2=−∑

j=1n

(yj−

olj)

∗∂∂z

liol

j=−∑

j=1n

(yj−

olj)

∗f′(

zlj)

∗∂zl

j∂zl

i=∑j

=1nδ

lj∂z

lj∂z

li=∑

j=1n

δlj∂

∂zli

∑k=1

mf(z

lk)w

lkj=

(∑j=

1nδl

jwlk

j)f′

(zli

)(11)

其中ol

j=f(

zli)

這是倒數第二層和最後一層的殘差,

如果把倒數第二層看做最後一層,根據公式11可以推導出任意層的殘差: δl

i=(∑

nj=1

δl+1

jwlk

j)f′

(zli

)(12)

根據公示(6)(12)可以得出乙個普遍性的結論.

第l層的第i個節點(神經元)的殘差等於第l+1層與l層相連線的所有節點的權值和殘差的加權和乘以對l層第i個節點的導數。

這個結論在之後的cnn推導有很重要的作用。

有了殘差就可以很容易推導出權重的導數 zl

+1j=

∑mk=

1f(z

lk)w

lkj(13) ∂

e∂wl

kj=∂

e∂zl

+1i∗

∂zl+

1i∂w

lkj=

δl+1

i∗f(

zlk)

(14)

同樣,從(7)(8)(14)可以得出乙個結論

第l層的第k個節點到第l+1層的第j個節點的權值導數等於第l層的第k個節點的激勵值與第l+1層第j個節點的殘差乘積

求導方法與權重導數一樣, ∂e

∂bli

=∂e∂

zl+1

i∗∂z

l+1i

∂bli

=δl+

1i(15)

bp演算法與公式推導

BP神經網路

基本bp神經網路演算法包括 訊號的前向傳播 誤差的反向傳播 也即計算實際輸出時按照輸入到輸出的方向進行,權值閾值調整則相反。bp是一種多層前饋神經網路,由輸入層 隱含層和輸出層組成。層與層之間有兩種訊號在流動 一種是從輸入流向輸出的工作訊號,是輸入和權值的函式 另一種是輸入流向輸出的訊號,即誤差。隱...

BP神經網路

bp是back propagation bp神經網路主要的演算法在於誤差反向傳播error backpropagation 有三層 輸入層 input 隱含層 hidden 輸出層 output 輸入層 n個神經元 隱含層 p個神經元 輸出層 q個神經元 輸入向量 x x1,x2,x n 隱含層輸入...

BP神經網路

神經網路 nn多層前向神經網路 輸入層 特徵向量值 神經元數量由特徵值確定,特徵值有多少就有多少 隱藏層 可以有很多層 層數和每層神經元數量不定 輸出層 標記分類 神經元數量由目標集確定 每個神經元存的數字由上乙個神經元傳的值,自己的值和偏置值決定 權重 w 偏置 b 除了輸入層,每一層神經元都有偏...