以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 都需要先算出各個引數的梯度。反向傳播的作用 就是快速算出所有引數的偏導數。求導數通常可以分為兩類,一類是直接用定義,第二類是公式法 包括鏈式法 定義法 定義法...