BP神經(jīng)網(wǎng)絡的基本原理+很清楚.doc
《BP神經(jīng)網(wǎng)絡的基本原理+很清楚.doc》由會員分享,可在線閱讀,更多相關《BP神經(jīng)網(wǎng)絡的基本原理+很清楚.doc(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。
______________________________________________________________________________________________________________ 5.4 BP神經(jīng)網(wǎng)絡的基本原理 BP(Back Propagation)網(wǎng)絡是1986年由Rinehart和McClelland為首的科學家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ柧毜亩鄬忧梆伨W(wǎng)絡,是目前應用最廣泛的神經(jīng)網(wǎng)絡模型之一。BP網(wǎng)絡能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數(shù)學方程。它的學習規(guī)則是使用最速下降法,通過反向傳播來不斷調整網(wǎng)絡的權值和閾值,使網(wǎng)絡的誤差平方和最小。BP神經(jīng)網(wǎng)絡模型拓撲結構包括輸入層(input)、隱層(hide layer)和輸出層(output layer)(如圖5.2所示)。 5.4.1 BP神經(jīng)元 圖5.3給出了第j個基本BP神經(jīng)元(節(jié)點),它只模仿了生物神經(jīng)元所具有的三個最基本也是最重要的功能:加權、求和與轉移。其中x1、x2…xi…xn分別代表來自神經(jīng)元1、2…i…n的輸入;wj1、wj2…wji…wjn則分別表示神經(jīng)元1、2…i…n與第j個神經(jīng)元的連接強度,即權值;bj為閾值;f(·)為傳遞函數(shù);yj為第j個神經(jīng)元的輸出。 第j個神經(jīng)元的凈輸入值為: ???????????????? (5.12) 其中: ???? 若視,,即令及包括及,則 ?? 于是節(jié)點j的凈輸入可表示為: ???????????????????? (5.13) ??? 凈輸入通過傳遞函數(shù)(Transfer Function)f (·)后,便得到第j個神經(jīng)元的輸出: ?????????? (5.14) 式中f(·)是單調上升函數(shù),而且必須是有界函數(shù),因為細胞傳遞的信號不可能無限增加,必有一最大值。 5.4.2 BP網(wǎng)絡 BP算法由數(shù)據(jù)流的前向計算(正向傳播)和誤差信號的反向傳播兩個過程構成。正向傳播時,傳播方向為輸入層→隱層→輸出層,每層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元。若在輸出層得不到期望的輸出,則轉向誤差信號的反向傳播流程。通過這兩個過程的交替進行,在權向量空間執(zhí)行誤差函數(shù)梯度下降策略,動態(tài)迭代搜索一組權向量,使網(wǎng)絡誤差函數(shù)達到最小值,從而完成信息提取和記憶過程。 5.4.2.1 正向傳播 設 BP網(wǎng)絡的輸入層有n個節(jié)點,隱層有q個節(jié)點,輸出層有m個節(jié)點,輸入層與隱層之間的權值為,隱層與輸出層之間的權值為,如圖5.4所示。隱層的傳遞函數(shù)為f1(·),輸出層的傳遞函數(shù)為f2(·),則隱層節(jié)點的輸出為(將閾值寫入求和項中): ???????? k=1,2,……q????????????? (5.15) 輸出層節(jié)點的輸出為: ?????? j=1,2,……m????????????? (5.16) 至此B-P網(wǎng)絡就完成了n維空間向量對m維空間的近似映射。 5.4.2.2 反向傳播 1)???? 定義誤差函數(shù) 輸入個學習樣本,用來表示。第個樣本輸入到網(wǎng)絡后得到輸出(j=1,2,…m)。采用平方型誤差函數(shù),于是得到第p個樣本的誤差Ep: ???????????????????? (5.17) 式中:為期望輸出。 對于個樣本,全局誤差為: ??????????????? (5.18) 2)輸出層權值的變化 采用累計誤差BP算法調整,使全局誤差變小,即 ?????????? (5.19) 式中:—學習率 定義誤差信號為: ????????????????? (5.20) 其中第一項: ????????? (5.21) ??? 第二項: ???????????????????????? (5.22) 是輸出層傳遞函數(shù)的偏微分。 于是: ??????????????????? (5.23) 由鏈定理得: ????? (5.24) 于是輸出層各神經(jīng)元的權值調整公式為: ?????????????? (5.25) 3)隱層權值的變化 ????????? (5.26) 定義誤差信號為: ?????????????????? (5.27) 其中第一項: ????????? (5.28) 依鏈定理有: ????????????????? (5.29) ??? 第二項: ???????????????????????? (5.30) 是隱層傳遞函數(shù)的偏微分。 于是: ??????????????? (5.31) 由鏈定理得: ?? (5.32) 從而得到隱層各神經(jīng)元的權值調整公式為: ??????????? (5.33) 5.4.3 BP算法的改進 BP算法理論具有依據(jù)可靠、推導過程嚴謹、精度較高、通用性較好等優(yōu)點,但標準BP算法存在以下缺點:收斂速度緩慢;容易陷入局部極小值;難以確定隱層數(shù)和隱層節(jié)點個數(shù)。在實際應用中,BP算法很難勝任,因此出現(xiàn)了很多改進算法。 1)??? 利用動量法改進BP算法 標準BP算法實質上是一種簡單的最速下降靜態(tài)尋優(yōu)方法,在修正W(K)時,只按照第K步的負梯度方向進行修正,而沒有考慮到以前積累的經(jīng)驗,即以前時刻的梯度方向,從而常常使學習過程發(fā)生振蕩,收斂緩慢。動量法權值調整算法的具體做法是:將上一次權值調整量的一部分迭加到按本次誤差計算所得的權值調整量上,作為本次的實際權值調整量,即: ??????????????? (5.34) 其中:α為動量系數(shù),通常0<α<0.9;η—學習率,范圍在0.001~10之間。這種方法所加的動量因子實際上相當于阻尼項,它減小了學習過程中的振蕩趨勢,從而改善了收斂性。動量法降低了網(wǎng)絡對于誤差曲面局部細節(jié)的敏感性,有效的抑制了網(wǎng)絡陷入局部極小。 2)??? 自適應調整學習速率 標準BP算法收斂速度緩慢的一個重要原因是學習率選擇不當,學習率選得太小,收斂太慢;學習率選得太大,則有可能修正過頭,導致振蕩甚至發(fā)散??刹捎脠D5.5所示的自適應方法調整學習率。 調整的基本指導思想是:在學習收斂的情況下,增大η,以縮短學習時間;當η偏大致使不能收斂時,要及時減小η,直到收斂為止。 3)??? 動量-自適應學習速率調整算法 采用動量法時,BP算法可以找到更優(yōu)的解;采用自適應學習速率法時,BP算法可以縮短訓練時間。將以上兩種方法結合起來,就得到動量-自適應學習速率調整算法。 4)??? L-M學習規(guī)則 L-M(Levenberg-Marquardt)算法比前述幾種使用梯度下降法的BP算法要快得多,但對于復雜問題,這種方法需要相當大的存儲空間。L-M(Levenberg-Marquardt)優(yōu)化方法的權值調整率選為: ????????????????? (5.35) 其中:e—誤差向量;J—網(wǎng)絡誤差對權值導數(shù)的雅可比(Jacobian)矩陣;μ—標量,當μ很大時上式接近于梯度法,當μ很小時上式變成了Gauss-Newton法,在這種方法中,μ也是自適應調整的。 綜合考慮,擬采用L-M學習規(guī)則和動量法分別作為神經(jīng)網(wǎng)絡的訓練函數(shù)和學習函數(shù)。 5.5 BP神經(jīng)網(wǎng)絡的訓練策略及結果 本文借助于MATLAB神經(jīng)網(wǎng)絡工具箱來實現(xiàn)多層前饋BP網(wǎng)絡(Multi-layer feed-forward backpropagation network)的顏色空間轉換,免去了許多編寫計算機程序的煩惱。神經(jīng)網(wǎng)絡的實際輸出值與輸入值以及各權值和閾值有關,為了使實際輸出值與網(wǎng)絡期望輸出值相吻合,可用含有一定數(shù)量學習樣本的樣本集和相應期望輸出值的集合來訓練網(wǎng)絡。訓練時仍然使用本章5.2節(jié)中所述的實測樣本數(shù)據(jù)。 另外,目前尚未找到較好的網(wǎng)絡構造方法。確定神經(jīng)網(wǎng)絡的結構和權系數(shù)來描述給定的映射或逼近一個未知的映射,只能通過學習方式得到滿足要求的網(wǎng)絡模型。神經(jīng)網(wǎng)絡的學習可以理解為:對確定的網(wǎng)絡結構,尋找一組滿足要求的權系數(shù),使給定的誤差函數(shù)最小。設計多層前饋網(wǎng)絡時,主要側重試驗、探討多種模型方案,在實驗中改進,直到選取一個滿意方案為止,可按下列步驟進行:對任何實際問題先都只選用一個隱層;使用很少的隱層節(jié)點數(shù);不斷增加隱層節(jié)點數(shù),直到獲得滿意性能為止;否則再采用兩個隱層重復上述過程。 訓練過程實際上是根據(jù)目標值與網(wǎng)絡輸出值之間誤差的大小反復調整權值和閾值,直到此誤差達到預定值為止。 5.5.1 確定BP網(wǎng)絡的結構 確定了網(wǎng)絡層數(shù)、每層節(jié)點數(shù)、傳遞函數(shù)、初始權系數(shù)、學習算法等也就確定了BP網(wǎng)絡。確定這些選項時有一定的指導原則,但更多的是靠經(jīng)驗和試湊。 1)隱層數(shù)的確定: 1998年Robert Hecht-Nielson證明了對任何在閉區(qū)間內的連續(xù)函數(shù),都可以用一個隱層的BP網(wǎng)絡來逼近,因而一個三層的BP網(wǎng)絡可以完成任意的n維到m維的映照。因此我們從含有一個隱層的網(wǎng)絡開始進行訓練。 2) BP網(wǎng)絡常用傳遞函數(shù): BP網(wǎng)絡的傳遞函數(shù)有多種。Log-sigmoid型函數(shù)的輸入值可取任意值,輸出值在0和1之間;tan-sigmod型傳遞函數(shù)tansig的輸入值可取任意值,輸出值在-1到+1之間;線性傳遞函數(shù)purelin的輸入與輸出值可取任意值。BP網(wǎng)絡通常有一個或多個隱層,該層中的神經(jīng)元均采用sigmoid型傳遞函數(shù),輸出層的神經(jīng)元則采用線性傳遞函數(shù),整個網(wǎng)絡的輸出可以取任意值。各種傳遞函數(shù)如圖5.6所示。 只改變傳遞函數(shù)而其余參數(shù)均固定,用本章5.2節(jié)所述的樣本集訓練BP網(wǎng)絡時發(fā)現(xiàn),傳遞函數(shù)使用tansig函數(shù)時要比logsig函數(shù)的誤差小。于是在以后的訓練中隱層傳遞函數(shù)改用tansig函數(shù),輸出層傳遞函數(shù)仍選用purelin函數(shù)。 3) 每層節(jié)點數(shù)的確定: 使用神經(jīng)網(wǎng)絡的目的是實現(xiàn)攝像機輸出RGB顏色空間與CIE-XYZ色空間轉換,因此BP網(wǎng)絡的輸入層和輸出層的節(jié)點個數(shù)分別為3。下面主要介紹隱層節(jié)點數(shù)量的確定。 對于多層前饋網(wǎng)絡來說,隱層節(jié)點數(shù)的確定是成敗的關鍵。若數(shù)量太少,則網(wǎng)絡所能獲取的用以解決問題的信息太少;若數(shù)量太多,不僅增加訓練時間,更重要的是隱層節(jié)點過多還可能出現(xiàn)所謂“過渡吻合”(Overfitting)問題,即測試誤差增大導致泛化能力下降,因此合理選擇隱層節(jié)點數(shù)非常重要。關于隱層數(shù)及其節(jié)點數(shù)的選擇比較復雜,一般原則是:在能正確反映輸入輸出關系的基礎上,應選用較少的隱層節(jié)點數(shù),以使網(wǎng)絡結構盡量簡單。本論文中采用網(wǎng)絡結構增長型方法,即先設置較少的節(jié)點數(shù),對網(wǎng)絡進行訓練,并測試學習誤差,然后逐漸增加節(jié)點數(shù),直到學習誤差不再有明顯減少為止。 5.5.2 誤差的選取 在神經(jīng)網(wǎng)絡訓練過程中選擇均方誤差MSE較為合理,原因如下: ①? 標準BP算法中,誤差定義為: ????????????????? ????(5.36) 每個樣本作用時,都對權矩陣進行了一次修改。由于每次權矩陣的修改都沒有考慮權值修改后其它樣本作用的輸出誤差是否也減小,因此將導致迭代次數(shù)增加。 ②? 累計誤差BP算法的全局誤差定義為: ??????????????? (5.37) 這種算法是為了減小整個訓練集的全局誤差,而不針對某一特定樣本,因此如果作某種修改能使全局誤差減小,并不等于說每一個特定樣本的誤差也都能同時減小。它不能用來比較P和m不同的網(wǎng)絡性能。因為對于同一網(wǎng)絡來說,P越大,E也越大; P值相同,m越大E也越大。 ③? 均方誤差MSE: ????????????????? (5.38) 其中:—輸出節(jié)點的個數(shù),—訓練樣本數(shù)目,—網(wǎng)絡期望輸出值,—網(wǎng)絡實際輸出值。均方誤差克服了上述兩種算法的缺點,所以選用均方誤差算法較合理。 5.5.3 訓練結果 訓練一個單隱層的三層BP網(wǎng)絡,根據(jù)如下經(jīng)驗公式選擇隱層節(jié)點數(shù)[125]: ???????????????????????? (5.39) 式中:n為輸入節(jié)點個數(shù),m為輸出節(jié)點個數(shù),a為1到10之間的常數(shù)。針對本論文n1取值范圍為3~13。訓練結果如表5.1所示。 表5.1?? 隱層節(jié)點數(shù)與誤差的關系 隱層神經(jīng)元個數(shù) 訓練誤差 測試誤差 3 1.25661 1.1275 4 0.797746 0.8232 5 0.631849 0.7278 6 0.570214 0.6707 7 0.552873 0.6895 8 0.445118 0.6575 9 0.385578 0.6497 10 0.259624 0.4555 11 0.185749 0.6644 12 0.183878 0.48 13 0.168587 0.6671 由上表可以看出: ①????????????? 增加隱層節(jié)點數(shù)可以減少訓練誤差,但超過10以后測試誤差產(chǎn)生波動,即泛化能力發(fā)生變化。綜合比較隱層節(jié)點數(shù)為10與12的訓練誤差和測試誤差,決定隱層節(jié)點數(shù)選用12。 ②????????????? 訓練誤差和測試誤差都很大,而且收斂速度極慢(訓練過程如圖5.7所示),這個問題可以通過對輸出量進行歸一化來解決。 根據(jù)Sigmoid型傳遞函數(shù)輸入和輸出的范圍,對輸入變量不進行歸一化處理,只對輸出變量進行歸一化,這是因為在輸出數(shù)據(jù)要求歸一化的同時,對輸入數(shù)據(jù)也進行歸一化的話,權值的可解釋性就更差了。目標值按下式進行變化: ?????????????????? (5.40) 使目標值落在0.05~0.95之間,這樣靠近數(shù)據(jù)變化區(qū)間端點的網(wǎng)絡輸出值就有一波動范圍,網(wǎng)絡的性能較好。用新生成的訓練樣本與測試樣本對隱層節(jié)點數(shù)為12的網(wǎng)絡進行訓練,得到的訓練誤差為9.89028×10-5,測試誤差為1.9899×10-4,達到了預定的目標(訓練過程如圖5.8所示)。 5.6 最終訓練后的神經(jīng)網(wǎng)絡結構 采用三層BP網(wǎng)絡實現(xiàn)攝像機輸出RGB顏色空間與CIEXYZ色空間轉換,其中隱層含有12個節(jié)點,傳遞函數(shù)采用tansig函數(shù);輸出層傳遞函數(shù)選用purelin函數(shù)。經(jīng)過測試后結果滿意,可以認為該神經(jīng)網(wǎng)絡可以用來實現(xiàn)這個關系映射。網(wǎng)絡的結構如圖5.9所示: 得到的BP神經(jīng)網(wǎng)絡的權值和閾值為: ???????? ??? ????? 5.7 本章小結 1)?????? 定量地分析了用線性關系轉換攝像機RGB空間到CIE-XYZ空間數(shù)據(jù)后產(chǎn)生的均方誤差,表明CCD攝像機與標準觀察者之間有比較明顯的差別,也就是說RGB與CIE-XYZ間的轉換是非線性的。 2)?????? 采用MATLAB 中神經(jīng)網(wǎng)絡工具箱實現(xiàn)多層前饋BP網(wǎng)絡的RGB到CIEXYZ顏色空間轉換,用經(jīng)過歸一化的訓練樣本與測試樣本對隱層節(jié)點數(shù)為12的三層網(wǎng)絡進行訓練,得到的訓練誤差為9.89028×10-5,測試誤差為1.9899×10-4,結果表明經(jīng)過訓練的多層前饋BP網(wǎng)絡可以滿足RGB空間向CIEXYZ顏色空間轉換要求,達到了預定目標。 3)?????? 確定了用于RGB和XYZ顏色空間轉換的BP網(wǎng)絡結構,并求出了該神經(jīng)網(wǎng)絡的權值和閾值。使用該網(wǎng)絡可以定量表達食品顏色,定量比較高壓加工食品顏色的變化,可以使食品顏色測定和控制實現(xiàn)定量化,而不再是主觀性很強的模糊描述。 -可編輯修改-- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- BP 神經(jīng)網(wǎng)絡 基本原理 清楚
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
相關資源
更多
正為您匹配相似的精品文檔
相關搜索
鏈接地址:http://italysoccerbets.com/p-1139027.html