1. 程式人生 > >BP神經網路基本介紹

BP神經網路基本介紹

1。BP網路的啟用函式必須是處處可微的。logsin(0~1);tansig(-1~1);purelin(負無窮到正無窮,一般用作輸出層)
2。S型啟用函式所劃分的區域是一個非線性的超平面組成的區域,它是比較柔和、光滑的任意介面,因而它的分類比線性劃分精確、合理,這種網路的容錯性較好。另一個重要特點是由於啟用函式是連續可微的,它可以嚴格利用梯度法進行推算。
3。一般情況下BP網路結構均是在隱含層採用S型啟用函式,而輸出層採用線性啟用函式。 
4。 動手編寫網路的程式設計之前,需要確定神經網路的結構,其中包括以下內容:網路的層數、每層的神經元數、每層的啟用函式。
5。trainbp.m提供了兩層和三層的BP訓練程式
,使用者可以根據程式來選取不同的引數
6。神經網路具有泛化效能,但是該效能只能對被訓練的輸入/輸出對在最大值範圍內的資料有效,即網路具有內插植特性,不具有外插植特性,超出最大訓練的輸入必將產生大的輸出誤差。
7。理論上已經證明:具有偏差和至少一個S型隱含層加上一個線性輸出層的網路,能夠逼近任何有理函式。
8。隱含層層數的經驗選擇:對於線性問題一般可以採用感知器或自適應網路來解決,而不採用非線性網路,因為單層不能發揮出非線性啟用函式的特長;非線性問題,一般採用兩層或兩層以上的隱含層,但是誤差精度的提高實際上也可以通過增加隱含層中的神經元數目獲得,其訓練效果也比增加層數更容易觀察和調整,所以一般情況下,應優先考慮增加隱含層中的神經元數。

9。隱含層的神經元數的經驗確定:通過對不同神經元數進行訓練對比,然後適當的增加一點餘量。
10。初始權值的經驗選取:威得羅等人分析了兩層網路是如何對一個函式進行訓練後。提出一種選定初值的策略:選擇權值的量級為S1的r次方,其中S1為第一層神經元數目。利用他們的方法可以在較少的訓練次數下得到滿意的訓練結果。在Matlab工具箱中可以採用nwlog.m和nwtan.m來初始化隱含層權值W1和B1。其方法僅需要使用在第一層隱含層的初始值的選取上,後面層的初始值仍然採用(-1,1)之間的隨機數。
11。學習速率的經驗選擇:一般情況下傾向於選取較小的學習速率以保證系統的穩定性,學習速率的選取範圍在0.01~0.8之間。

12。期望誤差的選取:一般情況下,作為對比,可以同時對兩個不同的期望誤差值的網路進行訓練,最後通過綜合因素的考慮來確定其中一個網路。
13。採用附加動量法使反向傳播減少了網路在誤差表面陷入低谷的可能性有助於減少訓練時間。Matlab工具箱中提供的trainbpm.m可以訓練一層直至三層的帶有附加動量因子的反向傳播網路。
14。太大的學習速率導致學習的不穩定,太小值又導致極長的訓練時間。自適應學習速率通過保證穩定訓練的前提下,達到了合理的高速率,可以減少訓練時間。Matlab工具箱中帶有自適應學習速率進行反向傳播訓練的函式為trainbpa.m,它可以訓練至三層網路。
15。可以將動量法和自適應學習速率結合起來利用兩方面的優點,這個技術已經編入函式trainbpx.m中