神經網絡之反向傳播

注意:本文為學習筆記,大量直接復制于參考文章中的原文字及圖片

反向傳播(Backpropagation),該方法計算對網絡中所有權重計算損失函數的梯度。這個梯度會反饋給最優化方法,用來更新權值以最小化損失函數。
任何監督式學習算法的目標是找到一個能把一組輸入最好的映射到其正確的輸出的函數。

概括

反向傳播算法(BP算法)主要由兩個階段:激勵傳播與權重更新。

  • 第1階段:激勵傳播
    每次迭代中的傳播環節包含兩步:
    1. (前向傳播階段)將訓練輸入送入網絡以獲得激勵響應;
    2. (反向傳播階段)將激勵響應同訓練輸入對應的目標輸出求差,從而獲得隱層和輸出層的響應誤差。
  • 第2階段:權重更新
    對于每個突觸上的權重,按照以下步驟進行更新:
    1. 將輸入激勵和響應誤差相乘,從而獲得權重的梯度;
    2. 將這個梯度乘上一個比例并取反后加到權重上。

這個比例(百分比)將會影響到訓練過程的速度和效果,因此稱為“訓練因子”。梯度的方向指明了誤差擴大的方向,因此在更新權重的時候需要對其取反,從而減小權重引起的誤差。
第1和第2階段可以反復循環迭代,直到網絡的對輸入的響應達到滿意的預定的目標范圍為止。

看著有點暈,所以接下來還是看看詳細的解釋吧。


如圖所示的網絡,有三層,輸入層i,隱藏層h,輸出層ow為權重。
輸入為0.05,0.10, 預計輸出為0.01,0.99。
然后經過前向傳播得到一個結果,與實際有一個誤差,常見方法是用平方差來測量,如下

然后如何用這個來更新權重呢?實際上可以把這個公式想象成一個曲面。然后我們要做的就是使得E最小,實際上就是想要得到曲面的最低點。所以采用梯度下降的方法。


以w5為例子,求偏導,然后梯度下降,設一個learning rate,控制下降的速度。

對w5進行更新,假如斜率大于0,那么就應該減少,假如斜率小于0,那么就應該增加。


然后同理對其他參數也進行更新,然后不斷的迭代更新,直到固定次數或者誤差小于某個閾值。

參考鏈接:
維基百科-反向傳播算法
一文弄懂神經網絡中的反向傳播法——BackPropagation
偏導數及其幾何意義

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 第二個Topic講深度學習,承接前面的《淺談機器學習基礎》。 深度學習簡介 前面也提到過,機器學習的本質就是尋找最...
    我偏笑_NSNirvana閱讀 15,730評論 7 49
  • 引言 機器學習欄目記錄我在學習Machine Learning過程的一些心得筆記,涵蓋線性回歸、邏輯回歸、Soft...
    hfk閱讀 4,399評論 4 18
  • 五一期間參加了一場婚禮,表弟結婚。婚禮之前,親戚們都坐在一起閑聊,聊的話題不外乎我們幾個沒結婚的孩子,或者...
    湖淶閱讀 258評論 0 0
  • 《編寫高質量iOS與OS X代碼的52個有效方法》--第五章 第34條(ps:此乃讀書筆記,加深記憶,僅供大家參考...
    z_zero閱讀 515評論 0 1
  • 早上九點多在騎自行車的時候,遠遠看見一只泰迪在地上打滾,經過它身旁時,看到它用倆只前爪在移動,沒太在意就轉過頭繼續...
    Imjm閱讀 241評論 0 0