BP算法的實現(xiàn)_第1頁
BP算法的實現(xiàn)_第2頁
BP算法的實現(xiàn)_第3頁
BP算法的實現(xiàn)_第4頁
BP算法的實現(xiàn)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、bp算法的實現(xiàn)performing bp caculation摘要:bp算法采用廣義的學習規(guī)則,是一種有導師的學習算法。它分兩個階段:正向傳播階段和反向傳播階段。誤差反向傳播算法簡稱算法 ,現(xiàn)在成為人工神經(jīng)網(wǎng)絡中最引人注意應用最廣泛的算法之一。該算法是一種有教師示教的訓練算法。關鍵詞:bp算法; 權值 ; 學習步長 ; 學習樣本(the information engineering school of yantai nanshan college longkou shandong 265708)abstract:bp caculation adopts broadsense tearning

2、 rinciphes,which is guided by instructors.it falls into two stasces.direct propagation and back propagation,error back propagation is shorttormed bp caculation,which has become one of the most actractrue and popular caculations.it is a training caculation demonstrated by teachers.keywords: bp cacula

3、tion ;studying sample ;limit value time-length ; trequeucy for studying 一、bp算法思想及實現(xiàn) bp算法采用廣義的學習規(guī)則,是一種有導師的學習算法。它分兩個階段:正向傳播階段和反向傳播階段。正向傳播階段,將學習樣本的輸入信息輸入前饋網(wǎng)絡的輸入層,輸入層單元接受到輸入信號,計算權重合,然后根據(jù)神經(jīng)元的激活函數(shù)將信息傳到隱含層(1層或2層),同樣根據(jù)隱含層的輸出計算輸出層的輸出。反向傳播階段,將網(wǎng)絡的實際輸出與期望輸出相比較,如果誤差不滿足要求,將誤差向后傳播,即從輸出層到輸入層逐層求其誤差(實際上是等效誤差),然后相應地修改

4、權值。誤差反向傳播算法簡稱算法 ,現(xiàn)在成為人工神經(jīng)網(wǎng)絡中最引人注意應用最廣泛的算法之一。該算法是一種有教師示教的訓練算法 ,它通過對個輸入輸出對 (即樣本 ) (1,1) , (2,2) , , (,)的學習訓練 ,得到神經(jīng)元之間的連接權、和閾值收稿日期:2004-11-10作者簡介:田華(1980-)女,山東德州人,煙臺南山學院軟件工程學院教師、,使維空間對維空間的映射獲得成功訓練后得到的連接權和閾值 ,對其它不屬于1=1, 2, ,的子集進行測試 ,其結果仍能滿足正確的映射 。 1.bp網(wǎng)絡的學習結構。在神經(jīng)網(wǎng)絡中 ,對外部環(huán)境提供的模式樣本進行學習訓練 ,并能存儲這種模式 ,則稱為感知器

5、 ;對外部環(huán)境有適用能力 ,能自動提取外部環(huán)境變化特征 ,則稱為認知器。一個有教師的學習系統(tǒng)分成三個部分 :輸入部、訓練部和輸出部。如圖 1所示:輸入部接收外來樣本x,由訓練部進行網(wǎng)絡的權系數(shù) w調整 ,然后輸出部輸出結果。多層神經(jīng)網(wǎng)絡 1-4-6-4-1的學習機構用圖 2表示 :x是輸入樣本信號 ,可取任意值。輸入樣本信號通過每一層的權系數(shù)作用 ,最終在輸出部產(chǎn)生結果 :y = e-x圖2 1-4-6-4-1的學習機構 再把期望輸出信號 y與 u進行比較 ,從而產(chǎn)生誤差 e。權值調整機構根據(jù)誤差 e對學習系統(tǒng)的各層權系數(shù)進行修改 ,修改方向使用負梯度方向 ,即達到最速下降法 ,不斷進行下去

6、,使誤差 e滿足給定精度要求 0.003,這時實際輸出值 u和期望輸出值 y的誤差符合要求 ,則學習過程結束。 2.bp網(wǎng)絡的數(shù)學模型。從第一節(jié)神經(jīng)元的討論可知 ,神經(jīng)元是一個多輸入單輸出的信息處理單元。它對信息處理是非線性的??砂焉窠?jīng)元抽象為一個簡單的數(shù)學模型 ,如圖 3所示。 圖 3中 , x1, x2, , xn是神經(jīng)元的輸入 ,即來自前級 n個神經(jīng)元的軸突信息 ;i 是 i神經(jīng)元的閥值 , wi1, wi2, , win分別是 i神經(jīng)元對 x1, x2, , xn的權系數(shù) ,也即突觸的傳遞效率 ; yi是 i神經(jīng)元受到輸出 ; f 是激發(fā)函數(shù) ,它決定 i神經(jīng)元受到輸入 x1, x2,

7、 , xn的共同刺激達到閥值時以何種方式輸出。數(shù)學模型表達式為 : 取激發(fā)函數(shù)為s型: 是對應第i個樣本xi的實際輸出;yi是對應第i個樣本xi的期望輸出。求令e最小時w: 其中: 則: 取負梯度修改權系數(shù),可獲得最速下降法即: 3bp算法推導 定義誤差函數(shù)e為期望輸出與實際輸出之差和平方和:其中:y為期望值,即教師信號;x為實際輸出。考察權系數(shù)wij的修改量,與e的負梯度有關。即: 其中k為網(wǎng)絡層數(shù),由于: 從而有: 從修改系數(shù)角度出發(fā),有令: 則: 因d非顯式,要進行變換: 因: 故:即: 分兩種情況求:(1) 當k=m時,即最后一層,則: 由于: 故有:(2)當km時,則該層為隱層,這時

8、考慮上一層對它的作用: 由于: 故:最后有: 按負梯度方向修改權系數(shù),采用加速算法,則有: 4 .bp算法的執(zhí)行。 bp算法執(zhí)行分兩個過程 : ( 1)正向傳播 :輸入的樣本從輸入層經(jīng)過隱單元一層一層進行處理 ,通過第二層 ,第三層 ,第四層之后 ,傳出第五層輸出層 ;在逐層處理過程中 ,每一層神經(jīng)元的狀態(tài)只對下一層神經(jīng)元的狀態(tài)產(chǎn)生影響。在輸出層把現(xiàn)行輸出和期望輸出進行比較,如果現(xiàn)行輸出不等于期望輸出,則進入反向傳播過程。( 2)反向傳播 :反向傳播時 ,把誤差信號按原來正向傳播的通路反向傳回 ,并對每一隱層各個神經(jīng)元的權系數(shù)進行修改 ,以使誤差信號趨向最小。根據(jù) bp算法的兩個過程 ,采用

9、s型激發(fā)函數(shù)時 ,可用下列步驟對網(wǎng)絡的權系數(shù) wij進行遞歸求取。注意如果輸入 ( x1, x2, , xn)對于該層的第 i個神經(jīng)元 ,則有 n個權系數(shù) wi1, wi2, , win,另外多取一個 win+ 1,用于表示閥值;并將輸入樣本 x取 ( x1, x2, , xn, 1)。根據(jù) bp算法的兩個過程 ,采用 s型激發(fā)函數(shù)時 ,可用下列步驟對網(wǎng)絡的權系數(shù) wij進行遞歸求取。注意如果輸入 ( x1, x2, , xn)對于該層的第 i個神經(jīng)元 ,則有 n個權系數(shù) wi1, wi2, , win,另外多取一個 win+ 1,用于表示閥值 ;并將輸入樣本 x取 ( x1, x2, , x

10、n, 1)。算法的執(zhí)行步驟如下 :( 1)權系數(shù) wij置初值 :對各層的權系數(shù) wij置一個較小的非零隨機數(shù) ,但其中win + 1=-。 ( 2)輸入一個樣本 x0,以及對應期望值 : (3)計算各層的輸出: 第一層: 第二層其中i=1,2,3,4第三層: 其中i=1,2,3,4,5,6(4)計算: 如e0.003則轉(8),否則轉(5)執(zhí)行;(5) 求各層的學習誤差:k=3; j=1,2,3,4,5,6 k=2; j=1,2,3,4 (6) 修正權系數(shù)和閥值: 當k=1時: 當k=2時:i=1,2,3,4; j=1,2 當k=3時:i=1,2,3,4,5,6; j=1,2,3,4(7)

11、返回(3)執(zhí)行:.(8) 輸出各層權系數(shù)。實驗結果表明 : ( 1)如改變精度要求 ,將影響 bp算法的計算次數(shù) ,當精度提高時 ,計算量明顯加大 ;當精度降低時 ,計算量減小。 ( 2)當改變神經(jīng)網(wǎng)絡的結構時 ,意味著整個計算過程將變化。( 3)當取不同樣本點組時 ,有的收斂較快 ,有的計算非常多。( 4)當取不同加速因子時 ,加速效果不同。有的較快 ,有的較慢。( 5) bp算法求函數(shù)逼近有一定的實用性。二、使用 bp算法時應考慮的若干問題 歸納總結了使用 bp算法時可能涉及到的問題和一些技巧。尤其對學習方法的選擇、隱層數(shù)和隱層單元數(shù)的選擇、學習步長的選擇、避免局部最小的方法、學習樣本的選

12、擇、激活函數(shù)的選擇等都作了詳細的介紹 。1學習方法的選擇1)單樣本學習法根據(jù)每一個學習樣本的誤差 ,求權值修正值 ,更新權值 ;成批學習法根據(jù)所有學習樣本的總誤差 ,求權值修正值 ,更新權值。一般來說 ,學習樣本中噪聲較小時 ,用單樣本學習法較合適 ,否則用成批學習法較合適。2)單樣本學習法的缺點是每次迭代的梯度值受學習樣本中的噪聲影響較大 ,而成批學習法的缺點是忽略了學習樣本的個體差異而降低學習的靈敏度。通常 ,可以將上述兩種方法進行折衷 ,即將學習樣本集分成若干個子塊分別進行以子塊為單位的成批學習 ,當誤差收斂到一預定數(shù)值 ,再以此時權值為初值 ,轉入下一個子塊進行學習 ,在所有的子塊學習

13、完后 ,如果總的誤差滿足要求 ,學習結束。否則 ,轉入下一個循環(huán)繼續(xù)學習 。3)規(guī)模較大的 bp網(wǎng)絡 ,學習時 ,可以將它以一定的比例縮小成較小的 bp網(wǎng)絡 ,先訓練這個較小的bp網(wǎng)絡 ,將學習的結果以同樣的比例提升到原來較大規(guī)模的網(wǎng)絡 ,再訓練較大規(guī)模的網(wǎng)絡。實驗證明對于大規(guī)模 bp網(wǎng)絡這種學習方法速度快 ,特征抽取能力強。2 隱層數(shù)和隱層單元數(shù)的選擇1) 一般總是先選擇一個隱層的 bp網(wǎng)絡 ,但如果選擇一個隱層時 ,隱層單元數(shù)目較大 ,可以考慮選用兩個隱層 ,而每個隱層的單元數(shù)取較小值 。2) 隱層單元數(shù)目 hn的選擇是否合適是應用 bp網(wǎng)絡成功與失敗的關鍵因素之一 , hn值太小 ,學習

14、過程可能不收斂 ; hn值越大 ,網(wǎng)絡映射能力越強 ,局部最小點越少 ,越容收斂到全局最小點。但 hn過大 ,不但使學習時間過長 ,而且網(wǎng)絡容易訓練過渡 ,這時網(wǎng)絡不但記住了學習樣本的一般特征 ,而且記住了學習樣本中的個別特征 (包括隨機噪聲 )。這樣也會使網(wǎng)絡的容錯性降低。因為如果網(wǎng)絡對學習樣本的學習太“精確”,即使檢測樣本與學習樣本之間有很小的畸變 ,網(wǎng)絡也會判為非。目前 ,最佳隱層單元數(shù)的選擇尚無理論指導。實際應用中 ,可以先取較小的 hn,訓練并檢驗網(wǎng)絡的性能 。然后稍增大 hn,再重試。試驗確定合適的。試驗時 ( 1) ( 3)式可以作為大致的參考 ( bp網(wǎng)絡作為分類器時 )(1)

15、(2)(3)式 ( 1) ( 3)中 , j表示隱層單元數(shù)目 hn, k為樣本數(shù) , n為輸入單元數(shù) ,對于組合數(shù) ,如果 i j, =0, m為輸出單元數(shù) , a為 1 10之間的常數(shù)。也可以在開始時選擇足夠大的 hn,然后把學習后那些不起作用的隱層單元去掉。3學習步長的選擇學習步長 (或稱學習速率 )的取值較大時 ,學習速度快 ,但會引起權值振蕩 ,太大將引起權值發(fā)散 ;的取值較小時 ,網(wǎng)絡學習速度慢 ,訓練時間長 。步長的取值應在學習速度與權值的穩(wěn)定性之間折衷選擇 ,但最好是用變步長的方法 。討論變步長方法的文獻很多 ,文獻 1給出一種方法 ,先設一初始步長 ,若一次迭代后誤差增大 ,則

16、將步長乘以小于 1的正數(shù) ,否則步長乘以大于 1的正數(shù)。文獻 2令步長隨學習的進展而逐步減小 。文獻 3根據(jù)連續(xù)兩次迭代時 ,梯度方向的相似或相反 ,來增加或減小步長 。應該注意的是 ,學習步長的選擇與 2.4中的動量因子的選擇不是孤立的 ,它們之間有一定的等效性。4避免局部最小的方法1)增加動量項 (或稱慣性項、矩項等 )并適當選擇動量因子 (或稱慣性系數(shù) ) ,可以抑制學習過程中的振蕩和有助于擺脫局部最小 。動量因子一般選在 0.9左右。文獻 3根據(jù)連續(xù)兩次迭代時 ,梯度方向的相似或相反 ,來增加或減小動量因子 (與學習步長同時考慮 ) 。2)給權值加小的隨機擾動 ,有助于網(wǎng)絡擺脫局部最小

17、 。3)將 bp算法與模擬退火算法或遺傳算法結合起來 ,可以避免陷入局部最小 ,但要影響學習速度 。5學習樣本的選擇1)選擇學習樣本時 ,不僅要包括所有的模式類別 ,而且每種類別所具有的學習樣本數(shù)要平衡 ,不能偏重某一類型 .但如果事先明確類型 a出現(xiàn)的機會比類型 b大一倍 ,這時可以選擇類型 a的學習樣本比類型b的學習樣本多一倍 。2)學習時 ,在學習樣本中適當加些噪聲 ,可以提高網(wǎng)絡的抗噪聲能力。3)學習樣本應盡可能相互獨立而沒有相關關系 ,盡可能用正交設計方法來獲得足夠多的學習樣本 。6激活函數(shù)的選擇bp算法的激活函數(shù)一般采用s型函數(shù) : ,可用帶形狀因子的 s型函數(shù)來代替 。大 , s型函數(shù)的形狀平坦 ,識別率高 ,但學習速度下降 ;小 ,網(wǎng)絡收斂快 ,但識別率降低 。可以在開始學習時取較小值 ,以后逐漸增大 。文獻 4用作為激活函數(shù) ,實驗證明可以提高學習速度 。 7其它技巧1) 初始權值最好設置為較小 (單極 s型函數(shù)時 ,可選 -0.3 0.3之間 )的隨機數(shù) 。2) 激活函數(shù)采用單極 s型函數(shù)時 ,學習樣本期望輸出設置為 0.1或 0.9較合適 。3)給定一定的允許誤差 ,當網(wǎng)絡的輸出與樣本之間的差小于給定的允許誤差時 ,則停止學習。對網(wǎng)絡學習采取這種寬容的做法 ,可加

溫馨提示

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

評論

0/150

提交評論