BP 演算法之一種直觀的解釋

2021-10-01 23:49:54 字數 2141 閱讀 8357

之前上模式識別課程的時候,老師也講過 mlp 的 bp 演算法, 但是 ppt 過得太快,只有乙個大概印象。後來課下自己也嘗試看了一下 stanford lms (least mean squares) 演算法介紹比較好的資料是 andrew ng cs229 的 lecture notes。假設我們的線性 model 是這樣的:

在上面這個模型中,用公式可以表達成:

如何判斷模型的好壞呢?損失函式定義為輸出值 h(x) 與目標值 y 之間的「二乘」:

對偏導進行求解,可以得到:

如果要利用 gradient descent 的方法找到乙個好的模型,即乙個合適的 theta 向量,迭代的公式為:

所以,對於乙個第 i 個單獨的訓練樣本來說,我們的第 j 個權重更新公式是:

這個更新的規則也叫做 widrow-hoff learning rule, 從上到下推導下來只有幾步,沒有什麼高深的理論,但是,仔細觀察上面的公式,就可以發現幾個 natural and intuitive 的特性。

首先,權重的更新是跟 y - h(x) 相關的,如果訓練樣本中**值與 y 非常接近,表示模型趨於完善,權重改變小。反之,如果**值與 y 距離比較遠,說明模型比較差,這時候權重變化就比較大了。

權重的變化還與 xi 也就是輸入節點的值相關。也就是說,在同一次 train 中,由於 y - h(x) 相同, 細線上的變化與相應的輸入節點 x 的大小是成正比的(參考最上面的模型圖)。這中間體現的直觀印象就是:殘差的影響是按照 xi 分配到權重上去滴,這裡的殘差就是 h(x) - y。

lms 演算法暫時先講到這裡,後面的什麼收斂特性、梯度下降之類的有興趣可以看看 lecture notes。

z: 非線性變換之前的節點值,實際上是前一層節點的線性變換

a: 非線性變換之後的 activation 值

a=f(z): 這裡就是 sigmoid function

現在我們要利用 lms 中的想法來對這個網路進行訓練。

假設在某乙個時刻,輸入節點接受乙個輸入, mlp 將資料從左到右處理得到輸出,這時候產生了殘差。在第一小節中,我們知道, lms 殘差等於 h(x) - y。 mlp 的最後一層和 lms 線性分類器非常相似,我們不妨先把最後一層的權重更新問題解決掉。在這裡輸出節點由於增加了乙個非線性函式,殘差的值比 lms 的殘差多了乙個求導 (實際上是數學上 chain rule 的推導):

得到殘差,根據之前猜想出來的規律( - -!), 殘差的影響是按照左側輸入節點的 a 值大小按比例分配到權重上去的,所以呢,就可以得到:

如果乘以乙個 learning rate, 這就是最後一層的權重更新值。

我們在想,要是能得到中間隱層節點上的殘差,問題就分解成幾個我們剛剛解決的問題。關鍵是:中間隱層的殘差怎麼算?

得到隱層的殘差,我們又可以得到前一層權重的更新值了。這樣問題就一步一步解決了。

最後我們發現,其實咱們不用逐層將求殘差和權值更新交替進行,可以這樣:

先從右到左把每個節點的殘差求出來(數學上表現為反向傳導過程)

然後再求權重的更新值

更新權重

q: 這是在 ng 教程中的計算過程, 但是在有些資料中,比如參考資料 [2],殘差和權值更新是逐層交替進行的,那麼,上一層的殘差等於下一層的殘差乘以更新後的權重,明顯,ng 的教程是乘以沒有更新的權重,我覺得後者有更好的數學特性,期待解疑!

用一張粗略的靜態圖表示殘差的反向傳播:

紅色的曲線就是對 sigmoid function 的求導,和高斯分布非常相似。
用一張動態圖表示前向(fp)和後向(bp)傳播的全過程:

ok,現在 bp 演算法有了乙個直觀的思路,下面,將從反向傳導的角度更加深入地分析一下 bp 演算法。

BP 演算法之一種直觀的解釋

lms least mean squares 演算法介紹比較好的資料是 andrew ng cs229 的 lecture notes。假設我們的線性 model 是這樣的 在上面這個模型中,用公式可以表達成 如何判斷模型的好壞呢?損失函式定義為輸出值 h x 與目標值 y 之間的 二乘 對偏導進行...

一種對拉格朗日乘子的直觀理解

假如你面前有一座山,山上有一條複雜的小路,如果你爬山的時候只能順著小路走,那麼什麼時候你發現自己到了某個至高點呢?很明顯,當你發現自己不論是往前走,還是往後退時,高度總是下降的,那麼這時你就位於乙個區域性的最高點了。把這個思想抽象為數學表達,那就是,當函式上某點的梯度在約束曲線切向沒有分量時,你就到...

IDE的一種解釋!

ide是integrated device electronics的簡稱,是一種硬碟的傳輸介面,它有另乙個名稱叫做ata at attachment 這兩個名詞都有廠商在用,指的是相同的東西。ide的規格後來有所進步,而推出了eide enhanced ide 的規格名稱,而這個規格同時又被稱為fa...