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

2021-07-25 13:48:08 字數 3088 閱讀 2058

以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

′)+b

1i u

1i=c

1i a

1i=f

(u1i

) s2層:視窗為2x2,輸出為12x12的pool maps: s2

i=β2

idow

n(a1

i)+b

2i u

2i=s

2i a

2i=f

(u2i

) c3層:卷積神經網路的輸入是12x12的矩陣

a ,經過f1

個5×5的卷積核k3

ij(i

=1,2

,...

,f1)

的卷積生成f1

個8x8大小的feature maps: c1

i=co

nv2(

a,k1

i,′v

alid

′)+b

1i u

1i=c

1i a

1i=f

(u1i

) s4層:視窗為2x2,輸出為4x4的pool maps: s4

i=β4

idow

n(a3

i)+b

4i u

4i=s

4i a

4i=f

(u4i

) 全連線層:將a4

i 展開,作為全連線層的輸入

全連線層δ

(l+1

)i=∂

j∂z(

l+1)

i=∑k

=1sl

+2∂j

∂z(l

+2)k

⋅∂z(

l+2)

k∂a(

l+1)

i⋅∂a

(l+1

)i∂z

(l+1

)i=∑

k=1s

(l+2

δ(l+

2)lθ

(l+1

)k,i

⋅g′(

z(l+

1)i)

∂j∂θl=δ

l(al

−1)t

∂j∂bl=δ

l卷積層

假設前一層l−

1 為池化層,當前層

l 為卷積層,後一層l+

1為池化層δ(

l)i=

∂j∂u

(l)i

=[∂j

∂ul+

1i,(

jk)∂

ul+1

i,(j

k)∂a

li,(

jk)∂

ali,

(jk)

∂uli

,(jk

)]jk

=β(l

+1)i

(f′(

u(l)

i)∘u

p(δ(

l+1)

i))

up運算為: up

([13

24])

=⎡⎣⎢

⎢⎢11

3311

3322

4422

44⎤⎦

⎥⎥⎥)

∂j∂b(l)

i=∑s

,t(δ

i)st

∂j∂k(l)

ij=∑

st(δ

(l)i

)st(

p(l−

1)j)

st其中,(∗

)st 遍歷

∗ 的所有元素,(p

(l−1

)j)s

t是δ(

l)i 所連線的 l−

1 層中a(

l−1)

j 中相關的元素構成的矩陣。

池化層δ

(l)i

=∑j=

1nlf

′(u(

l)i∘

conv

2(δ(

l+1)

j,k(

l+1)

ji,′

full

′))

∂j∂b

(l)i

=∑s,

t(δ(

l)i)

st ∂

j∂β(

l)i=

∑s,t

(δ(l

)i∘d

(l−1

)i)s

t 其中,(∗)

st遍歷∗

的所有元素,d(

l−1)

i=do

wn(a

(l−1

)i)。

解釋一下為什麼δ(

l)i 公式中有conv2: ∂j

∂uli

,(jk

)=∑m

rela

ted∂

j∂ul

+1m∂

ul+1

m∂al

i,(j

k)∂a

li,(

jk)∂

uli,

(jk)

其中與al

i,(j

k)相關聯的feature maps中的δ(

l+1)

和卷積核引數k(

l+1)

可以由卷積操作完成。例子參考

最好手算一遍體會。

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

簡單的反向傳播神經網路可以說就是將基本單元如感知器,組成層級結構,劃分出輸入層 隱含層 輸出層 不同層之間通過連線來形成耦合,從而組成乙個有功用的網狀演算法結構。感知器可以通過迭代計算來逼近想獲取的結果,迭代過程中感知器不斷和計算結果反饋,較為常用的迭代計算方法有梯度下降法。當感知器組成網路之後,每...

卷積神經網路的反向傳播演算法 筆記

學習了這篇部落格 目錄參考連線 列舉 中的公式,並與上圖所示流程一一對應 代價函式 en 12 n 1n k 1 c tn k yn k 2 為簡化分析,只考慮第n個樣本對應的代價函式 en 12 k 1c tnk ynk 2公式中符號的意義 n 代表訓練樣本的個數 c 代表訓練樣本所對應的類標籤的...

神經網路反向傳播理解

訓練神經網路的目標是 優化代價函式,使得代價函式找到乙個 全域性最小值或者區域性最小值。不管使用何種梯度下降演算法 bgd,sgd adam 都需要先算出各個引數的梯度。反向傳播的作用 就是快速算出所有引數的偏導數。求導數通常可以分為兩類,一類是直接用定義,第二類是公式法 包括鏈式法 定義法 定義法...