回答

0

反向傳播是Chain Rule在神經網絡中的應用。由於f(g(x))的導數爲f'(g(x)),所以如果正向通過涉及應用傳遞函數,則損失函數相對於權重的梯度將包括傳遞函數的導數G'(x)的。

0

你的問題是一個很好的問題!爲什麼我應該在錯誤的斜率爲wrt時將重量向一個方向移動?重量很高?這真的有意義嗎?事實上,如果錯誤函數是重要的,它是有意義的。重量是一個拋物線。然而,假設它是拋物線是一種瘋狂的猜測。正如rcpinto所說,假設誤差函數是一個拋物線,使用鏈規則推導出更新簡單。

但是,還有一些其他的參數更新規則實際上解決了這個非直觀的假設。您可以制定更新規則,將權重設定爲沿斜坡方向的固定大小步驟,然後稍後在訓練中稍後可以減小步長對數。 (我不確定這種方法是否有正式名稱。)

還有可以使用的替代錯誤函數。查看Cross Entropy在你的神經網絡課本中。這是對誤差函數的調整,使得更新規則中的(傳遞函數的)因子的抵消消除。請記住根據您的輸出傳遞函數選擇正確的交叉熵函數。

1

原因是我們正在儘量減少損失。具體來說,我們通過gradient descent method來做到這一點。它基本上意味着從我們當前的參數空間點(由完整的當前權重集合決定),我們希望沿着一個會減少損失函數的方向前進。想像站在山坡上,沿着斜坡最陡峭的方向走。

在數學上,從參數空間中當前點開始最陡下降的方向是負梯度。而梯度只不過是由每個單一參數的損失函數的所有導數組成的矢量。

0

當我剛開始進入神經網絡時,我也有這個問題。

這裏的其他答案已經解釋了這個數學,這個數學很清楚,當你試圖更新權重的時候,一個微分項會出現在你的計算中。 但是所有這些計算都是爲了實現反向傳播而完成的,這只是更新權重的一種方法!現在閱讀...

假設在一天結束時,所有的神經網絡都試圖做的是更新它的權重,以適應您輸入的數據。在這個聲明中也包含你的答案。你在這裏感到困惑的是後向傳播算法的想法。許多教科書默認使用backprop來更新神經網絡,但不要提到還有其他方法來更新權重。這導致了神經網絡和支柱是相同的事物並且本質上相互關聯的混淆。這也導致了錯誤的信念,即神經網絡需要逆向訓練。

請記住,反向傳播只是用來訓練你的神經網絡的方法之一(儘管它是最有名的)。現在,你一定已經看到了背投中的數學問題,因此你可以看到衍生術語來自哪裏(其他一些答案也解釋了這一點)。其他培訓方法可能不需要衍生工具,儘管其中大部分都可以。請仔細閱讀以找出原因......

直覺地想一想,我們談論的是改變權重,與改變有關的直接數學運算是一個導數,有意義的是,您應該需要評估導數以改變權重。

如果您仍然感到困惑,請告訴我,我會嘗試修改我的答案以使其更好。就像信息的一部分一樣,另一個常見的誤解是梯度下降是反向傳播的一部分,就像假設反向傳播是神經網絡的一部分一樣。漸變下降只是最大限度地降低成本功能的一種方式,還有很多可以使用的其他方法。上面的答案之一,當它說「具體梯度下降」時,也會做出錯誤的假設。這實際上是不正確的。 :)

0

訓練神經網絡意味着最小化與網絡權重相關的相關「錯誤」函數。現在有一些優化方法只使用函數值(Nelder和Mead的單純形法,Hooke和Jeeves等),另外使用一階導數(最速下降,準牛頓,共軛梯度)的方法和使用二階導數的Newton方法。所以如果你想使用一個微分方法,你必須計算誤差函數的導數,這反過來又涉及到傳遞或激活函數的導數。 反向傳播只是計算導數的一個很好的算法,僅此而已。

1

您必須已經知道成本函數是一個以權重爲變量的函數。 現在認爲它是f(W)。

我們這裏的主要動機是找到一個W,我們得到f(W)的最小值。

這樣做的一種方法是在一個軸上繪製函數f,在另一個軸上繪製W ......但請記住,這裏W不僅僅是一個變量,而是一組變量。

那麼可以採用其他方式? 它可以像改變W的值一樣簡單,看看我們是否得到一個較低的值或不是以前的W值。

但是對W中的所有變量取一個隨機值可能是一個單調乏味的任務。因此我們首先採用W的隨機值並且看到f(W)的輸出和每個變量的所有值的斜率(我們通過部分區分函數和第i個變量並放置第i個變量的值)。

現在,一旦我們知道空間中該點處的斜率,我們會向斜坡下方進一步移動(這個小因數在梯度下降中被定義爲α),並且這一直持續下去,直到斜率給出相反的值我們已經達到圖中的最低點(具有n維的圖,函數vs W,W是n個變量的集合)。