利用反向傳播訓練多層神經網路的原理

2021-12-30 12:23:33 字數 1823 閱讀 4437

每個神經元都是由兩個部分組成。第乙個部分是權重係數與所有輸入訊號的乘積。(ps.這裡的輸入訊號不僅僅是指輸入層,而是所有第(l?1)層對第l層來說都叫做輸入訊號)第二部是實現非線性函式的神經元啟用函式。訊號e表示加法輸出訊號(也就是權重係數和),而y=f(e)表示f作用在e上之後的輸出訊號。

為了訓練神經網路,我們需要乙個訓練集。這個訓練集是由輸入訊號量(x1和x2)組成,並且輸入訊號將分配給對應的期望輸出z。神經網路的訓練是乙個迭代迴圈的過程。在每一次的迭代中,每個神經元節點的權重係數都將通過訓練集中的新資料來更新。其更新的計算過程如下:每一次訓練都從訓練集中的輸入訊號開始,在這之後便可以計算出網路中所有神經元的輸出值。下面的圖示展示了訊號量是如何通過網路來傳播的,其中符號w(xm)n表示連線xm與下一層第n一神經元之間的權重值 (ps.對著下圖看容易理解)。符號yn表示第n個神經元的輸出訊號。

訊號量的傳播是通過隱藏層來進行的。符號wmn 表示連線輸出神經元m和下一層輸入神經元n之間的權重。

訊號量通過輸出層傳播。

在演算法的下乙個步驟中,神經網路的最終輸出值y,將同預期期望的目標值(訓練資料集中給出)進行比較。兩者之間的差被稱之為輸出層神經元的誤差值δ(error signal)。

當然,直接來計算內部隱藏層神經元的誤差值幾乎是不可能的,因為這些隱藏層神經元的輸出值是未知的。並且很多年來,訓練多層神經網路的有效方法一直不被人們所知曉。直到在80年代中期,反向傳播演算法才凸顯出來。該演算法的思想就是將訓練步驟中最終得來的誤差值δ反向傳播給網路中的所有神經元,此時輸出訊號將作為上一層的輸入訊號。

用於計算反向傳播誤差δ的權重係數wmn等同於計算輸出值中的權重係數 (ps. 也就是正向傳播中的權重值),僅僅只是資料了的方向發生了改變(訊號量乙個接乙個地從輸出層傳播到輸入層)。這一方法將在所有的網路層中應用。如果傳播的誤差值來自極少數的神經元,則他們會被新增進來。插入如下:

當所有神經元的誤差值都計算完成時,每乙個輸入神經元的權重係數將可能發生改變。其計算公式df(e)/de 表示神經元啟用函式的導數(此時權重值將發生變化)。

係數η (learning rate)影響著整個網路的學習速率。當然,這裡有一些選擇它的方法:第一種,取乙個很大值的學習速率來訓練網路,當權重值正在被建立的同時,學習速率也將緩慢的下降。第二種(很複雜),以乙個很小的學習速率開始訓練網路,在這個訓練過程當中,當訓練過程進行時,學習速率將先增大然後最終再次減小。但是,選擇很小的學習速率來訓練網路能夠確定權重的符號(正負)。

多層神經網路與反向傳播演算法

本篇文章是 感知機詳解 圖1 多層前饋網路的決策區域 這裡顯示的網路是用來訓練識別10種出現在 h d 例如 had hid 間的母音。這個網 絡的輸入由兩個引數f1和f2組成,它們是通過對聲音的頻譜分析得到的。網路的10個輸出對應於10個可能的母音。這個網路的 是其中有最大值的輸出。右圖畫出了學到...

使用反向傳播演算法訓練多層神經網路的原理 譯

每個神經元由兩個單元組成。第乙個單元是權重係數和輸入型號的乘積和。第二個單元是實現非線性功能,這種功能叫做神經元啟用。訊號 為了訓練神經網路,我們需要訓練資料集。訓練資料集是由輸入訊號 訊號通過隱藏層傳播。訊號 訊號通過輸出層的傳播過程。在接下來的演算法步驟中,把網路輸出訊號 直接計算內部神經元的誤...

神經網路反向傳播理解

訓練神經網路的目標是 優化代價函式,使得代價函式找到乙個 全域性最小值或者區域性最小值。不管使用何種梯度下降演算法 bgd,sgd adam 都需要先算出各個引數的梯度。反向傳播的作用 就是快速算出所有引數的偏導數。求導數通常可以分為兩類,一類是直接用定義,第二類是公式法 包括鏈式法 定義法 定義法...