2014-04-29 41 views
1

我目前正試圖趕上在Coursera安德魯吳的機器學習過程中,我有麻煩一點點......如何計算反向傳播後輸出層中theta(權重?)的新值?

在他的反傳的視頻,他解釋說,我們需要計算big_delta

big_delta = big_delta + delta(l+1) * a(l)^t所有層升

然而,如何計算big_delta用於當我沒有增量的輸出層(L + 1)?

,他解釋了這個視頻是在這裏:https://www.youtube.com/watch?v=wmfpS5fKFeY

我迷路了。

回答

2

德爾塔在輸出層是

delta = (<expected signal> - <calculated_signal>) * dA(<calculated_signal>) 

其中,Da是已經施加到信號的激活函數的導數。乙狀結腸一般是作爲激勵函數使用及其衍生物是非常簡單的:

dS(x) = x(1-x) 

的「big_delta」 -equalization你必須有用於所有其他層,你會得到更新權重時所需的增量和偏見。

Here's一些(難以閱讀的)反向傳播的數學/算法。

編輯:

只是爲了澄清的當量的一點,IF乙狀結腸被用作激活函數,在輸出層中的增量被計算爲

delta = (<expected signal> - <calculated_signal>) * <calculated_signal> * (1 - <calculated_signal>) 
+0

哦~~,我應該想出了一個!謝謝。只是100%,在這種情況下x是隱藏層的輸出,而不是來自訓練集的輸入。對? –

+0

@ EssamAl-Mansouri x是第一次均衡中顯示的。如果A = Sigmoid(= S(x)),則dA(x)= dS(x)= <計算的信號> *(1- <計算的信號>)。 –

+0

@ EssamAl-Mansouri我加了一些澄清的答案。 –