跳轉到內容

人工神經網路/誤差修正學習

來自華夏公益教科書,開放的書籍,開放的世界

誤差修正學習

[編輯 | 編輯原始碼]

誤差修正學習,與監督學習一起使用,是一種將系統輸出與期望輸出值進行比較,並利用該誤差來指導訓練的技術。在最直接的路徑中,誤差值可用於直接調整抽頭權重,使用諸如反向傳播演算法之類的演算法。如果系統輸出為y,並且已知期望系統輸出為d,則誤差訊號可定義為

誤差修正學習演算法試圖在每次訓練迭代中最小化此誤差訊號。最流行的用於誤差修正學習的學習演算法是反向傳播演算法,下面將討論該演算法。

梯度下降

[編輯 | 編輯原始碼]

梯度下降演算法並非專門的ANN學習演算法。它在科學、工程和數學的各個領域都有廣泛的用途。但是,我們需要討論梯度下降演算法,以便充分理解反向傳播演算法。梯度下降演算法用於透過操縱權重向量w來最小化誤差函式g(y)。成本函式應為權重向量和輸入向量x的線性組合。該演算法為

這裡,η被稱為步長引數,它會影響演算法的收斂速度。如果步長太小,演算法將花費很長時間才能收斂。如果步長太大,演算法可能會振盪或發散。

梯度下降演算法透過取權重空間的梯度來尋找最速下降路徑。透過在每次迭代中遵循最速下降路徑,我們將找到最小值,或者如果權重空間無限減小,演算法可能會發散。找到最小值後,不能保證它是全域性最小值。

反向傳播

[編輯 | 編輯原始碼]

反向傳播演算法與監督誤差修正學習規則相結合,是人工神經網路訓練中最流行和最強大的工具之一。反向傳播在訓練期間將誤差訊號反向傳遞到網路中,以更新網路的權重。由於這種對訓練期間雙向資料流的依賴,反向傳播不是生物學習機制的合理複製。在談論反向傳播時,定義術語層間為神經元層,以及對應於該層的輸入抽頭權重是有用的。我們使用上標來表示特定層間,並使用下標來表示該層中的特定神經元。例如

(1)
(2)

其中xil-1是來自前一層間的輸出(當前層間的輸入),wijl是從前一層間的第i個輸入到當前層間的第j個元素的抽頭權重。Nl-1是前一層間中神經元的總數。

反向傳播演算法規定,在訓練期間,網路的抽頭權重會迭代更新,以接近誤差函式的最小值。這是透過以下等式完成的

(3)
(3)

該演算法與梯度下降演算法之間的關係應該立即顯而易見。這裡,η被稱為學習率,而不是步長,因為它會影響系統學習(收斂)的速度。引數μ被稱為動量引數。動量引數迫使搜尋考慮來自前一次迭代的運動。透過這樣做,系統將傾向於避免區域性最小值或鞍點,並接近全域性最小值。我們將在下一節中更詳細地討論這些術語。

引數δ是使該演算法成為“反向傳播”演算法的原因。我們按以下方式計算它

(4)

每一層的 δ 函式都取決於上一層的 δ。對於輸出層(最高層)的特殊情況,我們使用此方程式代替

(5)

透過這種方式,訊號從輸出層反向傳播到輸入層,因此該演算法被稱為反向傳播演算法。

對數-S型反向傳播

[edit | edit source]

如果我們對神經元使用對數-S型啟用函式,則導數將簡化,我們的反向傳播演算法將變為

對於輸出層,以及

對於所有隱藏內部層。此屬性使 S 型函式成為計算導數能力有限的系統的理想選擇。

學習率

[edit | edit source]

學習率是許多學習演算法中的一個常用引數,它影響著人工神經網路到達最小解的速度。在反向傳播中,學習率類似於梯度下降演算法中的步長引數。如果步長過大,系統將圍繞真實解振盪,或者完全發散。如果步長過小,系統將花費很長時間才能收斂到最終解。

動量引數

[edit | edit source]

動量引數用於防止系統收斂到區域性最小值或鞍點。較高的動量引數也可以幫助提高系統收斂速度。但是,將動量引數設定得太高可能會導致超過最小值,從而使系統變得不穩定。過低的動量係數無法可靠地避免區域性最小值,並且還會減慢系統的訓練速度。

華夏公益教科書