天天看點

基于反向傳播的多層神經網絡訓練原理

原文位址請猛戳這裡

該項目描述了采用反向傳播算法的多層神經網絡學習過程。為了說明這一過程, 使用兩個輸入層和一個輸出層的三層神經網絡, 如下圖所示:

基于反向傳播的多層神經網絡訓練原理

每個神經元由兩個單元組成。第一單元添權重重系數和輸入值的産出。第二單元實作非線性函數, 稱為神經元激活函數。 e e 是加法器輸出值, y=f(e) y = f ( e ) 是非線性元件的輸出值。 y y 也是神經元的輸出值。

基于反向傳播的多層神經網絡訓練原理

為了學習神經網絡, 我們需要訓練資料集。訓練資料集包括輸入值 ( x1 x 1 和 x2 x 2 ), 配置設定了相應的目标 (期望輸出) z z 。網絡訓練是一個疊代過程。在每個疊代中, 節點的權重系數都使用來自訓練資料集的新資料進行修改。修改是使用下面描述的算法計算的: 每個學習步驟都是從訓練集強制輸入值開始的。在此階段之後, 我們可以确定每個網絡層中每個神經元的輸出值。下圖說明了值是如何通過網絡傳播的, 符号 w(xm)n w ( x m ) n 表示在輸入層中的網絡輸入 xm x m 和神經元 n n 之間的連接配接權重。符号 yn y n 表示神經元 n n 的輸出值。

基于反向傳播的多層神經網絡訓練原理
基于反向傳播的多層神經網絡訓練原理
基于反向傳播的多層神經網絡訓練原理

通過隐藏層傳播值。符号 wmn w m n 表示神經元 m m 的輸出與下一層神經元 nn 的輸入之間的連接配接權重。

基于反向傳播的多層神經網絡訓練原理
基于反向傳播的多層神經網絡訓練原理

值通過輸出層傳播。

基于反向傳播的多層神經網絡訓練原理

在下一個算法步驟中, 将網絡 y y 的輸出值與所需的輸出值 (目标) 進行比較, 這在訓練資料集中找到。其差異稱為輸出層神經元的誤內插補點 d d 。

基于反向傳播的多層神經網絡訓練原理

由于這些神經元的輸出值未知, 是以無法直接計算内部神經元的誤內插補點。多年來, 多層網絡訓練的有效方法尚不得而知。隻有在八十年代中旬, 反向傳播算法被算出。其思想是将誤內插補點 d d (在單學習步驟中計算) 回報給所有神經元, 輸出值輸入給正在讨論的神經元。

基于反向傳播的多層神經網絡訓練原理
基于反向傳播的多層神經網絡訓練原理

用于傳播錯誤的權重系數 wmn w m n 等于計算輸出值時使用的權重。隻有資料流的方向發生了變化 (值從輸出傳輸到輸入, 一個接一個)。此技術用于所有網絡層。如果傳播的錯誤來自很少的神經元, 它們被添加。圖示如下:

基于反向傳播的多層神經網絡訓練原理
基于反向傳播的多層神經網絡訓練原理
基于反向傳播的多層神經網絡訓練原理

當計算出每個神經元的誤內插補點時, 可以修改每個神經元輸入節點的權重系數。在下面的公式中, df(e)/de d f ( e ) / d e 代表神經元激活函數的導數 (權重被修改)。

基于反向傳播的多層神經網絡訓練原理
基于反向傳播的多層神經網絡訓練原理
基于反向傳播的多層神經網絡訓練原理
基于反向傳播的多層神經網絡訓練原理
基于反向傳播的多層神經網絡訓練原理
基于反向傳播的多層神經網絡訓練原理

系數 h h 影響網絡學習速度。有幾種方法可以選擇此參數。第一種方法是啟動具有較大參數值的學習過程。在建立權重系數的同時, 參數也逐漸減少。第二, 比較複雜的方法, 以小參數值開始學習。在學習過程中, 随着學習的推進, 在最後階段一次又一次地降低了參數。采用低參數值的啟動學習過程, 可以确定權重系數符号。

References

Ryszard Tadeusiewcz “Sieci neuronowe”, Kraków 1992

繼續閱讀