1. 程式人生 > >多層前饋神經網路及BP演算法

多層前饋神經網路及BP演算法

1.多層前饋神經網路
首先說下多層前饋神經網路,BP演算法,BP神經網路之間的關係。多層前饋(multilayer feed-forward)神經網路由一個輸入層、一個或多個隱藏層和一個輸出層組成,後向傳播(BP)演算法在多層前饋神經網路上面進行學習,採用BP演算法的(多層)前饋神經網路被稱為BP神經網路。給出一個多層前饋神經網路的拓撲結構,如下所示:


圖1 多層前饋神經網路
圖1 多層前饋神經網路

神經網路的拓撲結構包括:輸入層的單元數、隱藏層數(如果多於一層)、每個隱藏層的單元數和輸出層的單元數。神經網路可以用於分類(預測給定元組的類標號)和數值預測(預測連續值輸出)等。


2.後向傳播(BP)演算法詳解
(1)初始值權重
神經網路的權重被初始化為小隨機數,每個神經元都有一個相關聯的偏置,同樣也被初始化為小隨機數。
(2)前向傳播輸入
以單個神經網路單元為例,如下所示:


這裡寫圖片描述
圖2 神經網路單元

給定隱藏層或輸出層的單元j,到單元j的淨輸入Ij,如下所示:

Ij=iwijOi+θj
其中,wij是由上一層的單元i到單元j的連線的權重;Oi是上一層的單元i的輸出;θj是單元j的偏置。需要說明的是偏置充當閥值,用來改變單元的活性。
給定單元j的淨輸入Ij,單元j的輸出Oj,如下所示:
Oj=11+eIj
(3)後向傳播誤差
  1. 對於輸出層單元j,誤差Errj用下式計算:
    Errj=Oj(1Oj)(TjOj
    )

    其中,Oj是單元j的實際輸出,而Tjj給定訓練元組的已知目標值。需要說明的是,Oj(1Oj)是邏輯斯締函式的導數。
  2. 對於隱藏層單元j,它的誤差用下式計算:
    Errj=Oj(1Oj)kErrkwjk
    其中,wjk是由下一較高層中單元k到單元j的連線權重,而Errj是單元k的誤差。
  3. 權重更新,如下所示: