BP神經(jīng)網(wǎng)絡原理及應用_第1頁
BP神經(jīng)網(wǎng)絡原理及應用_第2頁
BP神經(jīng)網(wǎng)絡原理及應用_第3頁
BP神經(jīng)網(wǎng)絡原理及應用_第4頁
BP神經(jīng)網(wǎng)絡原理及應用_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

人工神經(jīng)網(wǎng)絡簡介生物神經(jīng)元模型神經(jīng)系統(tǒng)的基本構造是神經(jīng)元(神經(jīng)細胞),它是辦理人體內(nèi)各部分之間互相信息傳達的基本單元。據(jù)神經(jīng)生物學家研究的結果表示,人的大腦一般有10101011個神經(jīng)元。每個神經(jīng)元都由一個細胞體,一個連接其余神經(jīng)元的軸突和一些向外伸出的其余較短分支——樹突構成。軸突的功能是將本神經(jīng)元的輸出信號(愉悅)傳達給其余神經(jīng)元。其尾端的好多神經(jīng)末梢使得愉悅能夠同時送給多個神經(jīng)元。樹突的功能是接受來自其余神經(jīng)元的愉悅。神經(jīng)元細胞體將接遇到的全部信號進行簡單地辦理后由軸突輸出。神經(jīng)元的樹突與別的的神經(jīng)元的神經(jīng)末梢相連的部分稱為突觸。人工神經(jīng)元模型神經(jīng)網(wǎng)絡是由好多互相連接的辦理單元構成。這些辦理單元平時線性擺列成組,稱為層。每一個辦理單元有好多輸入量,而對每一個輸入量都相應有一個相關聯(lián)的權重。辦理單元將輸入量經(jīng)過加權乞降,并經(jīng)過傳達函數(shù)的作用獲取輸出量,再傳給下一層的神經(jīng)元。當古人們提出的神經(jīng)元模型已有好多,此中提出最早且影響最大的是1943年心理學家McCulloch和數(shù)學家Pitts在解析總結神經(jīng)元基本特征的基礎上第一提出的M-P模型,它是大多數(shù)神經(jīng)網(wǎng)絡模型的基礎。nYj

(t)

f(

wji

xi

j)

()i1式中,j為神經(jīng)元單元的偏置(閾值),wji為連接權系數(shù)(對于激發(fā)狀態(tài),wji取正當,對于克制狀態(tài),wji取負值),n為輸入信號數(shù)目,Yj為神經(jīng)元輸出,t為時間,f( )為輸出變換函數(shù),有時叫做激發(fā)或激勵函數(shù),常常采納

0和

1二值函數(shù)或S形函數(shù)。人工神經(jīng)網(wǎng)絡的基本特征人工神經(jīng)網(wǎng)絡由神經(jīng)元模型構成;這類由好多神經(jīng)元構成的信息辦理網(wǎng)絡擁有并行分布構造。每個神經(jīng)元擁有單一輸出,并且能夠與其余神經(jīng)元連接;存在好多(多重)輸出連接方法,每種連接方法對應一個連接權系數(shù)。嚴格地說,人工神經(jīng)網(wǎng)絡是一種擁有以下特征的有向圖:(1)對于每個節(jié)點存在一個狀態(tài)變量xi;(2)從節(jié)點i至節(jié)點j,存在一個連接權系數(shù)wji;(3)對于每個節(jié)點,存在一個閾值j;(4)對于每個節(jié)點,定義一個變換函數(shù)fj(xi,wji,j),ij,對于最一般的狀況,此函數(shù)取fj(wjixij)形式。i人工神經(jīng)網(wǎng)絡的主要學習算法神經(jīng)網(wǎng)絡主要經(jīng)過兩種學習算法進行訓練,即指導式(有師)學習算法和非指導式(無師)學習算法。其余,還存在第三種學習算法,即增強學習算法;可把它看做有師學習的一種特例。(1)有師學習有師學習算法能夠依據(jù)希望的和實質(zhì)的網(wǎng)絡輸出(對應于給定輸入)間的差來調(diào)整神經(jīng)元間連接的強度或權。所以,有師學習需要有個老師或導師來供給希望或目標輸出信號。有師學習算法的例子包含規(guī)則、廣義規(guī)則或反向流傳算法以及LVQ算法等。(2)無師學習無師學習算法不需要知道希望輸出。在訓練過程中,只需向神經(jīng)網(wǎng)絡供給輸入模式,神經(jīng)網(wǎng)絡便能夠自動地適應連接權,以便按相似特色把輸入模式分組齊集。無師學習算法的例子包含Kohonen算法和Carpenter-Grossberg自適應共振理論(ART)等。(3)增強學習如前所述,增強學習是有師學習的特例。它不需要老師給出目標輸出。增強學習算法采納一個“議論員”來議論與給定輸入相對應的神。2BP神經(jīng)網(wǎng)絡原理基本BP算法公式推導基本BP算法包含兩個方面:信號的前向流傳和偏差的反向流傳。即計算實質(zhì)輸出時按從輸入到輸出的方向進行,而權值和閾值的修正從輸出到輸入的方向進行。1a1x1o1???輸輸iak出入xjok變變wijwki?量量?aL?qoLxM輸入層隱含層輸出層圖2-1BP網(wǎng)絡構造StructureofBPnetwork圖中:表示輸入層第個節(jié)點的輸入,j=1,,M;表示隱含層第i個節(jié)點到輸入層第j個節(jié)點之間的權值;表示隱含層第i個節(jié)點的閾值;表示隱含層的激勵函數(shù);表示輸出層第個節(jié)點到隱含層第i個節(jié)點之間的權值,i=1,,q;表示輸出層第k個節(jié)點的閾值,k=1,,L;表示輸出層的激勵函數(shù);表示輸出層第個節(jié)點的輸出。1)信號的前向流傳過程隱含層第i個節(jié)點的輸入neti:(3-1)隱含層第i個節(jié)點的輸出yi:(3-2)輸出層第k個節(jié)點的輸入netk:(3-3)輸出層第k個節(jié)點的輸出ok:(3-4)(2)偏差的反向流傳過程偏差的反向流傳,即第一由輸出層開始逐層計算各層神經(jīng)元的輸出偏差,而后依據(jù)偏差梯度降落法來調(diào)理各層的權值和閾值,使更正后的網(wǎng)絡的最后輸出能湊近希望值。對于每一個樣本p的二次型偏差準則函數(shù)為Ep:(3-5)系統(tǒng)對P個訓練樣本的總偏差準則函數(shù)為:(3-6)依據(jù)偏差梯度降落法挨次修正輸出層權值的修正量wki,輸出層閾值的修正量ak,隱含層權值的修正量wij,隱含層閾值的修正量。;;;(3-7)輸出層權值調(diào)整公式:(3-8)輸出層閾值調(diào)整公式:(3-9)隱含層權值調(diào)整公式:(3-10)隱含層閾值調(diào)整公式:(3-11)又因為:(3-12),,,(3-13)(3-14)(3-15)(3-16)所以最后獲取以下公式:(3-17)(3-18)(3-19)(3-20)開始批量輸入學習樣本并且對輸入和輸出量進行歸一化辦理參數(shù)初始化:最大訓練次數(shù),學習精度,隱節(jié)點數(shù),初始權值、閾值,初始學習速率等計算各層的輸入和輸出值Yes計算輸出層偏差E(q)YesE(q)<εN修正權值和閾值結束圖2-2BP算法程序流程圖TheflowchartoftheBPalgorithmprogram基本BP算法的缺點BP算法因其簡單、易行、計算量小、并行性強等長處,當前是神經(jīng)網(wǎng)絡訓練采納最多也是最成熟的訓練算法之一。其算法的實質(zhì)是求解偏差函數(shù)的最小值問題,因為它采納非線性規(guī)劃中的最速降落方法,按偏差函數(shù)的負梯度方向更正權值,因此平時存在以下問題:1)學習效率低,收斂速度慢2)易墮入局部極小狀態(tài)BP算法的改進附帶動量法附帶動量法使網(wǎng)絡在修正其權值時,不但考慮偏差在梯度上的作用,并且考慮在偏差曲面上變化趨向的影響。在沒有附帶動量的作用下,網(wǎng)絡可能墮入淺的局部極小值,利用附帶動量的作用有可能滑過這些極小值。該方法是在反向流傳法的基礎上在每一個權值(或閾值)的變化上加上一項正比于上次權值(或閾值)變化量的值,并依據(jù)反向流傳法來產(chǎn)生新的權值(或閾值)變化。帶有附帶動量因子的權值和閾值調(diào)理公式為:wij(k1)(1mc)ipjmcwij(k)bi(k1)(1mc)imcbi(k)此中k為訓練次數(shù),mc為動量因子,一般取左右。附帶動量法的實質(zhì)是將最后一次權值(或閾值)變化的影響,經(jīng)過一個動量因子來傳達。當動量因子取值為零時,權值(或閾值)的變化僅是依據(jù)梯度降落法產(chǎn)生;當動量因子取值為1時,新的權值(或閾值)變化則是設置為最后一次權值(或閾值)的變化,而依梯度法產(chǎn)生的變化部分則被忽視掉了。以此方式,當增添了動量項后,促使權值的調(diào)理向著偏差曲面底部的均勻方向變化,

當網(wǎng)絡權值進入偏差曲面底部的平展區(qū)時,

i將變得很小,于是

wij

(k

1)

wij

(k)

,

從而防范了

wij

0的出現(xiàn),有助于使網(wǎng)絡從偏差曲面的局部極小值中跳出。依據(jù)附帶動量法的設計原則,當修正的權值在偏差中以致太大的增添結果時,新的權值應被撤消而不被采納,并使動量作用停止下來,以使網(wǎng)絡不進入較大偏差曲面;當新的偏差變化率對其舊值超出一個早先設定的最大偏差變化率時,也得撤消所計算的權值變化。其最大偏差變化率能夠是任何大于或等于1的值。典型的取值取。所以,在進行附帶動量法的訓練程序設計時,一定加進條件判斷以正確使用其權值修正公式。訓練程序設計中采納動量法的判斷條件為:0E(k)E(k1)*1.04mc0.95E(k)E(k1),E(k)為第k步偏差平方和。mc其余自適應學習速率對于一個特定的問題,要選擇適合的學習速率不是一件簡單的事情。平時是憑經(jīng)驗或實驗獲取,但即便這樣,對訓練開始早期功能較好的學習速率,不見得對以后的訓練適合。為認識決這個問題,人們自然想到在訓練過程中,自動調(diào)理學習速率。平時調(diào)理學習速率的準則是:檢查權值是否真切降低了偏差函數(shù),假如的確這樣,則說明所選學習速率小了,能夠適合增添一個量;若不是這樣,而產(chǎn)生了過調(diào),那幺就應當減少學習速率的值。下式給出了一個自適應學習速率的調(diào)整公式:1.05(k)E(k1)E(k)(k1)0.7(k)E(k1)1.04E(k),E(k)為第k步偏差平方和。(k)其余初始學習速率(0)的采納范圍能夠有很大的隨意性。動量-自適應學習速率調(diào)整算法當采納前述的動量法時,BP算法能夠找到全局最優(yōu)解,而當采納自適應學習速率時,BP算法能夠縮短訓練時間,采納這兩種方法也能夠用來訓練神經(jīng)網(wǎng)絡,該方法稱為動量-自適應學習速率調(diào)整算法。網(wǎng)絡的設計網(wǎng)絡的層數(shù)理論上已證明:擁有偏差和最少一個S型隱含層加上一個線性輸出層的網(wǎng)絡,能夠迫近任何有理數(shù)。增添層數(shù)能夠更進一步的降低偏差,提升精度,但同時也使網(wǎng)絡復雜化,從而增添了網(wǎng)絡權值的訓練時間。而偏差精度的提升實質(zhì)上也能夠經(jīng)過增添神經(jīng)元數(shù)目來獲取,其訓練成效也比增加層數(shù)更簡單觀察和調(diào)整。所以一般狀況下,應優(yōu)先考慮增添隱含層中的神經(jīng)元數(shù)。隱含層的神經(jīng)元數(shù)網(wǎng)絡訓練精度的提升,能夠經(jīng)過采納一個隱含層,而增添神經(jīng)元數(shù)了的方法來獲取。這在構造實現(xiàn)上,要比增添隱含層數(shù)要簡單得多。那么究竟采納多少隱含層節(jié)點才適合?這在理論上并無一個明確的規(guī)定。在具體設計時,比較實質(zhì)的做法是經(jīng)過對不一樣神經(jīng)元數(shù)進行訓練比較,而后適當?shù)丶由弦稽c余量。初始權值的采納因為系統(tǒng)是非線性的,初始值對于學習能否達到局部最小、能否能夠收斂及訓練時間的長短關系很大。假如初始值太大,使得加權后的輸入和n落在了S型激活函數(shù)的飽和區(qū),從而以致其導數(shù)f’(n)特別小,而在計算權值修正公式中,因為f'(n),當f’(n)0時,則有0。這使得wij0,從而使得調(diào)理過程幾乎逗留下來。所以一般老是希望經(jīng)過初始加權后的每個神經(jīng)元的輸出值都湊近于零,這樣能夠保證每個神經(jīng)元的權值都能夠在它們的S型激活函數(shù)變化最大之處進行調(diào)理。所以,一般取初始權值在(-1,1)之間的隨機數(shù)。學習速率學習速率決定每一次循環(huán)訓練中所產(chǎn)生的權值變化量。大的學習速率可能以致系統(tǒng)的不穩(wěn)固;但小的學習速率以致較長的訓練時間,可能收斂很慢,但是能保證網(wǎng)絡的偏差值不跳出偏差表面的低谷而最后趨于最小偏差值。所以在一般狀況下,偏向于采納較小的學習速率以保證系統(tǒng)的穩(wěn)固性。學習速率的采納范圍在之間。BP神經(jīng)網(wǎng)絡的應用現(xiàn)給出一藥品商店一年中間12個月的藥品銷售量(單位:箱)以下:訓練一個BP網(wǎng)絡,用當前的全部數(shù)據(jù)展望下一個月的藥品銷售量。有兩種方法實現(xiàn),一種是編寫matlab程序,一種是使用nntool工具箱。matlab程序實現(xiàn)我們用前三個月的銷售量展望下一個月的銷售量,也就是用

1-3

月的銷售量展望第

4個月的銷售量,用

2-4

個月的銷售量展望第

5個月的銷售量,這樣循環(huán)下去,直到用

9-11

月展望

12月份的銷售量。這樣訓練

BP神經(jīng)網(wǎng)絡后,便能夠用10-12月的數(shù)據(jù)展望來年一月的銷售量。實現(xiàn)程序以下:p=[205623952600;239526002298;260022981634;229816341600;pmax=max(p);pmax1=max(pmax);pmin=min(p);pmin1=min(pmin);fori=1:9%歸一化辦理p1(i,:)=(p(i,:)-pmin1)/(pmax1-pmin1);endt1=(t-pmin1)/(pmax1-pmin1);t1=t1';net=newff([01;01;01],[71],{'tansig'fori=1:9

,'logsig'

},'traingd'

);',t1(i));endy1=y*(pmax1-pmin1)+pmin1;假如神經(jīng)網(wǎng)絡的訓練函數(shù)使用trainlm,則仿真步驟會極少,但需要較大的系統(tǒng)內(nèi)存。經(jīng)展望,來年一月的銷售量(y1)為+003箱(每次運轉后的結果可能不一樣)。nntool神經(jīng)網(wǎng)絡工具箱的使用在matlab()命令窗口鍵入nntool命令打開神經(jīng)網(wǎng)絡工具箱。如圖:點擊Import按鈕兩次,分別把輸入向量和目標輸出加入到對應的窗口[Inputs]和[Targets])中,有兩種可供選擇的加入對象(點擊Import后能夠看見),一種是把當前工作區(qū)中的某個矩陣加入,另一種是經(jīng)過.mat文件讀入。點擊[NewNetwork]按鈕,填入各參數(shù):(以最常用的帶一個隱層的3層神經(jīng)網(wǎng)絡為例說明,下邊沒有列出的參數(shù)表示使用默認值便能夠了,比方NetworkType為默認的BP神經(jīng)網(wǎng)絡);i)InputRange——這個經(jīng)過點擊GetFromInput下拉框選擇你加入的輸入向量即可自動達成,自然也能夠自己手動增添。TrainingFunction——最好使用TRAINSCG,即共軛梯度法,其好處是當訓練不收斂時,它會自動停止訓練,并且耗時較其余算法(TRAINLM,TRAINGD)少,也就是收斂很快(假如收斂的話),并且TrainParameters輸入不多,也不用太多的技巧調(diào)整,一般指定迭代次數(shù)、結果顯示頻率和目標偏差便能夠了(詳見下文)。Layer1NumberofNeurons——隱層的神經(jīng)元個數(shù),這是需要經(jīng)驗慢慢試試并調(diào)整的,大體上由輸入向量的維數(shù)、樣本的數(shù)目和輸出層(Layer2)的神經(jīng)元個數(shù)決定。一般來說,神經(jīng)元越多,輸出的數(shù)值與目標值越湊近,但所花費的訓練時間也越長,反之,神經(jīng)元越少,輸出值與目標值相差越大,但訓練時間會相應地減少,這是因為神經(jīng)元越多其算法越復雜造成的,所以需要自己慢慢試試,找到一個適合的中間點。比方輸入是3行5000列的0-9的隨機整數(shù)矩陣,在一開始選擇1000個神經(jīng)元,固然精度比較高,但是花銷的訓練時間較長,而且這樣神經(jīng)網(wǎng)絡的構造與算法都特別復雜,不簡單在實質(zhì)應用中實現(xiàn),試試改為100個,再調(diào)整為50個,假如發(fā)此刻50個以下時精度較差,則可最后定為50個神經(jīng)元,等等。iv)Layer1TransferFunction——一般用TANSIG(自然也能夠LOGSIG),即表示隱層輸出是[-1,1]之間的實數(shù),與LOGSIG對比范圍更大。Layer2NumberofNeurons——輸出層的神經(jīng)元個數(shù),需要與輸出的矩陣行數(shù)對應,比方設置為3,等等。Layer2TransferFunction——假如是模式識其余兩

溫馨提示

  • 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

提交評論