⑴ BP神經網路的原理的BP什麼意思
人工神經網路有很多模型,但是日前應用最廣、基本思想最直觀、最容易被理解的是多層前饋神經網路及誤差逆傳播學習演算法(Error Back-Prooaeation),簡稱為BP網路。
在1986年以Rumelhart和McCelland為首的科學家出版的《Parallel Distributed Processing》一書中,完整地提出了誤差逆傳播學習演算法,並被廣泛接受。多層感知網路是一種具有三層或三層以上的階層型神經網路。典型的多層感知網路是三層、前饋的階層網路(圖4.1),即:輸入層、隱含層(也稱中間層)、輸出層,具體如下:
圖4.1 三層BP網路結構
(1)輸入層
輸入層是網路與外部交互的介面。一般輸入層只是輸入矢量的存儲層,它並不對輸入矢量作任何加工和處理。輸入層的神經元數目可以根據需要求解的問題和數據表示的方式來確定。一般而言,如果輸入矢量為圖像,則輸入層的神經元數目可以為圖像的像素數,也可以是經過處理後的圖像特徵數。
(2)隱含層
1989年,Robert Hecht Nielsno證明了對於任何在閉區間內的一個連續函數都可以用一個隱層的BP網路來逼近,因而一個三層的BP網路可以完成任意的n維到m維的映射。增加隱含層數雖然可以更進一步的降低誤差、提高精度,但是也使網路復雜化,從而增加了網路權值的訓練時間。誤差精度的提高也可以通過增加隱含層中的神經元數目來實現,其訓練效果也比增加隱含層數更容易觀察和調整,所以一般情況應優先考慮增加隱含層的神經元個數,再根據具體情況選擇合適的隱含層數。
(3)輸出層
輸出層輸出網路訓練的結果矢量,輸出矢量的維數應根據具體的應用要求來設計,在設計時,應盡可能減少系統的規模,使系統的復雜性減少。如果網路用作識別器,則識別的類別神經元接近1,而其它神經元輸出接近0。
以上三層網路的相鄰層之間的各神經元實現全連接,即下一層的每一個神經元與上一層的每個神經元都實現全連接,而且每層各神經元之間無連接,連接強度構成網路的權值矩陣W。
BP網路是以一種有教師示教的方式進行學習的。首先由教師對每一種輸入模式設定一個期望輸出值。然後對網路輸入實際的學習記憶模式,並由輸入層經中間層向輸出層傳播(稱為「模式順傳播」)。實際輸出與期望輸出的差即是誤差。按照誤差平方最小這一規則,由輸出層往中間層逐層修正連接權值,此過程稱為「誤差逆傳播」(陳正昌,2005)。所以誤差逆傳播神經網路也簡稱BP(Back Propagation)網。隨著「模式順傳播」和「誤差逆傳播」過程的交替反復進行。網路的實際輸出逐漸向各自所對應的期望輸出逼近,網路對輸入模式的響應的正確率也不斷上升。通過此學習過程,確定下各層間的連接權值後。典型三層BP神經網路學習及程序運行過程如下(標志淵,2006):
(1)首先,對各符號的形式及意義進行說明:
網路輸入向量Pk=(a1,a2,...,an);
網路目標向量Tk=(y1,y2,...,yn);
中間層單元輸入向量Sk=(s1,s2,...,sp),輸出向量Bk=(b1,b2,...,bp);
輸出層單元輸入向量Lk=(l1,l2,...,lq),輸出向量Ck=(c1,c2,...,cq);
輸入層至中間層的連接權wij,i=1,2,...,n,j=1,2,...p;
中間層至輸出層的連接權vjt,j=1,2,...,p,t=1,2,...,p;
中間層各單元的輸出閾值θj,j=1,2,...,p;
輸出層各單元的輸出閾值γj,j=1,2,...,p;
參數k=1,2,...,m。
(2)初始化。給每個連接權值wij、vjt、閾值θj與γj賦予區間(-1,1)內的隨機值。
(3)隨機選取一組輸入和目標樣本
提供給網路。
(4)用輸入樣本
、連接權wij和閾值θj計算中間層各單元的輸入sj,然後用sj通過傳遞函數計算中間層各單元的輸出bj。
基坑降水工程的環境效應與評價方法
bj=f(sj) j=1,2,...,p (4.5)
(5)利用中間層的輸出bj、連接權vjt和閾值γt計算輸出層各單元的輸出Lt,然後通過傳遞函數計算輸出層各單元的響應Ct。
基坑降水工程的環境效應與評價方法
Ct=f(Lt) t=1,2,...,q (4.7)
(6)利用網路目標向量
,網路的實際輸出Ct,計算輸出層的各單元一般化誤差
。
基坑降水工程的環境效應與評價方法
(7)利用連接權vjt、輸出層的一般化誤差dt和中間層的輸出bj計算中間層各單元的一般化誤差
。
基坑降水工程的環境效應與評價方法
(8)利用輸出層各單元的一般化誤差
與中間層各單元的輸出bj來修正連接權vjt和閾值γt。
基坑降水工程的環境效應與評價方法
(9)利用中間層各單元的一般化誤差
,輸入層各單元的輸入Pk=(a1,a2,...,an)來修正連接權wij和閾值θj。
基坑降水工程的環境效應與評價方法
(10)隨機選取下一個學習樣本向量提供給網路,返回到步驟(3),直到m個訓練樣本訓練完畢。
(11)重新從m個學習樣本中隨機選取一組輸入和目標樣本,返回步驟(3),直到網路全局誤差E小於預先設定的一個極小值,即網路收斂。如果學習次數大於預先設定的值,網路就無法收斂。
(12)學習結束。
可以看出,在以上學習步驟中,(8)、(9)步為網路誤差的「逆傳播過程」,(10)、(11)步則用於完成訓練和收斂過程。
通常,經過訓練的網路還應該進行性能測試。測試的方法就是選擇測試樣本向量,將其提供給網路,檢驗網路對其分類的正確性。測試樣本向量中應該包含今後網路應用過程中可能遇到的主要典型模式(宋大奇,2006)。這些樣本可以直接測取得到,也可以通過模擬得到,在樣本數據較少或者較難得到時,也可以通過對學習樣本加上適當的雜訊或按照一定規則插值得到。為了更好地驗證網路的泛化能力,一個良好的測試樣本集中不應該包含和學習樣本完全相同的模式(董軍,2007)。
⑵ 什麼是BP神經網路
BP演算法的基本思想是:學習過程由信號正向傳播與誤差的反向回傳兩個部分組成;正向傳播時,輸入樣本從輸入層傳入,經各隱層依次逐層處理,傳向輸出層,若輸出層輸出與期望不符,則將誤差作為調整信號逐層反向回傳,對神經元之間的連接權矩陣做出處理,使誤差減小。經反復學習,最終使誤差減小到可接受的范圍。具體步驟如下:
1、從訓練集中取出某一樣本,把信息輸入網路中。
2、通過各節點間的連接情況正向逐層處理後,得到神經網路的實際輸出。
3、計算網路實際輸出與期望輸出的誤差。
4、將誤差逐層反向回傳至之前各層,並按一定原則將誤差信號載入到連接權值上,使整個神經網路的連接權值向誤差減小的方向轉化。
5、対訓練集中每一個輸入—輸出樣本對重復以上步驟,直到整個訓練樣本集的誤差減小到符合要求為止。