學習了這篇部落格目錄參考連線
列舉**中的公式,並與上圖所示流程一一對應:
代價函式: en為簡化分析,只考慮第=12∑
n=1n
∑k=1
c(tn
k−yn
k)2
n
個樣本對應的代價函式:
en公式中符號的意義:=12∑
k=1c
(tnk
−ynk
)2
n:第代表訓練樣本的個數 c:
代表訓練樣本所對應的類標籤的個數 e:
代表代價函式 tn
k:代表第n個樣本對應的類標籤的第k維 yn
k:代表第n個樣本對應的類標籤的第k維的**值
l
層的輸出計算公式:
xl計算到最後一層=f(u
l),其
中,ul
=wlx
+bl
l
層時,也就計算出了神經網路的輸出y
,至此,前向傳播完成。
首先計算代價函式關於偏移量的導數:
∂e這裡的∂b=∂
e∂u∂
u∂b=
δ
b
表示偏移量,u
是:
u=文中提到了乙個靈敏度的問題,引用zouxy09的解釋:wx+b
靈敏度的意思就是我們的基b變化多少,誤差會變化多少,也就是誤差對基的變化率,也就是導數了根據
u
的表示式,可以計算出∂e
∂b=1
,所以有∂e
∂b=∂
e∂u=
δ ,也就是說bias基的靈敏度∂e
∂b=δ
和誤差e 對乙個節點全部輸入
u的導數∂e
∂u是相等的。神奇吧,所以說求解誤差函式
e 對於
u的偏導數,只需要計算出
δ 即可。這也就是所謂的
δ 更新法則。
由於是反向傳播演算法,所以我們先計算輸出神經元對應的δl
δl再往回計算時(反向),每一層神經元對應的δl=f′(
ul)⊙
(yn−
tn)
為:
δl最後由計算出的δl=(wl
+1)t
δl+1
⊙f′(
ul)
來計算誤差函式對於該層權值矩陣的每乙個權值的導數。
∂e給乙個更新率∂wl=
xl−1
(δl)
t
η ,計算出權值矩陣的更新值:
δw使用該值對權值矩陣進行更新。l=−η
∂e∂w
l
(w至此,一輪的反向傳播結束。在計算的過程中會發現,圖示中的計算步驟與文字說明的計算過程稍有不同。在計算l)′=
w+δw
l
δ 時,中的描述未涉及到f′
(ul)
,實際上,它在最後的計算中是加了進去的,兩者的計算結果是一樣的。
卷積神經網路反向傳播推導
以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...
神經網路及反向傳播演算法
神經元是構成神經網路的基本單元,模擬生物神經元的結構和特性,接受輸入訊號並且產生輸出。輸入訊號要進行加權和啟用函式,然後才輸出神經元的活性值。啟用函式用來增強網路的表示能力和學習能力,需要連續可求導 允許少數點不可導 的非線性函式。可導的啟用函式可以直接利用數值優化的方法來學習網路引數 反向傳播演算...
神經網路反向傳播理解
訓練神經網路的目標是 優化代價函式,使得代價函式找到乙個 全域性最小值或者區域性最小值。不管使用何種梯度下降演算法 bgd,sgd adam 都需要先算出各個引數的梯度。反向傳播的作用 就是快速算出所有引數的偏導數。求導數通常可以分為兩類,一類是直接用定義,第二類是公式法 包括鏈式法 定義法 定義法...