機器學習 反向傳播神經網路推導

2021-07-17 03:44:01 字數 2595 閱讀 3119

簡單的反向傳播神經網路可以說就是將基本單元如感知器,組成層級結構,劃分出輸入層、隱含層、輸出層;不同層之間通過連線來形成耦合,從而組成乙個有功用的網狀演算法結構。

感知器可以通過迭代計算來逼近想獲取的結果,迭代過程中感知器不斷和計算結果反饋,較為常用的迭代計算方法有梯度下降法。當感知器組成網路之後,每個感知器如果獲得結果反饋就比較麻煩,這裡就要用到反向傳播方法。

假設我們有乙個計算過程y=

a∗b+

c ,其中a,

b,c 都是輸入變數,y是輸出。按照梯度下降法,針對

a 的迭代計算過程為ak

+1=a

k+η∂

y∂a=

ak−η

b。其中

η 是學習率,是乙個經驗值。以上對於b和c同理。如果我們把乘法提公升到加法的上一層,每一層之間用connect連線來耦合: co

nnec

t1:q

=a∗b

conn

ect2

:y=q

+c那麼a,

b,c 的迭代計算過程都要相應變化: ck

+1=c

k−η∗

1gra

d(q)

=1,q

k+1=

qk−η

∗1ak

+1=a

k−ηg

rad(

q)∗b

注意到這裡將q=

a∗b 單獨提取出來,其實是可以用微積分的鏈式法則來推導的。另外,

η 一般是個很小的值,是不能傳遞的,因此每一層之間要傳遞與

η 無關的提低。實際應用中需要使用鏈式法則來計算神經網路的反饋。

一般而言神經網路每一層的輸出是一堆資料,這裡我只推導簡單的反向傳播神經網路。前向單次計算過程是:先計算連線,輸入為上次的輸出;然後用h函式啟用連線計算後的結果,作為下一次的輸入。第k層的感知器輸入之後需要經過濾波,定義為啟用函式oq

=h(q

1,q2

...)

,層之間的連線函式為[q

1,q2

...]

=∑wq

piq 。其中iq

=op 。我們要反饋修正的是權值w。這裡定義神經網路層名為j->p->q。

設總的代價函式為co

st(o

)=12

(t−o

)2,則根據鏈式法則,修正量計算為gr

ad(w

qp)=

∂cos

t(o)

∂wqp

=∂co

st(o

)∂oq

∂oq∂

qq∂q

q∂wq

p=∂c

ost(

o)∂o

qδhq

iq=−

(t−o

q)δh

q(qq

)iq

其中t表示目標輸出,是人工標記結果。oq

是神經網路輸出層的輸出。輸出層沒有前向連線,修正量為δw

qp=−

ηgra

d(wq

p)。 然後是隱含層,隱含層是中間層,受到前方多重連線的影響,且不知道中間目標輸出t應該是多少,因此需要從輸出層向前遞推,其中nq

是第q層的感知器數量: gr

ad(w

pj)=

∂cos

t(o)

∂op∂

op∂q

p∂qp

∂wpj

=∑q=

1nq∂

cost

(o)∂

qq∂q

q∂op

δhpi

p=∑q

=1nq

∂cos

t(o)

∂qqw

qpδh

pip=

∑q=1

nq∂c

ost(

o)∂o

q∂oq

∂qqw

qpδh

pip=

∑q=1

nqgr

ad(w

qp)i

qwqp

δhpi

p 注意這裡的代價函式是cost(o),只和輸出有關,而不是co

st(o

p)等中間代價函式,後者是無法傳遞計算的。設h

(x)=

11−e

x ,即si

gmoi

d 函式,有δh

(qq)

=h(q

q)(1

−h(q

q))=

oq(1

−oq)

,則輸出端修正量為δw

qp=η

(t−o

q)oq

(1−o

q)iq

隱藏層修正量為δw

pj=−

η∑q=

1nqg

rad(

wqp)

iqwq

pop(

1−op

)ip=

−η∑q

=1nq

grad

(wqp

)wqp

op(1

−op)

卷積神經網路反向傳播推導

以tensorflow的卷積神經網路為例 卷積 池 卷積 池 全連線 softmax c1層 卷積神經網路的輸入是28 28的矩陣 a 經過f1 個5 5的卷積核k1 i i 1,2,f1 的卷積生成f1 個24 24大小的feature maps c1 i co nv2 a,k1 i,v alid...

機器學習10 神經網路反向傳播演算法

一,神經網路的代價函式 首先引入一些便於稍後討論的新標記方法 假設神經網路的訓練樣本有 m 個,每個包含一組輸入 x 和一組輸出訊號 y,l 表示神經網路層數,sl 表示每層的 neuron 個數 sl 表示輸出層神經元個數 sl 代表最後一層中處理單元的個數。將神經網路的分類定義為兩種情況 二類分...

神經網路學習引入 反向傳播

反向傳播技術是神經網路的核心技術之一。如果乙個運算我們能夠使用計算圖表式出來,那麼我們就能夠利用反向傳播的方法,即從後往前遞迴地呼叫鏈式法則來計算梯度。乙個簡單的函式f x y,z x y zf x,y,z x y z f x,y,z x y z的計算圖如下所示。假設輸入為 x 2,y 5,z 4,...