BP神經網絡是包含多個隱含層的網絡,具備處理線性不可分問題的能力。
20世紀80年代中期,Rumelhart,McClelland等成立了Parallel Distributed Procession(PDP)小組,提出了著名的誤差反向傳播算法(Error Back Propagtion,BP)。
BP和徑向基網絡屬於多層前向神經網絡。廣泛應用於分類識別、逼近、回歸、壓縮等領域。
BP神經網絡一般是多層的,隱層可以是一層或多層。BP神經網絡具有如下特點:
(1)網絡由多層構成,層與層之間全連接,同一層之間的神經元無連接。
(2)BP網絡的傳遞函數必須可微。所以感知器的二值函數不能用,一般采用Sigmoid函數,可分為Log-Sigmoid和Tan-Sigmoid函數。
其中x的范圍包含整個實數域,函數值再0~1之間。具體應用時可以增加參數,以控制曲線的位置和形狀。
sigmoid函數可以將輸入從負無窮到正無窮的范圍映射到(-1,1)和(0,1)之間,具有非線性放大功能。
(3)采用誤差反向傳播算法(Back-Propagation)進行學習。再BP網絡中,數據從輸入層經隱含層逐層向后傳播,訓練網絡權值時,則沿着減少誤差的方向,從輸出層經過中間各層逐層向前修正網絡連接權值。
(與反饋神經網絡不同,BP是誤差信號反向傳播,網絡根據誤差從后向前逐層進行修正)
二、BP網絡的學習算法
BP網絡的學習屬於有監督學習,需要一組已知目標輸出的學習樣本集。
最速下降法:
又稱為梯度下降法,是一種可微函數的最優化算法。
LMS算法即最小均方誤差算法,又稱Δ規則或Windrow-Hoff LMS算法。
LMS算法體現了糾錯規則,與最速下降法本質沒有差別。最速下降法可以求某指標(目標函數)的極小值,若將目標函數取為均方誤差,就得到了LMS算法。
最速下降BP法:
調整規則可以總結為:
權值調整量Δω=學習率η*局部梯度δ*上一層輸出信號v。
推薦使用feedforwardnet(hiddenSizes,trainFcn);
訓練函數trainFcn 默認hrainlm (traingdm是帶動量的梯度下降法,trainlm是指L-M優化算法,trainscg是指量化共軛梯度法,除此之外還有traingdx、traingda等,都是權值的訓練算法。看MATLAB結合神經網絡的基礎書上都有介紹。
tansig和logsig 統稱Sigmoid函數,logsig是單極性S函數,tansig是雙極性S函數,也叫雙曲正切函數,purelin是線性函數,是節點的傳輸函數。)