BP神經網絡的基本原理+很清楚參考模板_第1頁
BP神經網絡的基本原理+很清楚參考模板_第2頁
BP神經網絡的基本原理+很清楚參考模板_第3頁
BP神經網絡的基本原理+很清楚參考模板_第4頁
BP神經網絡的基本原理+很清楚參考模板_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、5.4 BP神經網絡的基本原理BP(Back Propagation)網絡是1986年由Rinehart和McClelland為首的科學家小組提出,是一種按誤差逆傳播算法訓練的多層前饋網絡,是目前應用最廣泛的神經網絡模型之一。BP網絡能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網絡的權值和閾值,使網絡的誤差平方和最小。BP神經網絡模型拓撲結構包括輸入層(input)、隱層(hide layer)和輸出層(output layer)(如圖5.2所示)。5.4.1 BP神經元圖5.3給出了第j個基本BP神經

2、元(節點),它只模仿了生物神經元所具有的三個最基本也是最重要的功能:加權、求和與轉移。其中x1、x2xixn分別代表來自神經元1、2in的輸入;wj1、wj2wjiwjn則分別表示神經元1、2in與第j個神經元的連接強度,即權值;bj為閾值;f()為傳遞函數;yj為第j個神經元的輸出。第j個神經元的凈輸入值為: (5.12)其中: 1 / 15若視,即令及包括及,則 于是節點j的凈輸入可表示為: (5.13) 凈輸入通過傳遞函數(Transfer Function)f ()后,便得到第j個神經元的輸出: (5.14)式中f()是單調上升函數,而且必須是有界函數,因為細胞傳遞的信號不可能無限增加

3、,必有一最大值。5.4.2 BP網絡BP算法由數據流的前向計算(正向傳播)和誤差信號的反向傳播兩個過程構成。正向傳播時,傳播方向為輸入層隱層輸出層,每層神經元的狀態只影響下一層神經元。若在輸出層得不到期望的輸出,則轉向誤差信號的反向傳播流程。通過這兩個過程的交替進行,在權向量空間執行誤差函數梯度下降策略,動態迭代搜索一組權向量,使網絡誤差函數達到最小值,從而完成信息提取和記憶過程。5.4.2.1 正向傳播設 BP網絡的輸入層有n個節點,隱層有q個節點,輸出層有m個節點,輸入層與隱層之間的權值為,隱層與輸出層之間的權值為,如圖5.4所示。隱層的傳遞函數為f1(),輸出層的傳遞函數為f2(),則隱

4、層節點的輸出為(將閾值寫入求和項中): k=1,2,q (5.15)輸出層節點的輸出為: j=1,2,m (5.16)至此B-P網絡就完成了n維空間向量對m維空間的近似映射。5.4.2.2 反向傳播1) 定義誤差函數輸入個學習樣本,用來表示。第個樣本輸入到網絡后得到輸出(j=1,2,m)。采用平方型誤差函數,于是得到第p個樣本的誤差Ep: (5.17)式中:為期望輸出。對于個樣本,全局誤差為: (5.18)2)輸出層權值的變化采用累計誤差BP算法調整,使全局誤差變小,即 (5.19)式中:學習率定義誤差信號為: (5.20)其中第一項: (5.21) 第二項: (5.22)是輸出層傳遞函數的偏

5、微分。于是: (5.23)由鏈定理得: (5.24)于是輸出層各神經元的權值調整公式為: (5.25)3)隱層權值的變化 (5.26)定義誤差信號為: (5.27)其中第一項: (5.28)依鏈定理有: (5.29) 第二項: (5.30)是隱層傳遞函數的偏微分。于是: (5.31)由鏈定理得: (5.32)從而得到隱層各神經元的權值調整公式為: (5.33)5.4.3 BP算法的改進BP算法理論具有依據可靠、推導過程嚴謹、精度較高、通用性較好等優點,但標準BP算法存在以下缺點:收斂速度緩慢;容易陷入局部極小值;難以確定隱層數和隱層節點個數。在實際應用中,BP算法很難勝任,因此出現了很多改進算

6、法。1) 利用動量法改進BP算法標準BP算法實質上是一種簡單的最速下降靜態尋優方法,在修正W(K)時,只按照第K步的負梯度方向進行修正,而沒有考慮到以前積累的經驗,即以前時刻的梯度方向,從而常常使學習過程發生振蕩,收斂緩慢。動量法權值調整算法的具體做法是:將上一次權值調整量的一部分迭加到按本次誤差計算所得的權值調整量上,作為本次的實際權值調整量,即: (5.34)其中:為動量系數,通常00.9;學習率,范圍在0.00110之間。這種方法所加的動量因子實際上相當于阻尼項,它減小了學習過程中的振蕩趨勢,從而改善了收斂性。動量法降低了網絡對于誤差曲面局部細節的敏感性,有效的抑制了網絡陷入局部極小。2

7、) 自適應調整學習速率標準BP算法收斂速度緩慢的一個重要原因是學習率選擇不當,學習率選得太小,收斂太慢;學習率選得太大,則有可能修正過頭,導致振蕩甚至發散。可采用圖5.5所示的自適應方法調整學習率。調整的基本指導思想是:在學習收斂的情況下,增大,以縮短學習時間;當偏大致使不能收斂時,要及時減小,直到收斂為止。3) 動量-自適應學習速率調整算法采用動量法時,BP算法可以找到更優的解;采用自適應學習速率法時,BP算法可以縮短訓練時間。將以上兩種方法結合起來,就得到動量-自適應學習速率調整算法。4) L-M學習規則L-M(Levenberg-Marquardt)算法比前述幾種使用梯度下降法的BP算法

8、要快得多,但對于復雜問題,這種方法需要相當大的存儲空間。L-M(Levenberg-Marquardt)優化方法的權值調整率選為: (5.35)其中:e誤差向量;J網絡誤差對權值導數的雅可比(Jacobian)矩陣;標量,當很大時上式接近于梯度法,當很小時上式變成了Gauss-Newton法,在這種方法中,也是自適應調整的。綜合考慮,擬采用L-M學習規則和動量法分別作為神經網絡的訓練函數和學習函數。5.5 BP神經網絡的訓練策略及結果本文借助于MATLAB神經網絡工具箱來實現多層前饋BP網絡(Multi-layer feed-forward backpropagation network)的顏

9、色空間轉換,免去了許多編寫計算機程序的煩惱。神經網絡的實際輸出值與輸入值以及各權值和閾值有關,為了使實際輸出值與網絡期望輸出值相吻合,可用含有一定數量學習樣本的樣本集和相應期望輸出值的集合來訓練網絡。訓練時仍然使用本章5.2節中所述的實測樣本數據。另外,目前尚未找到較好的網絡構造方法。確定神經網絡的結構和權系數來描述給定的映射或逼近一個未知的映射,只能通過學習方式得到滿足要求的網絡模型。神經網絡的學習可以理解為:對確定的網絡結構,尋找一組滿足要求的權系數,使給定的誤差函數最小。設計多層前饋網絡時,主要側重試驗、探討多種模型方案,在實驗中改進,直到選取一個滿意方案為止,可按下列步驟進行:對任何實

10、際問題先都只選用一個隱層;使用很少的隱層節點數;不斷增加隱層節點數,直到獲得滿意性能為止;否則再采用兩個隱層重復上述過程。訓練過程實際上是根據目標值與網絡輸出值之間誤差的大小反復調整權值和閾值,直到此誤差達到預定值為止。5.5.1 確定BP網絡的結構確定了網絡層數、每層節點數、傳遞函數、初始權系數、學習算法等也就確定了BP網絡。確定這些選項時有一定的指導原則,但更多的是靠經驗和試湊。1)隱層數的確定:1998年Robert Hecht-Nielson證明了對任何在閉區間內的連續函數,都可以用一個隱層的BP網絡來逼近,因而一個三層的BP網絡可以完成任意的n維到m維的映照。因此我們從含有一個隱層的

11、網絡開始進行訓練。2) BP網絡常用傳遞函數:BP網絡的傳遞函數有多種。Log-sigmoid型函數的輸入值可取任意值,輸出值在0和1之間;tan-sigmod型傳遞函數tansig的輸入值可取任意值,輸出值在-1到+1之間;線性傳遞函數purelin的輸入與輸出值可取任意值。BP網絡通常有一個或多個隱層,該層中的神經元均采用sigmoid型傳遞函數,輸出層的神經元則采用線性傳遞函數,整個網絡的輸出可以取任意值。各種傳遞函數如圖5.6所示。只改變傳遞函數而其余參數均固定,用本章5.2節所述的樣本集訓練BP網絡時發現,傳遞函數使用tansig函數時要比logsig函數的誤差小。于是在以后的訓練中

12、隱層傳遞函數改用tansig函數,輸出層傳遞函數仍選用purelin函數。3) 每層節點數的確定:使用神經網絡的目的是實現攝像機輸出RGB顏色空間與CIE-XYZ色空間轉換,因此BP網絡的輸入層和輸出層的節點個數分別為3。下面主要介紹隱層節點數量的確定。對于多層前饋網絡來說,隱層節點數的確定是成敗的關鍵。若數量太少,則網絡所能獲取的用以解決問題的信息太少;若數量太多,不僅增加訓練時間,更重要的是隱層節點過多還可能出現所謂“過渡吻合”(Overfitting)問題,即測試誤差增大導致泛化能力下降,因此合理選擇隱層節點數非常重要。關于隱層數及其節點數的選擇比較復雜,一般原則是:在能正確反映輸入輸出

13、關系的基礎上,應選用較少的隱層節點數,以使網絡結構盡量簡單。本論文中采用網絡結構增長型方法,即先設置較少的節點數,對網絡進行訓練,并測試學習誤差,然后逐漸增加節點數,直到學習誤差不再有明顯減少為止。5.5.2 誤差的選取在神經網絡訓練過程中選擇均方誤差MSE較為合理,原因如下: 標準BP算法中,誤差定義為: (5.36)每個樣本作用時,都對權矩陣進行了一次修改。由于每次權矩陣的修改都沒有考慮權值修改后其它樣本作用的輸出誤差是否也減小,因此將導致迭代次數增加。 累計誤差BP算法的全局誤差定義為: (5.37)這種算法是為了減小整個訓練集的全局誤差,而不針對某一特定樣本,因此如果作某種修改能使全局

14、誤差減小,并不等于說每一個特定樣本的誤差也都能同時減小。它不能用來比較P和m不同的網絡性能。因為對于同一網絡來說,P越大,E也越大; P值相同,m越大E也越大。 均方誤差MSE: (5.38)其中:輸出節點的個數,訓練樣本數目,網絡期望輸出值,網絡實際輸出值。均方誤差克服了上述兩種算法的缺點,所以選用均方誤差算法較合理。5.5.3 訓練結果訓練一個單隱層的三層BP網絡,根據如下經驗公式選擇隱層節點數125: (5.39)式中:n為輸入節點個數,m為輸出節點個數,a為1到10之間的常數。針對本論文n1取值范圍為313。訓練結果如表5.1所示。表5.1 隱層節點數與誤差的關系隱層神經元個數訓練誤差

15、測試誤差31.256611.127540.7977460.823250.6318490.727860.5702140.670770.5528730.689580.4451180.657590.3855780.6497100.2596240.4555110.1857490.6644120.1838780.48130.1685870.6671由上表可以看出: 增加隱層節點數可以減少訓練誤差,但超過10以后測試誤差產生波動,即泛化能力發生變化。綜合比較隱層節點數為10與12的訓練誤差和測試誤差,決定隱層節點數選用12。 訓練誤差和測試誤差都很大,而且收斂速度極慢(訓練過程如圖5.7所示),這個問題可

16、以通過對輸出量進行歸一化來解決。根據Sigmoid型傳遞函數輸入和輸出的范圍,對輸入變量不進行歸一化處理,只對輸出變量進行歸一化,這是因為在輸出數據要求歸一化的同時,對輸入數據也進行歸一化的話,權值的可解釋性就更差了。目標值按下式進行變化: (5.40)使目標值落在0.050.95之間,這樣靠近數據變化區間端點的網絡輸出值就有一波動范圍,網絡的性能較好。用新生成的訓練樣本與測試樣本對隱層節點數為12的網絡進行訓練,得到的訓練誤差為9.8902810-5,測試誤差為1.989910-4,達到了預定的目標(訓練過程如圖5.8所示)。5.6 最終訓練后的神經網絡結構采用三層BP網絡實現攝像機輸出RGB顏色空間與CIEXYZ色空間轉換,其中隱層含有12個節點,傳遞函數采用tansig函數;輸出層傳遞函數選用purelin函數。經過測試后結果滿意,可以認為該神經網絡可以用來實現這個關系映射。網絡的結構如圖5.9所示:得到的BP神經網絡的權值和閾值為: 5.7 本章小結1) 定量地分析了用線性關系轉換攝像機RGB空間到CIE-XYZ空間數據后產生的均方誤差,表明CCD攝像機與標準觀察者之間有比較明顯的差別,也就是說RGB與CIE-XYZ間的轉換是非線性的。2) 采用MATLAB 中神

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論