反向傳播算法的公式推導(BP算法)

  假設訓練的樣本集包含m個樣例,因爲此時對於單個樣本我們將神經網絡的代價函數定義爲:

這裏寫圖片描述

  其中hW,b(x)爲輸入數據x經過神經網絡前向傳播得到的輸出結果,y爲期望值。
  所以對於這個包含m個樣本集的數據集而言,整體的代價函數應爲:

這裏寫圖片描述

  上式關於J(W,b)定義中的第一項是一個均方差項。第二項是一個權重衰減項,其目的是減小權重的幅度,防止過度擬合。nl 表示神經網絡的層數。sl表示第 l 層神經元個數,不包含偏置單元。
  在實際應用當中,我們使用批量梯度下降算法按照下面的公式來對神經網絡的參數(權重W和偏置b)進行優化:

這裏寫圖片描述

  這裏的 α 是學習速率,由上式可以發現問題的關鍵在於如何求解J(W,b)關於W和b的偏導數。這也就引出了本文所說的反向傳播算法,它是計算偏導數的很有效的方法。
  我們知道整體代價函數J(W,b)跟單個樣本代價函數的關係,所以可得:

這裏寫圖片描述

  需要說明一點,第一行比第二行多出一項的原因在於權重衰減是作用於 W 而不作用於b上。
  現在把原問題轉換成對下面兩個式子進行偏導求解:

這裏寫圖片描述

  因爲第 l+1 層第 i 個神經元的輸出 zi(l+1) 由下面的式子計算出:

這裏寫圖片描述

  所以可以再進一步的將單個樣本的代價函數J(W,b;x,y)對W求導化簡爲:

這裏寫圖片描述

  同理,單個樣本的代價函數J(W,b;x,y)對b求導可化簡爲:

這裏寫圖片描述

  因此問題就被轉化爲求解每一層每一個神經元所對應的殘差。定義第k個樣本在第l層第i個神經元上產生的殘差如下:

這裏寫圖片描述

  所以此時權值Wij(l)的更新公式爲:

這裏寫圖片描述

  偏置bi(l)的更新公式爲:

這裏寫圖片描述

  所以現在的核心問題只剩下一個了,就是殘差該如何進行求解? 對於第nl層(輸出層)的第 i 個神經元,利用下式來求解其對應的殘差:

這裏寫圖片描述

  然後計算倒數第二層即第 nl −1層第 i 個神經元的殘差:

這裏寫圖片描述

  將上式中的 nl −1與 nl的關係替換爲l與l+1的關係,就可以得到:

這裏寫圖片描述

  所以單個樣本代價函數的偏導數的結果爲:

這裏寫圖片描述

  最後將求解得到的偏導數帶入權值W和偏置b更新公式中去得到:

這裏寫圖片描述

  因此,概括下來反向傳播算法主要包括以下幾個步驟:
  (1)進行前饋傳導計算,利用前向傳導公式,得到L2、L3直到輸出層Ln的激活值。
  (2)對輸出層(第nl層),計算其殘差:

這裏寫圖片描述

  (3)對於l=nl-1,nl-2,…,2的各層,計算其對應的殘差:

這裏寫圖片描述

  (4)計算出每個神經元對應的偏導數值:

這裏寫圖片描述

  (5)將計算得到的偏導數值帶入到權重W和偏置b對應的更新公式中去:

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章