(完整word版)BP神經(jīng)網(wǎng)絡(luò)的基本原理_一看就懂_第1頁
(完整word版)BP神經(jīng)網(wǎng)絡(luò)的基本原理_一看就懂_第2頁
(完整word版)BP神經(jīng)網(wǎng)絡(luò)的基本原理_一看就懂_第3頁
(完整word版)BP神經(jīng)網(wǎng)絡(luò)的基本原理_一看就懂_第4頁
(完整word版)BP神經(jīng)網(wǎng)絡(luò)的基本原理_一看就懂_第5頁
免費預(yù)覽已結(jié)束,剩余15頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、5.4 BP 神經(jīng)網(wǎng)絡(luò)的基本原理BP(Back Propagation )網(wǎng)絡(luò)是 1986 年由 Rinehart 和 McClelland 為首的科學(xué)家小組提出, 是一種按誤差逆?zhèn)鞑ニ?法訓(xùn)練的多層前饋網(wǎng)絡(luò), 是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型 之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入 - 輸出模式映射關(guān)系, 而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。 它的學(xué)習(xí)規(guī) 則是使用最速下降法, 通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值 和閾值,使網(wǎng)絡(luò)的誤差平方和最小。 BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié) 構(gòu)包括輸入層( input )、隱層 (hide layer) 和輸出層 (output layer) (如圖 5.2 所示

2、)。5.4.1 BP 神經(jīng)元 圖 5.3 給出了第 j 個基本 BP 神經(jīng)元(節(jié)點),它只模仿了生物神經(jīng)元所具有的三個最基本 也是最重要的功能: 加權(quán)、求和與轉(zhuǎn)移。其中 x1、x2xixn分別代表來自神經(jīng)元 1、2i n 的輸入; wj1 、wj2 wji wjn則分別表示神經(jīng)元 1、2in與第 j 個神經(jīng)元的連接強(qiáng)度,即權(quán) 值; bj為閾值;f( )為傳遞函數(shù); yj為第j 個神經(jīng)元的輸出。第 j 個神經(jīng)元的凈輸入值 為:( 5.12 )其中:若視 , ,即令 及 包括 及 ,則于是節(jié)點 j 的凈輸入 可表示為:( 5.13 )凈輸入 通過傳遞函數(shù)( Transfer Function )f

3、 ( ) 后,便得到第 j 個神經(jīng)元的輸出 :( 5.14 )式中 f( ) 是單調(diào)上升函數(shù),而且必須是有界函數(shù),因為細(xì)胞傳遞的信號不可能無限增加, 必有一最大值。5.4.2 BP 網(wǎng)絡(luò)BP算法由數(shù)據(jù)流的前向計算(正向傳播)和誤差信號的反向傳播兩個過程構(gòu)成。正向傳播 時,傳播方向為輸入層隱層輸出層,每層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元。 若在輸 出層得不到期望的輸出,則轉(zhuǎn)向誤差信號的反向傳播流程 。通過這兩個過程的交替進(jìn)行, 在權(quán)向量空間執(zhí)行誤差函數(shù)梯度下降策略 ,動態(tài)迭代搜索一組權(quán)向量,使網(wǎng)絡(luò)誤差函數(shù)達(dá) 到最小值,從而完成信息提取和記憶過程。設(shè) BP 網(wǎng)絡(luò)的輸入層有 n 個節(jié)點,隱層有 q 個

4、節(jié)點,輸出層有 m個節(jié)點,輸入層與隱層之間 的權(quán)值為 ,隱層與輸出層之間的權(quán)值為 ,如圖 5.4 所示。隱層的傳遞函數(shù)為 f 1(), 輸出層的傳遞函數(shù)為 f 2( ) ,則隱層節(jié)點的輸出為(將閾值寫入求和項中):k=1,2,q5.15)5.16)輸出層節(jié)點的輸出為:j=1,2, m至此 B-P網(wǎng)絡(luò)就完成了 n 維空間向量對 m維空間的近似映射。1) 定義誤差函數(shù)輸入 個學(xué)習(xí)樣本,用 來表示。第 個樣本輸入到網(wǎng)絡(luò)后得到輸出 (j=1,2, m)。采用平方型誤差函數(shù),于是得到第 p 個樣本的誤差 Ep:5.19)5.17)式中: 為期望輸出。5.18)對于 個樣本,全局誤差為:2) 輸出層權(quán)值的

5、變化采用累計誤差 BP算法調(diào)整 ,使全局誤差 變小, 即式中: 學(xué)習(xí)率 定義誤差信號 為:5.21)5.21)其中第一項:5.22)第二項:是輸出層傳遞函數(shù)的偏微分。于是:5.26)由鏈定理得:5.23)5.24)5.25)于是輸出層各神經(jīng)元的權(quán)值調(diào)整公式為:3)隱層權(quán)值的變化定義誤差信號為:5.28)其中第一項:5.28)5.29)第二項:5.30)是隱層傳遞函數(shù)的偏微分。于是:5.31)由鏈定理得:5.32)從而得到隱層各神經(jīng)元的權(quán)值調(diào)整公式為:5.4.3 BP 算法的改進(jìn)5.33)1) 利用動量法改進(jìn) BP算法5.34)BP算法理論具有依據(jù)可靠、 推導(dǎo)過程嚴(yán)謹(jǐn)、 精度較高、 通用性較 好

6、等優(yōu)點,但 標(biāo)準(zhǔn) BP算法存在以下缺點:收斂速度緩慢;容易 陷入局部極小值;難以確定隱層數(shù)和隱層節(jié)點個數(shù)。 在實際應(yīng)用 中, BP算法很難勝任,因此出現(xiàn)了很多改進(jìn)算法。標(biāo)準(zhǔn) BP算法實質(zhì)上是一種簡單的最速下降靜態(tài)尋優(yōu)方法, 在修正 W(K)時,只按照第 K 步的負(fù)梯度方向進(jìn)行修正 ,而沒有考慮到以前積累的經(jīng)驗,即以前 時刻的梯度方向,從而常常使學(xué)習(xí)過程發(fā)生振蕩,收斂緩慢。動量法權(quán)值調(diào)整算法的具體 做法是:將上一次權(quán)值調(diào)整量的一部分迭加到按本次誤差計算所得的權(quán)值調(diào)整量上,作為 本次的實際權(quán)值調(diào)整量,即:其中: 為動量系數(shù),通常 00.9 ;學(xué)習(xí)率,范圍在 0.001 10之間。這種方法 所加的動

7、量因子實際上相當(dāng)于阻尼項,它減小了學(xué)習(xí)過程中的振蕩趨勢,從而改善了收斂 性。動量法降低了網(wǎng)絡(luò)對于誤差曲面局部細(xì)節(jié)的敏感性,有效的抑制了網(wǎng)絡(luò)陷入局部極小。2) 自適應(yīng)調(diào)整學(xué)習(xí)速率 標(biāo)準(zhǔn) BP算法收斂速度緩慢的一個重要原因是學(xué)習(xí)率選擇不當(dāng), 學(xué)習(xí)率選得太小, 收斂太慢; 學(xué)習(xí)率選得太大,則有可能修正過頭,導(dǎo)致振蕩甚至發(fā)散??刹捎脠D 5.5 所示的自適應(yīng)方 法調(diào)整學(xué)習(xí)率。調(diào)整的基本指導(dǎo)思想是:在學(xué)習(xí)收斂的情況下,增大 ,以縮短學(xué)習(xí)時間;當(dāng) 偏大致使不能收斂時,要及時減小 ,直到收斂為止。3) 動量 - 自適應(yīng)學(xué)習(xí)速率調(diào)整算法采用動量法時, BP算法可以找到更優(yōu)的解;采用自適應(yīng)學(xué)習(xí)速率法時, BP算法

8、可以縮短訓(xùn) 練時間。將以上兩種方法結(jié)合起來,就得到動量 - 自適應(yīng)學(xué)習(xí)速率調(diào)整算法。4) L-M 學(xué)習(xí)規(guī)則L-M(Levenberg-Marquardt )算法比前述幾種使用梯度下降法的 BP算法要快得多,但對于 復(fù)雜問題,這種方法需要相當(dāng)大的存儲空間。 L-M(Levenberg-Marquardt) 優(yōu)化方法的權(quán)值 調(diào)整率選為 :5.36)其中: e誤差向量; J網(wǎng)絡(luò)誤差對權(quán)值導(dǎo)數(shù)的雅可比( Jacobian )矩陣; 標(biāo)量,當(dāng) 很大時上式接近于梯度法,當(dāng) 很小時上式變成了 Gauss-Newton法,在這種方法中, 也是自適應(yīng)調(diào)整的。綜合考慮,擬采用 L-M 學(xué)習(xí)規(guī)則和動量法分別作為神經(jīng)

9、網(wǎng)絡(luò)的訓(xùn)練函數(shù)和學(xué)習(xí)函數(shù)。5.5 BP 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練策略及結(jié)果本文借助于 MATLAB神經(jīng)網(wǎng)絡(luò)工具箱來實現(xiàn)多層前饋 BP網(wǎng)絡(luò)( Multi-layer feed-forward backpropagation network )的顏色空間轉(zhuǎn)換,免去了許多編寫計算機(jī)程序的煩惱。神經(jīng)網(wǎng) 絡(luò)的實際輸出值與輸入值以及各權(quán)值和閾值有關(guān),為了使實際輸出值與網(wǎng)絡(luò)期望輸出值相 吻合,可用含有一定數(shù)量學(xué)習(xí)樣本的樣本集和相應(yīng)期望輸出值的集合來訓(xùn)練網(wǎng)絡(luò)。訓(xùn)練時 仍然使用本章 5.2 節(jié)中所述的實測樣本數(shù)據(jù)。另外,目前尚未找到較好的網(wǎng)絡(luò)構(gòu)造方法。確定神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和權(quán)系數(shù)來描述給定的映 射或逼近一個未知的映射,只能

10、通過學(xué)習(xí)方式得到滿足要求的網(wǎng)絡(luò)模型。神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí) 可以理解為:對確定的網(wǎng)絡(luò)結(jié)構(gòu),尋找一組滿足要求的權(quán)系數(shù),使給定的誤差函數(shù)最小。 設(shè)計多層前饋網(wǎng)絡(luò)時,主要側(cè)重試驗、探討多種模型方案,在實驗中改進(jìn),直到選取一個 滿意方案為止,可按下列步驟進(jìn)行:對任何實際問題先都只選用一個隱層;使用很少的隱 層節(jié)點數(shù);不斷增加隱層節(jié)點數(shù),直到獲得滿意性能為止;否則再采用兩個隱層重復(fù)上述 過程。訓(xùn)練過程實際上是根據(jù)目標(biāo)值與網(wǎng)絡(luò)輸出值之間誤差的大小反復(fù)調(diào)整權(quán)值和閾值,直到此 誤差達(dá)到預(yù)定值為止。5.5.1 確定 BP網(wǎng)絡(luò)的結(jié)構(gòu)確定了網(wǎng)絡(luò)層數(shù)、每層節(jié)點數(shù)、傳遞函數(shù)、初始權(quán)系數(shù)、學(xué)習(xí)算法等也就確定了BP網(wǎng)絡(luò)。確定這些選

11、項時有一定的指導(dǎo)原則,但更多的是靠經(jīng)驗和試湊。1)隱層數(shù)的確定:1998 年 Robert Hecht-Nielson 證明了對任何在閉區(qū)間內(nèi)的連續(xù)函數(shù), 都可以用一個隱層的 BP網(wǎng)絡(luò)來逼近,因而一個三層的 BP網(wǎng)絡(luò)可以完成任意的 n維到 m維的映照。因此我們從含 有一個隱層的網(wǎng)絡(luò)開始進(jìn)行訓(xùn)練。2) BP 網(wǎng)絡(luò)常用傳遞函數(shù)BP網(wǎng)絡(luò)的傳遞函數(shù)有多種。 Log-sigmoid 型函數(shù)的輸入值可取任意值,輸出值在 0 和 1 之 間; tan-sigmod 型傳遞函數(shù) tansig 的輸入值可取任意值,輸出值在 -1 到+1 之間;線性傳 遞函數(shù) purelin 的輸入與輸出值可取任意值。 BP網(wǎng)絡(luò)

12、通常有一個或多個隱層,該層中的神 經(jīng)元均采用 sigmoid 型傳遞函數(shù),輸出層的神經(jīng)元則采用線性傳遞函數(shù),整個網(wǎng)絡(luò)的輸出 可以取任意值。各種傳遞函數(shù)如圖 5.6 所示。只改變傳遞函數(shù)而其余參數(shù)均固定,用本章 5.2 節(jié)所述的樣本集訓(xùn)練 BP網(wǎng)絡(luò)時發(fā)現(xiàn),傳遞 函數(shù)使用 tansig 函數(shù)時要比 logsig 函數(shù)的誤差小。于是在以后的訓(xùn)練中隱層傳遞函數(shù)改 用 tansig 函數(shù),輸出層傳遞函數(shù)仍選用 purelin 函數(shù)。3) 每層節(jié)點數(shù)的確定: 使用神經(jīng)網(wǎng)絡(luò)的目的是實現(xiàn)攝像機(jī)輸出 RGB顏色空間與 CIE-XYZ色空間轉(zhuǎn)換, 因此 BP網(wǎng)絡(luò) 的輸入層和輸出層的節(jié)點個數(shù)分別為 3。下面主要介紹

13、隱層節(jié)點數(shù)量的確定。對于多層前饋網(wǎng)絡(luò)來說,隱層節(jié)點數(shù)的確定是成敗的關(guān)鍵。若數(shù)量太少,則網(wǎng)絡(luò)所能獲取 的用以解決問題的信息太少;若數(shù)量太多,不僅增加訓(xùn)練時間,更重要的是隱層節(jié)點過多 還可能出現(xiàn)所謂“過渡吻合”( Overfitting )問題,即測試誤差增大導(dǎo)致泛化能力下降, 因此合理選擇隱層節(jié)點數(shù)非常重要。關(guān)于 隱層數(shù)及其節(jié)點數(shù)的選擇 比較復(fù)雜, 一般原則是: 在能正確反映輸入輸出關(guān)系的基礎(chǔ)上,應(yīng)選用較少的隱層節(jié)點數(shù),以使網(wǎng)絡(luò)結(jié)構(gòu)盡量簡單。本論文中采用網(wǎng)絡(luò)結(jié)構(gòu)增長型方法,即先設(shè)置較少的節(jié)點數(shù),對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,并測試學(xué) 習(xí)誤差,然后逐漸增加節(jié)點數(shù),直到學(xué)習(xí)誤差不再有明顯減少為止。5.5.2 誤差

14、的選取 在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中選擇均方誤差 MSE較為合理,原因如下: 標(biāo)準(zhǔn) BP 算法中,誤差定義為:5.37)每個樣本作用時,都對權(quán)矩陣進(jìn)行了一次修改。由于每次權(quán)矩陣的修改都沒有考慮權(quán)值修 改后其它樣本作用的輸出誤差是否也減小,因此將導(dǎo)致迭代次數(shù)增加。 累計誤差 BP 算法的全局誤差定義為:( 5.37 ) 這種算法是為了減小整個訓(xùn)練集的全局誤差,而不針對某一特定樣本,因此如果作某種修 改能使全局誤差減小,并不等于說每一個特定樣本的誤差也都能同時減小。它不能用來比 較P和m不同的網(wǎng)絡(luò)性能。因為對于同一網(wǎng)絡(luò)來說, P越大,E也越大; P 值相同, m越大 E也越大。 均方誤差 MSE:( 5.

15、38 )其中 : 輸出節(jié)點的個數(shù), 訓(xùn)練樣本數(shù)目, 網(wǎng)絡(luò)期望輸出值, 網(wǎng)絡(luò)實際輸 出值。均方誤差克服了上述兩種算法的缺點,所以選用均方誤差算法較合理。5.5.3 訓(xùn)練結(jié)果訓(xùn)練一個單隱層的三層 BP網(wǎng)絡(luò),根據(jù)如下經(jīng)驗公式選擇隱層節(jié)點數(shù) 125 :( 5.39 )式中: n 為輸入節(jié)點個數(shù), m為輸出節(jié)點個數(shù), a 為 1 到 10 之間的常數(shù)。針對本論文 n1 取 值范圍為 3 13。訓(xùn)練結(jié)果如表 5.1 所示。表 5.1 隱層節(jié)點數(shù)與誤差的關(guān)系隱層神經(jīng)元個數(shù)訓(xùn)練誤差測試誤差31.256611.127540.7977460.823250.6318490.727860.5702140.670770

16、.5528730.689580.4451180.657590.3855780.6497100.2596240.4555110.1857490.6644120.1838780.48130.1685870.6671由上表可以看出: 增加隱層節(jié)點數(shù)可以減少訓(xùn)練誤差, 但超過 10 以后測試誤差產(chǎn)生波動, 即泛化能力 發(fā)生變化。綜合比較隱層節(jié)點數(shù)為 10 與12 的訓(xùn)練誤差和測試誤差,決定隱層節(jié)點數(shù)選用 12。 訓(xùn)練誤差和測試誤差都很大 , 而且收斂速度極慢(訓(xùn)練過程如圖 5.7 所示),這個問 題可以通過對輸出量進(jìn)行歸一化來解決。根據(jù) Sigmoid 型傳遞函數(shù)輸入和輸出的范圍,對輸入變量不進(jìn)行歸一

17、化處理,只對輸出變 量進(jìn)行歸一化,這是因為在輸出數(shù)據(jù)要求歸一化的同時,對輸入數(shù)據(jù)也進(jìn)行歸一化的話, 權(quán)值的可解釋性就更差了。目標(biāo)值按下式進(jìn)行變化:( 5.40 ) 使目標(biāo)值落在 0.05 0.95 之間,這樣靠近數(shù)據(jù)變化區(qū)間端點的網(wǎng)絡(luò)輸出值就有一波動范圍, 網(wǎng)絡(luò)的性能較好。用新生成的訓(xùn)練樣本與測試樣本對隱層節(jié)點數(shù)為12 的網(wǎng)絡(luò)進(jìn)行訓(xùn)練,得到的訓(xùn)練誤差為 9.8902810-5,測試誤差為 1.9899 10-4,達(dá)到了預(yù)定的目標(biāo)(訓(xùn)練過程 如圖 5.8 所示)。5.6 最終訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)采用三層 BP網(wǎng)絡(luò)實現(xiàn)攝像機(jī)輸出 RGB顏色空間與 CIEXYZ色空間轉(zhuǎn)換, 其中隱層含有 12 個 節(jié)點,傳遞函數(shù)采用 tansig 函數(shù);輸出層傳遞函數(shù)選用 purelin 函數(shù)。經(jīng)過測試后結(jié)果滿 意,可以認(rèn)為該神經(jīng)網(wǎng)絡(luò)可以用來實現(xiàn)這個關(guān)系映射。網(wǎng)絡(luò)的結(jié)構(gòu)如圖 5.9 所示:得到的 BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值為:5.7 本章小結(jié)1) 定量地分析了用線性關(guān)系轉(zhuǎn)換攝像機(jī) RGB空間到 CIE-XYZ空間數(shù)據(jù)后產(chǎn)生的均方誤差, 表明 CCD攝像機(jī)與標(biāo)準(zhǔn)觀察者之間有比較明顯的差別,也就是說 RGB與 CIE-XYZ 間的轉(zhuǎn)換 是非線性的。2) 采用 MATLAB中 神經(jīng)網(wǎng)絡(luò)工具

溫馨提示

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

評論

0/150

提交評論