MATLAB神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)_第1頁
MATLAB神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)_第2頁
MATLAB神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)_第3頁
MATLAB神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)_第4頁
MATLAB神經(jīng)網(wǎng)絡(luò)實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、神經(jīng)元模型Neuron Model: 多輸入,單輸出,帶偏置輸入:R維列向量1,TRppp權(quán)值:R維行向量111,Rwwwb閾值:標(biāo)量求和單元11Riiinp wb傳遞函數(shù)f輸出()afbwp常用傳遞函數(shù)aWp-b1-1u閾值函數(shù)1(0)( )hardlim( )0(0)naf nnnMATLAB函數(shù): hardlim1(0)( )hardlim ( )1(0)naf ns nnMATLAB函數(shù): hardlims線性函數(shù)uPurelin Transfer Function :( )af nnanMATLAB函數(shù): purelinSigmoid函數(shù)uSigmoid Function :u特性:

2、 值域a(0,1) 非線性,單調(diào)性 無限次可微 |n|較小時可近似線性函數(shù) |n|較大時可近似閾值函數(shù)1( )1naf neMATLAB函數(shù): logsig(對數(shù)), tansig(正切)對數(shù)Sigmoid函數(shù)正切Sigmoid函數(shù)tanh( )nnnneeanee 前饋神經(jīng)網(wǎng)絡(luò)u前饋神經(jīng)網(wǎng)絡(luò)(feed forward NN):各神經(jīng)元接受前級輸入,并輸出到下一級,無反饋,可用一有向無環(huán)圖表示。u前饋網(wǎng)絡(luò)通常分為不同的層(layer),第i層的輸入只與第i-1層的輸出聯(lián)結(jié)。u可見層:輸入層(input layer)和輸出層(output layer)u隱藏層(hidden layer) :中間

3、層BP網(wǎng)絡(luò)l 多層前饋網(wǎng)絡(luò)l 主要功能: 函數(shù)逼近, 模式識別, 信息分類l 傳遞函數(shù):隱層采用S形函數(shù),輸出層S形函數(shù)或線性函數(shù)BP網(wǎng)絡(luò)的生成newff函數(shù)newff用來生成一個BP網(wǎng)絡(luò)net=newff(PR,S1 S2.SN,TF1 TF2. TFN,BTF,BLF,PF)PR: 一個R2矩陣, 由R維輸入向量的每維最小值和最大值組成Si: 第i層的神經(jīng)元個數(shù)TFi: 第i層的傳遞函數(shù), 默認(rèn)為tansigBTF: 訓(xùn)練函數(shù), 默認(rèn)為trainlmBLF: 學(xué)習(xí)函數(shù), 默認(rèn)為learngdmPF: 性能函數(shù), 默認(rèn)為msenet=newff(0,10;-1,2,5,1,tansig,pu

4、relin,trainlm); %生成一個兩層BP網(wǎng)絡(luò),隱層和輸出層神經(jīng)的個數(shù)為5和1, 傳遞函數(shù)分別為tansig和purelin, 訓(xùn)練函數(shù)為trainlm, 其他默認(rèn)BP網(wǎng)絡(luò)的初始化 newff 函數(shù)在建立網(wǎng)絡(luò)對象的同時, 自動調(diào)用初始化函數(shù), 根據(jù)缺省的參數(shù)設(shè)置網(wǎng)絡(luò)的連接權(quán)值和閾值. 使用函數(shù)init可以對網(wǎng)絡(luò)進(jìn)行自定義的初始化. 通過選擇初始化函數(shù), 可對各層連接權(quán)值和閾值分別進(jìn)行不同的初始化.BP網(wǎng)絡(luò)的學(xué)習(xí)規(guī)則 權(quán)值和閾值的調(diào)節(jié)規(guī)則采用誤差反向傳播算法(back propagation). 反向傳播算法分二步進(jìn)行,即正向傳播和反向傳播。 1正向傳播 輸入的樣本從輸入層經(jīng)過隱單元一層

5、一層進(jìn)行處理,通過所有的隱層之后,則傳向輸出層;在逐層處理的過程中,每一層神經(jīng)元的狀態(tài)只對下一層神經(jīng)元的狀態(tài)產(chǎn)生影響。在輸出層把現(xiàn)行輸出和期望輸出進(jìn)行比較,如果現(xiàn)行輸出不等于期望輸出,則進(jìn)入反向傳播過程。2反向傳播 反向傳播時,把誤差信號按原來正向傳播的通路反向傳回,并對每個隱層的各個神經(jīng)元的權(quán)系數(shù)進(jìn)行修改,以望誤差信號趨向最小。BP算法實(shí)質(zhì)是求取誤差函數(shù)的最小值問題。這種算法采用非線性規(guī)劃中的最速下降方法,按誤差函數(shù)的負(fù)梯度方向修改權(quán)系數(shù)。BP網(wǎng)絡(luò)的快速學(xué)習(xí)算法與選擇學(xué)習(xí)算法適用問題類型收斂性能占用存儲空間其他特點(diǎn)trainlm函數(shù)擬合收斂快,誤差小大性能隨網(wǎng)絡(luò)規(guī)模增大而變差trainrp模

6、式分類收斂最快較小性能隨網(wǎng)絡(luò)訓(xùn)練誤差減小而變差trainscg函數(shù)擬合模式分類收斂較快性能穩(wěn)定中等尤其適用于網(wǎng)絡(luò)規(guī)模較大的情況trainbfg函數(shù)擬合收斂較快較大計(jì)算量歲網(wǎng)絡(luò)規(guī)模的增大呈幾何增長traingdx模式分類收斂較慢較小適用于提前停止的方法 MATLAB神經(jīng)網(wǎng)絡(luò)工具箱對常規(guī)BP算法進(jìn)行改進(jìn),提供了一系列快速算法,以滿足不同問題的需要BP網(wǎng)絡(luò)的訓(xùn)練 利用已知的”輸入目標(biāo)”樣本向量數(shù)據(jù)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,采用train 函數(shù)來完成. 訓(xùn)練之前, 對訓(xùn)練參數(shù)進(jìn)行設(shè)置 訓(xùn)練參數(shù) 參數(shù)含義 默認(rèn)值net.trainParam.epochs訓(xùn)練步數(shù)100net.trainParam.show顯示訓(xùn)練

7、結(jié)果的間隔步數(shù)25net.trainParam.goal訓(xùn)練目標(biāo)誤差0net.trainParam.time訓(xùn)練允許時間INfnet.trainParam.lr學(xué)習(xí)率0.01net = train(net, P, T)BP網(wǎng)絡(luò)的設(shè)計(jì)(1)網(wǎng)絡(luò)層數(shù) 已經(jīng)證明,單隱層的BP網(wǎng)絡(luò)可以實(shí)現(xiàn)任意非線性映射. BP網(wǎng)絡(luò)的隱層數(shù)一般不超過兩層.輸入層的節(jié)點(diǎn)數(shù) 輸入層接收外部的輸入數(shù)據(jù), 節(jié)點(diǎn)數(shù)取決于輸入向量的維數(shù)輸出層的節(jié)點(diǎn)數(shù) 輸出層的節(jié)點(diǎn)數(shù)取決于輸出數(shù)據(jù)類型和該類型所需的數(shù)據(jù)大小.對于模式分類問題,節(jié)點(diǎn)數(shù)為2log mBP網(wǎng)絡(luò)的設(shè)計(jì)(2)隱層的節(jié)點(diǎn)數(shù) 隱層的節(jié)點(diǎn)數(shù)與求解問題的要求,輸入輸出單元數(shù)多少有關(guān).

8、 對于模式識別/分類的節(jié)點(diǎn)數(shù)可按下列公式設(shè)計(jì)傳遞函數(shù) 隱層傳遞函數(shù)采用S型函數(shù), 輸出層采用S型函數(shù)或線性函數(shù)訓(xùn)練方法及其參數(shù)選擇 針對不同應(yīng)用, BP網(wǎng)絡(luò)提供了多種訓(xùn)練學(xué)習(xí)方法.0innnan其中為隱層節(jié)點(diǎn)數(shù),in為輸入節(jié)點(diǎn)數(shù),a為110之間的整數(shù)BP網(wǎng)絡(luò)設(shè)計(jì)實(shí)例采用動量梯度下降算法訓(xùn)練BP網(wǎng)絡(luò). 訓(xùn)練樣本%定義訓(xùn)練樣本p=-1 -1 3 1;-1 1 5 -3; t=-1 -1 1 1;%創(chuàng)建一個新的BP網(wǎng)絡(luò)net=newff(minmax(p),3 1,tansig,purelin,traingdm);%設(shè)置訓(xùn)練參數(shù)net.trainParam.epochs=1000;net.train

9、Param.goal=0.001;net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.mc=0.9;%動量因子,缺省為0.9net=train(net,p,t); % 訓(xùn)練網(wǎng)絡(luò)A=sim(net,p) %網(wǎng)絡(luò)仿真目標(biāo)線訓(xùn)練誤差變化曲線訓(xùn)練誤差變化曲線(每次不同)實(shí)驗(yàn)2: BP網(wǎng)絡(luò)用于曲線擬合 要求設(shè)計(jì)一個簡單的BP網(wǎng)絡(luò),實(shí)現(xiàn)對非線性函數(shù)的逼近。通過改變該函數(shù)的參數(shù)以及BP網(wǎng)絡(luò)隱層神經(jīng)元的數(shù)目,來觀察訓(xùn)練時間以及訓(xùn)練誤差的變化情況。Step1: 將要逼近的非線性函數(shù)設(shè)為正弦函數(shù)k = 1; p = -1:.05:1;t = s

10、in(k*pi*p);plot(p,t,-)title(要逼近的非線性函數(shù));xlabel(時間);ylabel(非線性函數(shù)); Step 2: 網(wǎng)絡(luò)建立應(yīng)用函數(shù)newff()建立BP網(wǎng)絡(luò)結(jié)構(gòu),為二層BP網(wǎng)絡(luò)。隱層神經(jīng)元數(shù)目n可以改變,暫設(shè)為10,輸出層有一個神經(jīng)元。選擇隱層和輸出層神經(jīng)元傳遞函數(shù)分別為tansig函數(shù)和purelin函數(shù),網(wǎng)絡(luò)訓(xùn)練算法采用trainlmn = 10;net = newff(minmax(p), n,1, tansig purelin, trainlm);% 對于該初始網(wǎng)絡(luò),可以應(yīng)用sim()函數(shù)觀察網(wǎng)絡(luò)輸出y1 = sim(net,p);% 同時繪制網(wǎng)絡(luò)輸出曲

11、線,并與原函數(shù)相比較figure;plot(p,t,-,p,y1,-)title(未訓(xùn)練網(wǎng)絡(luò)的輸出結(jié)果);xlabel(時間);ylabel(仿真輸出 原函數(shù) );因?yàn)槭褂胣ewff()函數(shù)建立網(wǎng)絡(luò)時,權(quán)值和閾值的初始化是隨機(jī)的,所以網(wǎng)絡(luò)輸出的結(jié)果很差,根本達(dá)不到函數(shù)逼近的目的,并且每次運(yùn)行結(jié)果也有所不同。 Step 3: 網(wǎng)絡(luò)訓(xùn)練 應(yīng)用函數(shù)train()對網(wǎng)絡(luò)進(jìn)行訓(xùn)練之前,要先設(shè)置訓(xùn)練參數(shù)。將訓(xùn)練時間設(shè)置為50,精度設(shè)置為0.01,其余用缺省值。 訓(xùn)練后得到的誤差變化過程如圖:net.trainParam.epochs = 50;net.trainParam.goal = 0.01;net

12、= train(net,p,t);Stet 4: 網(wǎng)絡(luò)測試對于訓(xùn)練好的網(wǎng)絡(luò)進(jìn)行仿真并繪制網(wǎng)絡(luò)輸出曲線,與原始非線性函數(shù)曲線以及未訓(xùn)練網(wǎng)絡(luò)的輸出結(jié)果曲線相比較y2 = sim(net,p);figure;plot(p,t,-,p,y1,-,p,y2,-.)title(訓(xùn)練后網(wǎng)絡(luò)的輸出結(jié)果);xlabel(時間);ylabel(仿真輸出);從圖中可以看出,得到的曲線和原始的非線性函數(shù)曲線很接近。這說明經(jīng)過訓(xùn)練后,BP網(wǎng)絡(luò)對非線性函數(shù)的逼近效果相當(dāng)好。線性函數(shù)uPurelin Transfer Function :( )af nnanMATLAB函數(shù): purelinBP網(wǎng)絡(luò)l 多層前饋網(wǎng)絡(luò)l 主要

13、功能: 函數(shù)逼近, 模式識別, 信息分類l 傳遞函數(shù):隱層采用S形函數(shù),輸出層S形函數(shù)或線性函數(shù)BP網(wǎng)絡(luò)的設(shè)計(jì)(2)隱層的節(jié)點(diǎn)數(shù) 隱層的節(jié)點(diǎn)數(shù)與求解問題的要求,輸入輸出單元數(shù)多少有關(guān). 對于模式識別/分類的節(jié)點(diǎn)數(shù)可按下列公式設(shè)計(jì)傳遞函數(shù) 隱層傳遞函數(shù)采用S型函數(shù), 輸出層采用S型函數(shù)或線性函數(shù)訓(xùn)練方法及其參數(shù)選擇 針對不同應(yīng)用, BP網(wǎng)絡(luò)提供了多種訓(xùn)練學(xué)習(xí)方法.0innnan其中為隱層節(jié)點(diǎn)數(shù),in為輸入節(jié)點(diǎn)數(shù),a為110之間的整數(shù)BP網(wǎng)絡(luò)設(shè)計(jì)實(shí)例采用動量梯度下降算法訓(xùn)練BP網(wǎng)絡(luò). 訓(xùn)練樣本%定義訓(xùn)練樣本p=-1 -1 3 1;-1 1 5 -3; t=-1 -1 1 1;%創(chuàng)建一個新的BP網(wǎng)絡(luò)

14、net=newff(minmax(p),3 1,tansig,purelin,traingdm);%設(shè)置訓(xùn)練參數(shù)net.trainParam.epochs=1000;net.trainParam.goal=0.001;net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.mc=0.9;%動量因子,缺省為0.9net=train(net,p,t); % 訓(xùn)練網(wǎng)絡(luò)A=sim(net,p) %網(wǎng)絡(luò)仿真BP網(wǎng)絡(luò)設(shè)計(jì)實(shí)例采用動量梯度下降算法訓(xùn)練BP網(wǎng)絡(luò). 訓(xùn)練樣本%定義訓(xùn)練樣本p=-1 -1 3 1;-1 1 5 -3; t=-1 -1 1 1;%創(chuàng)建一個新的BP網(wǎng)絡(luò)net=newff(minmax(p),3 1,tansig,purelin,traingdm);%設(shè)置訓(xùn)練參數(shù)net.trainParam.epochs=1000;net.trainParam.goal=0.001;net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.mc=0.9;%動量因子,缺省為0.9net=train(net,p,t); % 訓(xùn)練網(wǎng)絡(luò)A=sim(net,p) %網(wǎng)絡(luò)仿真n = 10;net = newff(minmax(p), n,1

溫馨提示

  • 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

提交評論