梯度下降及BP演算法詳細推導

2021-09-13 13:37:04 字數 2640 閱讀 6278

隨著深度學習的火熱,人們在驚呼其效果之外,對其表現出如此效果的內在原理卻知之甚少,為此,本文基於自己在之前課堂上學習到的知識對其內部工作情況做乙個較為詳細的介紹,考慮到目前主流深度學習還是基於隨機梯度下降及bp演算法進行網路引數的調整,為此本章將對bp演算法進行詳細的推導,希望能對剛入門的讀者有所幫助,當然讀者首先需要對神經網路有一定的了解。

我們首先說一下梯度下降演算法,假設我們有乙個損失函式:

現在我們基於梯度下降演算法,需要更新引數,從而降低損失函式的值,即:

為此我們可以得到引數更新公式(即梯度下降演算法):

這個式子看不懂?沒關係,下面解釋一下,為什麼通過這個簡單式子更新引數就能降低損失函式值呢?

在高中的時候,我們就學過導數,假設有乙個函式:

其關於x的導數為:

同時我們知道:

而在這裡的

稱為偏導數,因為變數是不再是乙個單一的變數,可能是乙個向量,甚至是乙個張量。但是其意義卻並沒有變化,依然滿足偏導數大於零,則遞增,偏導數小於零則遞減。

還記得我們的目標嗎?通過增加或者減少引數從而降低損失函式的值。回到上面引數更新的式子,我們暫忽略掉學習速率:

對於偏導數,我們暫不考慮偏導數為零的情況(如果偏導數為零,則引數更新前的值同更新後的值沒有變化,即引數並沒有得到更新),那麼其結果要麼大於零,要麼小於零。接下來我們分別考慮這兩種情況,看引數更新後的變化。

1.偏導數結果大於零

此時,損失函式隨著引數值的減少而減少,因此為了能夠讓損失函式減少,我們需要更新引數,使引數值減少,我們觀察上式,更新後的結果有:

滿足降低損失函式值的條件。

2.偏導數結果小於零

此時,損失函式隨著引數值的增加而減少,因此為了能夠讓損失函式減少,我們需要更新引數,使引數增加,我們觀察上式,更新後的結果有:

滿足降低損失函式值的條件。

所以簡簡單單的上式,即達到通過更新引數(增加或者降低引數值)減少損失函式值的效果。

清楚了梯度下降演算法,那麼我們接下來談談bp演算法。我們知道目前主流神經網路中的引數基本都是通過誤差反向傳播(bp)來進行更新的。為了更好的推導和理解,我們先給出這個讓人一目了然的圖(此處應該給我們資訊學院的朱院長掌聲):

圖1:神經網路前向及誤差反向傳播過程

其中黑色箭頭表示前向傳播過程,紅色箭頭表示誤差方向傳播過程。

我們隨便選擇神經網路中連續的三個層及不同的節點,我們只要推導出如何更新任何連線的兩個層之間的任何節點之間的權重wij,那麼也就可以得到整個網路引數更新過程(我們在這裡為了更清楚了解bp過程,所以捨去一些必要的trick,在實際工作中,會對bp做一些補充或改進,但最基礎的還是這些)。所以我們接下來的工作就是怎麼得到wij的更新公式。可能有些讀者會說那還不簡單,直接按照之前那個梯度下降演算法,直接套用不就可以了嗎?即得到:

你只是答對了一部分,但是這個並不適用更新網路中所有層的引數,對於神經網路,損失函式是指網路最後一層的輸出,所以當誤差反向傳播時,對於其他層的引數,誤差(損失值)是會變化的。

在推導bp之前,我們先對圖1中的幾個變數進行簡單的表示:

為此我們可以得到:

繼續推導有:

即有:

基於我們之前的分析,對於輸出層(即網路最後一層)及隱藏層,其引數更新公式會有些許的不同,接著我們就輸出層及隱藏層中的引數更新公式進行推導。

1.輸出層

在這裡為了推導的方便,我們假設輸出層的損失函式是平方損失,網路共l層,則單樣本的損失函式值為:

則有:

即有:2.隱藏層

為了更好的理解下面的內容,讀者需要對導數的鏈式法則有一定的了解,如下圖所示:

圖2. 梯度鏈式法則

在網路前向傳播的過程中(如圖2中的黑色箭頭所示),k-1層中的節點i流向下一層的節點j1,j2,j3,然後流向下一層節點r,為此在誤差反傳的時候(如圖2中的紅色箭頭所示),即將黑色箭頭反向。因此我們知道節點i的梯度**於節點j1,j2,j3梯度之和,所以我們可以得到:

故隱藏層的引數更新公式為:

為此我們便得到所有層之間引數的更新公式。

梯度下降演算法 梯度下降演算法公式推導

場景假設 梯度下降法的基本思想可以模擬為乙個下山的過程。假設這樣乙個場景 乙個人被困在山上,需要從山上下來 找到山的最低點 但此時山上的濃霧很大,導致可視度很低 因此,下山的路徑就無法確定,必須利用自己周圍的資訊一步一步地找到下山的路。這個時候,便可利用梯度下降演算法來幫助自己下山。怎麼做呢,首先以...

梯度下降演算法推導

x y 都表示 權重,f 表示損失函式。f x delta x,y delta y f x,y frac cdot delta x frac cdot delta y f x delta x,y delta y f x,y frac cdot delta x frac cdot delta y de...

梯度下降推導及案例

最美的等待是,我們 未來可期。梯度下降法的基本思想可以模擬為乙個下山的過程。假設這樣乙個場景 乙個人被困在山上,需要從山上下來 i.e.找到山的最低點,也就是山谷 但此時山上的濃霧很大,導致可視度很低。因此,下山的路徑就無法確定,他必須利用自己周圍的資訊去找到下山的路徑。這個時候,他就可以利用梯度下...