深度學習(一) 神經網路和反向傳播

2021-08-09 08:11:32 字數 2273 閱讀 7632

該部落格可以看做是對於該文章的摘要。

上述顯示了神經網路的資料流動。

其中的每乙個圓圈表示乙個神經元。

一般對於神經元的描述如下:

乙個神經元有幾個輸入和乙個輸出,多個輸入和其權重相乘後在相加,其和通過和乙個權重比較來決定輸出的值。

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