參考部落格:
1、反向傳播演算法(backpropagation)
深層神經網路(deep neural network,dnn)由輸入層、多個隱藏層和輸出層組成,任務分為分類和回歸兩大類別。如果我們使用深層神經網路做了乙個**任務,**輸出為y
~\tilde
y~,真實的為y,這時候就需要定義乙個損失函式來評價**任務的效能,接著進行損失函式的迭代優化使其達到最小值,並得到此時的權重矩陣和偏置值。在神經網路中一般利用梯度下降法(gradient descent)迭代求解損失函式的最小值。在深層神經網路中使用梯度下降法迭代優化損失函式使其達到最小值的演算法就稱為反向傳播演算法(back propagation,bp)。
假設深層網路第l層的輸出為ala_
al:
katex parse error: no such environment: split at position 7: \begin̲ a^ &= \sig…
定義損失函式j(w
,b,x
,y)j(w,b,x,y)
j(w,b,
x,y)
為:katex parse error: no such environment: split at position 7: \begin̲ j(w,b,x,y) &= …
註解:ala_
al為**輸出,y
yy為實際值,二者具有相同的維度。∥⋅∥
2\parallel \cdot \parallel_
∥⋅∥2
代表二範數。
對損失函式運用梯度下降法迭代求最小值,分別求解對於權重矩陣wlw^
wl和偏置blb^
bl的梯度。
損失函式對權重矩陣的梯度:
katex parse error: no such environment: split at position 7: \begin̲ \frac̲ \frac} \cdot \frac}} ,令其
等於,令其等於
,令其等
於\delta^$。
可以求得$ \delta^$為
katex parse error: no such environment: split at position 7: \begin̲ \delta^ &…
知道l層的$ \delta^$就可以利用數學歸納法遞迴的求出l-1,l_2……各層的梯度。
katex parse error: no such environment: split at position 7: \begin̲ \delta^ &…
又知:zl=
wl⋅a
l−1+
blz^ = w^ \cdot a^ + b^
zl=wl⋅
al−1
+bl所以第$ l 層的梯
度層的梯度
層的梯度
w、b$可以表示為 :
katex parse error: no such environment: split at position 7: \begin̲ \frac̲ \delta^ &…
又知:katex parse error: no such environment: split at position 7: \begin̲ z^ &= w^̲ \frac̲ \delta^ &…
求得了$ \delta^$ 的遞推關係之後,就可以依次求得各層的梯度wl和
blw^和b^
wl和bl了。
2、 隨時間的反向傳播過程(back propagation through time)
迴圈神經網路的特點是利用上下文做出對當前時刻的**,rnn的迴圈也正是隨時間進行的,採用梯度下降法對迴圈神經網路的損失函式進行迭代優化求其最小值時也是隨時間進行的,所以這個也被稱為隨時間的反向傳播(back propagation through time,bptt),區別於深層神經網路中的反向傳播(bp)。
(1) u,v,w為線性共享引數,在迴圈神經網路的不同時刻不同位置,這三個權重矩陣的值是一樣的,這也正是rnn的迴圈所在。
(2) 假設損失函式為交叉熵,也就是等價於對數損失函式,隱藏層啟用函式為tanh函式,輸出層啟用函式為softmax函式。
因為我們假設的輸出層啟用函式為softmax函式,所以得到以下公式:
katex parse error: no such environment: split at position 7: \begin̲ \frac̲ \frac̲ \frac̲ \frac
h(t)
的梯度為:
δ (t
)=∂l
(u,v
,w,b
,c)∂
h(t)
\delta ^ = \frac}}}
δ(t)=∂
h(t)
∂l(u
,v,w
,b,c
)類似於前文所說的深層神經網路中的反向傳播演算法,可以由δ(t
+1)\delta ^
δ(t+1)
遞推出δ(t
)\delta ^
δ(t)
,公式如下:
katex parse error: no such environment: split at position 7: \begin̲ \delta ^ …
注意:對於$\delta ^ $因為沒有下一時刻的資訊了,所以
katex parse error: no such environment: split at position 7: \begin̲ \delta ^̲ \frac̲ \frac̲ \frac{\partial…
BP演算法和RNN 雙向RNN的理解
我們在學習某種神經網路模型時,一定要把如下幾點理解透了,才算真正理解了這種神經網路。網路的架構 包含那些層,每層的輸入和輸出,有那些模型引數是待優化的 前向傳播演算法 損失函式的定義 後向傳播演算法 什麼情況下認為是發現了過擬合,怎麼進行優化。很多介紹深度學習的書籍,在介紹全連線神經網路時,對這幾個...
簡單的RNN和BP多層網路之間的區別
先來個簡單的多層網路 關於rnn出現的原因,rnn詳細的原理,已經有很多博文講解的非常棒了。如下 多層網路 x tf.placeholder tf.float32,none,256 y tf.placeholder tf.float32,none,10 w1 tf.variable tf.rando...
SAR成像中的BP演算法
思考 為什麼該演算法有效呢?三 四 參考文獻 bp的全稱是backprojection,即後向投影。它是受cat computer aided tomography 的啟發而誕生的,是一種經典的時域成像演算法。參考文獻5最早提出了該演算法。其顯著特徵是精確度高,計算量大。另外對雷達航跡沒有特殊要求 ...