2012-10-27 130 views
10

我最近完成了Coursera吳教授的機器學習過程中,雖然我喜歡的整個過程中,我從來沒有真正設法瞭解訓練神經網絡的BP算法。有人可以向我解釋反向傳播算法嗎?

我和了解它是問題,他永遠只能講授了全連接的前饋網絡的矢量化實現它。我的線性代數是生鏽的,我認爲如果有人能教給我通用算法,會更容易理解。也許是以節點爲導向的方式。

我會嘗試和短語的問題簡單,但我可能是誤解如何backprop的作品,因此,如果這沒有意義,忽略它:

對於任何給定的節點N,給定輸入權重/值,輸出權重/值以及N輸出到的所有節點的誤差/成本,我如何計算N的「成本」並使用它來更新輸入權重?

+0

這是一個相當廣泛的問題。你可能在http://dsp.stackexchange.com有更好的運氣。 – mtrw

+6

你可以在http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html –

+1

找到一個很好的解釋,附圖片,這是一個很好的解釋!雖然我不確定我是否理解差分位。 df(e)/ de是指相對於整個加權總和(e)的導數還是僅僅是連接誰輸入我們試圖更新的重量?所以說節點有一個線性激活函數,df(e)/ de總是等於1(f(e)= e - > df(e)/ de = 1)?或者它會始終等於我們正在更新的權重(f(e)= w1x1 + w2x2 - > df(e)/ dx1 = w1) –

回答

14

讓我們考慮一個反向傳播(BP)網絡的一個節點。它有多個輸入,併產生一個輸出值。我們希望對訓練使用糾錯,所以它也會根據節點的誤差估計更新權重。

每個節點都有一個偏差值,θ。你可以把它看作是一個內部的,不變的1.0值輸入的權重。

活化是的加權輸入和偏置值的總和。讓我們將我們感興趣的節點稱爲j,前一層中節點的值爲i,後一層中節點的值爲k。我們的節點j的激活則是:

Ĵ(鄰×瓦特 IJ)+θĴ

即, j的激活值是來自節點i的輸出與對應的權重鏈接節點i和j的輸出的乘積加上偏差值的總和。

我們的節點j的輸出是激活的傳遞函數:

öĴ = F(淨Ĵ

f是常用的S形函數。

F(淨Ĵ)= 1 /(1 + E -net Ĵ

的S形函數具有易於以指定一階導數:

F'(淨Ĵ)= F(淨Ĵ)×(1。0 - F(淨Ĵ))

我們使用哪種傳遞函數,我們需要知道如何計算它的一階導數。 BP通過連鎖規則通過梯度下降進行工作,所以這很重要。上面的等式將與不同的傳遞函數不同。到目前爲止,我們知道如何獲得輸入值,計算激活,計算輸出並計算激活的一階導數。現在我們需要處理錯誤和重量調整。

用於BP中的節點誤差估計值被稱爲δ。節點的δ與節點激活的一階導數和它接收的誤差項成正比。接收到的誤差項有兩個公式,一個用於輸出節點,另一個用於隱藏節點。

一般地,

δ= F '(淨)×(接收錯誤)

對於輸出節點,

δ輸出 = F'(淨)×(t - o)

其中t是該輸出節點的期望值,o是該輸出節點的實際輸出值。

對於我們隱藏的節點j,它是這樣的:

δĴ = F'(淨Ĵ)×Σķ(δķ×瓦特 JK

我們節點j的δ,δ j,是我們的一階導數的乘積給定激活時間的sfer函數下一層(更接近輸出)的增量的總和乘以連接權重的值。有了這個,我們可以計算出如何調整前一層節點(接近輸入)的權重。

DW IJ = L×○×δĴ

DW這裏表示 「重量變化」,所以什麼方程說的是,從在重量變化節點i到我們的節點j等於學習參數L(通常網絡中所有節點的相同值),節點i的輸出值和節點j的δ(誤差項)的乘積。

調整偏差值與調整權重類似。

Ĵ = L×F(θĴ)×δĴ

Dθ這裏表示 「在θ變化」。我們必須將傳遞函數應用於偏差值θ j以獲得類似於節點輸出的項。否則,它看起來就像另一個等式。

我應該注意到,計算重量變化應該在整個網絡範圍內進行,然後在計算完所有變化後應用變更。

+0

是否有可能解釋爲什麼最後一層的目標函數的導數是觀測值和預測值之間的差異?假設我們使用sigmoid函數來獲取輸入並將其轉換爲非線性值... – user2543622

+0

我的意思是我查看邏輯迴歸的目標函數的導數,並且我明白導數等於(預測之間的差異)* x_varaiable ..那麼爲什麼在神經網絡的情況下,我們擺脫了x_變量,只保留(預測之間的區別)部分? – user2543622

+0

@ user2543622,目標函數的導數實際上是這個目標函數的梯度,它是MSE(通常使用的目標函數)的導數向量。 –

0

對於任何給定的節點N,給定了輸入的權重/值,輸出 權重/值和所有節點的錯誤/成本該N個輸出到, 如何計算的「成本」 N並使用它來更新輸入 權重?

您從未對單個神經元的中間成本函數感興趣。相反,您對最終產出的成本感興趣;總是。然後用它來將背層神經元所需的變化率一直傳播到前面。

相關問題