神經(jīng)網(wǎng)絡(luò)實驗課件_第1頁
神經(jīng)網(wǎng)絡(luò)實驗課件_第2頁
神經(jīng)網(wǎng)絡(luò)實驗課件_第3頁
神經(jīng)網(wǎng)絡(luò)實驗課件_第4頁
神經(jīng)網(wǎng)絡(luò)實驗課件_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗參考書神經(jīng)網(wǎng)絡(luò)理論與MATLAB 7實現(xiàn),電子工業(yè)出版社;飛思科技產(chǎn)品研發(fā)中心神經(jīng)網(wǎng)絡(luò)模型及其MATLAB仿真程序設(shè)計,清華大學(xué)出版社;周開利 康耀紅MATLAB神經(jīng)網(wǎng)絡(luò)與應(yīng)用,國防工業(yè)出版社;董長虹MATLAB 簡介 MATLAB工具箱及啟動 MATLAB工具箱及啟動 MATLAB工具箱主要包括: ( 1 ) 控制系統(tǒng)工具箱(Control Systems Toolbox); ( 2 ) 系統(tǒng)辨識工具箱(System Identification Toolbox); ( 3 ) 魯棒控制工具箱(Robust Control Toolbox); ( 4 ) 多變量頻率設(shè)計工具箱(Multi

2、variab一e Frequency Design Toolbox); ( 5 ) p分析與綜合工具箱(x-analysis And Synthesis Toolbox); ( 6 ) 神經(jīng)網(wǎng)絡(luò)工具箱(Neural Network Toolbox); ( 7 ) 最優(yōu)化工具箱(Optimization Toolbox); ( 8 ) 小波分析工具箱(Wavelet Toolbox); ( 9 ) 通訊工具箱(Communication Toolbox); MATLAB 簡介 MATLAB工具箱及啟動 (10) 財政金融工具箱(Finanical Toolbox); (11)頗率域系統(tǒng)辨識工具箱

3、(Frequency Domain System IdentificationToolbox);(12)模糊邏輯工具箱(Fuzzy Logic Toolbox);(13)商階譜分析工具箱(Higher Order Spectral Analysis Toolbox);(14)圖像處理工具箱(Image Processing Toolbox);(15)線性矩陣不等式控制工具箱(LMI Control Toolbox);(16)模型預(yù)測控制工具箱(Model Predictive Control Toolbox);(17) 偏徽分方程工具箱(Partial Differential Equatio

4、n Toolbox);(18)信號處理工具箱(Signal Processing Toolbox);(19) 樣條工具箱(Spline Toolbox); (20) 統(tǒng)計工具箱(Statistics Toolbox); (21) 符號數(shù)學(xué)工具箱(Symbolic Math Toolbox); (22) 電廠系統(tǒng)(Power System)MATLAB 簡介 MATLAB的常用操作命令 MATLAB中的一些常用操作命令 Matlab神經(jīng)網(wǎng)絡(luò)工具箱的幫助1、help nnet2、help nndemos可以顯示要討論的神經(jīng)網(wǎng)絡(luò)的例子和應(yīng)用代碼3、help demo toolbox neural n

5、etwork單層感知器模型如圖2.2.2定義加權(quán)系數(shù)wij為第i個神經(jīng)元到第j個神經(jīng)元之間的連接值 圖2.2.2例題例2.1 采用單一感知器神經(jīng)元解決一個簡單的分類問題:將四個輸入輸入矢量分為兩類,其中兩個矢量對應(yīng)的目標(biāo)值為1,另兩個矢量對應(yīng)的目標(biāo)值為0,即 輸入矢量: P=-0.5 0.5 0.3 0.0; -0.5 0.5 -0.5 1.0 目標(biāo)分類矢量: T=1 1 0 0 訓(xùn)練結(jié)束后得到如圖所示的分類結(jié)果,分類線將兩類輸入矢量分開,其相應(yīng)的訓(xùn)練誤差的變化如圖所示。這說明經(jīng)過4步訓(xùn)練后,就達到了誤差指標(biāo)的要求。 分類結(jié)果 誤差變化曲線下面給出本例的MATLAB程序%NEWP 建立一個感知

6、器神經(jīng)元%INIT 對感知器神經(jīng)元初始化%TRAIN 訓(xùn)練感知器神經(jīng)元%SIM 對感知器神經(jīng)元仿真pause % 敲任意鍵繼續(xù)clc% P為輸入矢量P = -0.5 -0.5 +0.3 +0.0; -0.5 +0.5 -0.5 1.0;% T為目標(biāo)矢量T = 1 1 0 0;pause% 繪制輸入矢量圖plotpv(P,T);pause% 定義感知器神經(jīng)元并對其初始化 net=newp(-0.5 0.5;-0.5 1,1);% 訓(xùn)練感知器神經(jīng)元net=train(net,P,T);pause% 繪制結(jié)果分類曲線plotpv(P,T)plotpc(net.iw1,1,net.b1);pause%

7、 利用訓(xùn)練完的感知器神經(jīng)元分類p = -0.5; 0;a = sim(net,p)echo off例題與分析例2.2 設(shè)計一個簡單的單層線性神經(jīng)元。解 首先,定義輸入樣本矢量和目標(biāo)矢量 P=+1.0 -1.2; T=+0.5 +1.0;然后,利用函數(shù)newlind設(shè)計一個線性層作為單層線性神經(jīng)元。最后,利用函數(shù)sim對網(wǎng)絡(luò)進行檢驗。下面是本例的MATLAB程序。clc%NEWLIND 建立一個線性神經(jīng)網(wǎng)絡(luò) %SIM 對線性神經(jīng)網(wǎng)絡(luò)仿真pauseclcP = 1.0 -1.2;T = 0.5 1.0;pause%繪制誤差曲面w_range = -1:0.1:1;b_range = -1:0.1:

8、1; BP網(wǎng)絡(luò)模型BP網(wǎng)絡(luò)模型如圖2.4.1所示: 圖 2.4.1I/O 關(guān)系I-H a 1 = tansig (IW 1,1 p 1 +b 1 )tansig(x)=tanh(x)=(ex-e-x)/(ex+e-x)H-O a 2 = purelin (LW 2,1 a 1 +b 2 )輸入層神經(jīng)元個數(shù)n隱含層神經(jīng)元個數(shù)n1輸出層神經(jīng)元個數(shù)s2logsigmatlab 函數(shù):dA_dN = dlogsig(N,A)tansigmatlab 函數(shù):dA_dN = dtansig(N,A) MATLAB函數(shù)舊版下的訓(xùn)練函數(shù)為:trainbp.mTp=disp_freq max_epoch err

9、_goal lr;w,b,epochs,errors=trainbp(w,b,F,P,T,Tp);F為網(wǎng)絡(luò)的激活函數(shù)名:tansig,logsig,purelin而在新版下完全不同: 首先建立一個網(wǎng)絡(luò) net=newff(-2 2,5 1,tansig purelin,traingd);計算輸出: y1=sim(net,P);繪圖: plot(P,T,*);訓(xùn)練: net,tr=train(net,P,T);訓(xùn)練函數(shù)有很多種,如:traingd,traingdm,traingdx,trainlm在訓(xùn)練之前要對網(wǎng)絡(luò)進行初始化,并設(shè)置好訓(xùn)練參數(shù)。初始化: net.iw1,1=W10; net.b1

10、=B10; net.lw2,1=W20; net.b2=B20;參數(shù)設(shè)置:net.trainParam.epochs=100; %最大訓(xùn)練次數(shù)net.trainParam.goal=0.01; %訓(xùn)練所要達到的精度 net.trainParam.show=10; %在訓(xùn)練過程中顯示的頻率 net.trainParam.lr=0.1; %學(xué)習(xí)速率解 首先定義輸入樣本和目標(biāo)矢量 P=-1:0.1:1; T=-0.9602 -0.5770. 0.0729 0.3771 0.6405 0.6600 0.4609 . 0.1336 -0.2013 -0.4344 -0.5000 -0.3930 -0.1

11、647 0.0988 0.3072 0.3960 0.3449 0.1816 -0.0312 -0.2189 -0.3201;上述數(shù)據(jù)的圖形如圖2.4.2所示。 圖:2.4.2利用函數(shù)newff建立一個bp神經(jīng)元網(wǎng)絡(luò) net=newff(minmax(P),5 1,tansig purelin, traingd, learngd, sse);然后利用函數(shù)train對網(wǎng)絡(luò)進行訓(xùn)練 net.trainParam.show=10; net.trainParam.epochs=8000; net.trainParam.goal=0.02; net.trainParam.lr=0.01; net,tr=

12、train(net,P,T); 圖2.4.3 訓(xùn)練100次的結(jié)果 圖2.4.4 訓(xùn)練200次的結(jié)果 圖2.4.5 訓(xùn)練300次的結(jié)果 圖2.4.6 訓(xùn)練400次的結(jié)果 圖2.4.7 訓(xùn)練結(jié)束后的網(wǎng)絡(luò)輸出與誤差結(jié)果% Example 3.13%clf;figure(gcf)setfsize(500,200);echo on%NEWFF 建立一個BP網(wǎng)絡(luò) %TRAIN 對BP網(wǎng)絡(luò)進行訓(xùn)練%SIM 對BP網(wǎng)絡(luò)進行仿真pauseP = -1:0.1:1;T = -.9602 -.5770 -.0729 .3771 .6405 .6600 .4609 . .1336 -.2013 -.4344 -.50

13、00 -.3930 -.1647 .0988 . .3072 .3960 .3449 .1816 -.0312 -.2189 -.3201;plot(P,T,+);title(Training Vectors);xlabel(Input Vector P);ylabel(Target Vector T);pausenet=newff(minmax(P),5 1,tansig purelin,traingd,learngd,sse);echo offk = pickic;if k = 2 net.iw1,1 = 3.5000; 3.5000; 3.5000; 3.5000; 3.5000; ne

14、t.b1 = -2.8562; 1.0774; -0.5880; 1.4083; 2.8722; net.lw2,1 = 0.2622 -0.2375 -0.4525 0.2361 -0.1718; net.b2 = 0.1326;endnet.iw1,1net.b1net.lw2,1net.b2pauseecho onme=8000;net.trainParam.show=10;net.trainParam.goal=0.02;net.trainParam.lr=0.01;A=sim(net,P);sse=sumsqr(T-A);for i=1:me/100 if sse clear all

15、; P = -1:0.1:1;T = -.9602 -.5770 -.0729 .3771 .6405 .6600 .4609 . .1336 -.2013 -.4344 -.5000 -.3930 -.1647 .0988 . .3072 .3960 .3449 .1816 -.0312 -.2189 -.3201;plot(P,T,+);title(Training Vectors);xlabel(Input Vector P);ylabel(Target Vector T);net=newff(-1 1,5 1,tansig purelin,traingdx,learngdm);net.

16、trainParam.epochs=2500;net.trainParam.goal=0.02;net.trainParam.show=10;net.trainParam.lr=0.05;net=train(net,P,T);BP網(wǎng)絡(luò)訓(xùn)練的幾種模式批處理模式(batch mode)訓(xùn)練過程以所有樣本為一個epoch。訓(xùn)練時計算出所有樣本的整體誤差后,加權(quán)系數(shù)才調(diào)整。matlab 函數(shù) trainb,非直接調(diào)用,用net.trainFcn說明 模式學(xué)習(xí)模式(pattern mode) 訓(xùn)練過程輸入一個樣本,計算學(xué)習(xí)誤差,調(diào)整加權(quán)系數(shù)。matlab 函數(shù) trainc,trains, trainr

17、非直接調(diào)用,用net.trainFcn 說明 在MATLAB工具箱中,帶有動量因子的權(quán)值修正法是用函數(shù)learnbpm.m來實現(xiàn)的。對網(wǎng)絡(luò)進行訓(xùn)練可用函數(shù)traingdm.m。我們可以用函數(shù)newff.m建立一個用附加動量法訓(xùn)練的BP網(wǎng)絡(luò): net=newff(minmax(P),5 1,tansig purelin,traingdm,learngm,sse); MATLAB工具箱總帶有自適應(yīng)學(xué)習(xí)速率進行反向傳播訓(xùn)練的函數(shù)為:traingda.m。使用方法為: net,tr=traingda(net,Pd,Tl,Ai,Q,TS,VV)或者, 先設(shè)置 net.trainFcn=traingda

18、然后進行訓(xùn)練 net=train(net,P,T); 例2.4 沿用例2.3中的輸入矢量和目標(biāo)矢量。 同其他訓(xùn)練函數(shù)的調(diào)用方法一樣,這個訓(xùn)練過程函數(shù)的應(yīng)用非常簡單。下面給出本例的MATLAB程序。% Example %clf;%NEWFF 建立一個BP網(wǎng)絡(luò)%TRAIN 對網(wǎng)絡(luò)進行訓(xùn)練%SIM 對網(wǎng)絡(luò)進行仿真pauseP = -1:.1:1;T = -.9602 -.5770 -.0729 .3771 .6405 .6600 .4609 . .1336 -.2013 -.4344 -.5000 -.3930 -.1647 .0988 . .3072 .3960 .3449 .1816 -.031

19、2 -.2189 -.3201;plot(P,T,+);title(Training Vectors);xlabel(Input Vector P);ylabel(Target Vector T);pausenet=newff(minmax(P),5 1,tansig purelin,traingda,learngd,sse);echo offk = pickic;if k = 2 net.iw1,1 = 3.5000; 3.5000; 3.5000; 3.5000; 3.5000; net.b1 = -2.8562; 1.0774; -0.5880; 1.4083; 2.8722; net.lw2,1 = 0.2622 -0.2375 -0.4525 0.2361 -0.1718; net.b2 = 0.1326;endnet.iw1,1net.b1net.lw2,1net.b2pauseecho onnet.trainparam.lr_inc=1.05;net.trainParam.epochs=8000;net.trainParam.show=10;net.trainParam.goal=0.02;net.trainParam.lr=0.01;net,tr=trai

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論