該部落格可以看做是對於該文章的摘要。
上述顯示了神經網路的資料流動。
其中的每乙個圓圈表示乙個神經元。
一般對於神經元的描述如下:
乙個神經元有幾個輸入和乙個輸出,多個輸入和其權重相乘後在相加,其和通過和乙個權重比較來決定輸出的值。用公式來表示就是: a=
σ(wx
+b),
x=(x
1,..
.,xn
)t,w
=(w1
,...
,wn)
,b∈r
即x為輸入,w為權重,b是乙個實數,代表偏置,σ(
x)是從輸入到輸出的對映,a為對應的輸出。
如果你閱讀過前面機器學習的內容
機器學習(二):邏輯回歸或者
機器學習(四):損失函式,就知道了可以使用躍階函式和sigmoid函式作為判斷輸出值的標準,並會明白一般我們喜歡使用sigmoid函式。
同樣的,一般來說,神經網路也採用sigmoid函式作為從輸入到輸出的決定標準。
義同損失函式,我們需要乙個標準來優化神經網路。
神經網路的代價函式如下: c(
w,b)
=12n
∑x||
y−a|
|2y是對應於x的label,a是對應於x的神經網路輸出值。
a是用過一系列的矩陣相乘,和sigmoid函式計算出來的。
目標是使得c(w,b)最小,其中w,b是引數變數,參考前一篇部落格
機器學習(三):梯度下降法,我們將使用梯度下降方法。
若能得到∂c
∂w和∂
c∂b ,就能得到梯度下降的跟新規則: w′
k=wk
−η∂c
∂wkb
′l=b
l−η∂
c∂bl
那麼接下來的重點就是對於中間的結果,如何求解梯度了。
在介紹這一節前,將詳細規定一下各引數。
乙個神經網路中的所有引數如下:
−1層的第i個神經元到第
l 層的第j個神經元的權重是wl
ji。 則第
l 層的的第j個神經元的輸出為 al
j=σ(
∑i=1
kwlj
ial−
1i+b
lj)為了簡潔,可以使用矩陣的表示形式: al
=σ(w
lal−
1+bl
) . 同時引入乙個中間變數: zl
≡wla
l−1+
bl z
l 被稱為帶權輸入。
下面將開始反向傳播中梯度的推導。
再推倒前,先引入乙個中間結果,因為最後的形式會用到這個中間結果,即: δl
j=∂c
∂zlj
該定義可以理解為第
l 層的第j個神經元上的誤差。δl
j=∂c
∂zlj
=∂c∂
alj∂
alj∂
zlj=
∂c∂a
ljσ′
(zlj
)注意到這裡的
l ,他是最後一層神經元,即結果層。根據公式1,可以求得最後一層的誤差,那麼知道知道了各層誤差間的關係,就能求得所有層的誤差項了。 δl
j=∂c
∂zlj
=∑k∂
c∂zl
+1k∂
zl+1
k∂zl
j然後展開,因為知道z之間的前後關係(具體過程可能有點複雜,這裡先不貼出詳細的推到了),因此可以找出最後的化簡結果: δl
j=∑k
wl+1
kjδl
+1kσ
′(zl
j)因為zl
≡wla
l−1+
bl,因此可以很容易得到: ∂c
∂blj
=δlj
同理可得:∂c
∂wlj
k=al
−1kδ
lj到最後根據公式3和公式4,終於可以得到梯度的公式了。
因為梯度的推到是從後往前,因此稱為反向傳播。
神經網路學習引入 反向傳播
反向傳播技術是神經網路的核心技術之一。如果乙個運算我們能夠使用計算圖表式出來,那麼我們就能夠利用反向傳播的方法,即從後往前遞迴地呼叫鏈式法則來計算梯度。乙個簡單的函式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,...
神經網路的正向傳播和反向傳播
顧名思義全連線神經網路便是指相鄰網路層的各神經元是全連線的,如下圖 xi 代表輸入層第i個資料 wmn jw j wmnj 代表j層第m位置和j 1層第n位置間的權重,j是第幾層網路 zij z i j zij 代表神經元的輸入和,yij y i j yij 代表第j隱藏層第i個神經元的輸出 k j...
神經網路反向傳播理解
訓練神經網路的目標是 優化代價函式,使得代價函式找到乙個 全域性最小值或者區域性最小值。不管使用何種梯度下降演算法 bgd,sgd adam 都需要先算出各個引數的梯度。反向傳播的作用 就是快速算出所有引數的偏導數。求導數通常可以分為兩類,一類是直接用定義,第二類是公式法 包括鏈式法 定義法 定義法...