BP神經(jīng)網(wǎng)絡(luò)matlab實(shí)例(簡(jiǎn)單而經(jīng)典)_第1頁(yè)
BP神經(jīng)網(wǎng)絡(luò)matlab實(shí)例(簡(jiǎn)單而經(jīng)典)_第2頁(yè)
BP神經(jīng)網(wǎng)絡(luò)matlab實(shí)例(簡(jiǎn)單而經(jīng)典)_第3頁(yè)
BP神經(jīng)網(wǎng)絡(luò)matlab實(shí)例(簡(jiǎn)單而經(jīng)典)_第4頁(yè)
BP神經(jīng)網(wǎng)絡(luò)matlab實(shí)例(簡(jiǎn)單而經(jīng)典)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

p=p1';t=t1';[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);%原始數(shù)據(jù)歸一化net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx');%設(shè)置網(wǎng)絡(luò),建立相應(yīng)的BP網(wǎng)絡(luò),minmax(pn)找到pn矩陣的最大最小值net.trainParam.show=2000;%訓(xùn)練網(wǎng)絡(luò)net.trainParam.lr=0.01;net.trainParam.epochs=100000;net.trainParam.goal=1e-5;[net,tr]=train(net,pn,tn);%調(diào)用TRAINGDM算法訓(xùn)練BP網(wǎng)絡(luò)pnew=pnew1';pnewn=tramnmx(pnew,minp,maxp);anewn=sim(net,pnewn);%對(duì)BP網(wǎng)絡(luò)進(jìn)行仿真anew=postmnmx(anewn,mint,maxt);%復(fù)原數(shù)據(jù)y=anew';1、BP網(wǎng)絡(luò)構(gòu)建〔1〕生成BP網(wǎng)絡(luò):由維的輸入樣本最小最大值構(gòu)成的維矩陣。:各層的神經(jīng)元個(gè)數(shù)。:各層的神經(jīng)元傳遞函數(shù)。:訓(xùn)練用函數(shù)的名稱。〔2〕網(wǎng)絡(luò)訓(xùn)練〔3〕網(wǎng)絡(luò)仿真{'tansig','purelin'},'trainrp'BP網(wǎng)絡(luò)的訓(xùn)練函數(shù)訓(xùn)練方法訓(xùn)練函數(shù)梯度下降法traingd有動(dòng)量的梯度下降法traingdm自適應(yīng)lr梯度下降法traingda自適應(yīng)lr動(dòng)量梯度下降法traingdx彈性梯度下降法trainrpFletcher-Reeves共軛梯度法traincgfPloak-Ribiere共軛梯度法traincgpPowell-Beale共軛梯度法traincgb量化共軛梯度法trainscg擬牛頓算法trainbfg一步正割算法trainossLevenberg-MarquardttrainlmBP網(wǎng)絡(luò)訓(xùn)練參數(shù)訓(xùn)練參數(shù)參數(shù)介紹訓(xùn)練函數(shù)最大訓(xùn)練次數(shù)〔缺省為10〕traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm訓(xùn)練要求精度〔缺省為0〕traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm學(xué)習(xí)率〔缺省為0.01〕traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm最大失敗次數(shù)〔缺省為5〕traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm最小梯度要求〔缺省為1e-10〕traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm顯示訓(xùn)練迭代過(guò)程〔NaN表示不顯示,缺省為25〕traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlm最大訓(xùn)練時(shí)間〔缺省為inf〕traingd、traingdm、traingda、traingdx、trainrp、traincgf、traincgp、traincgb、trainscg、trainbfg、trainoss、trainlmnet.trainParam.mc動(dòng)量因子〔缺省0.9〕traingdm、traingdxnet.trainParam.lr_inc學(xué)習(xí)率lr增長(zhǎng)比〔缺省為1.05〕traingda、traingdxnet.trainParam.lr_dec學(xué)習(xí)率lr下降比〔缺省為0.7〕traingda、traingdxnet.trainParam.max_perf_inc表現(xiàn)函數(shù)增加最大比〔缺省為1.04〕traingda、traingdxnet.trainParam.delt_inc權(quán)值變化增加量〔缺省為1.2〕trainrpnet.trainParam.delt_dec權(quán)值變化減小量〔缺省為0.5〕trainrpnet.trainParam.delt0初始權(quán)值變化〔缺省為0.07〕trainrpnet.trainParam.deltamax權(quán)值變化最大值〔缺省為50.0〕trainrpnet.trainParam.searchFcn一維線性搜索方法〔缺省為srchcha〕traincgf、traincgp、traincgb、trainbfg、trainossnet.trainParam.sigma因?yàn)槎吻髮?dǎo)對(duì)權(quán)值調(diào)整的影響參數(shù)〔缺省值5.0e-5〕trainscgnet.trainParam.lambdaHessian矩陣不確定性調(diào)節(jié)參數(shù)〔缺省為5.0e-7〕trainscgnet.trainParam.men_reduc控制計(jì)算機(jī)內(nèi)存/速度的參量,內(nèi)存較大設(shè)為1,否那么設(shè)為2〔缺省為1〕trainlmnet.trainParam.mu的初始值〔缺省為0.001〕trainlmnet.trainParam.mu_dec的減小率〔缺省為0.1〕trainlmnet.trainParam.mu_inc的增長(zhǎng)率〔缺省為10〕trainlmnet.trainParam.mu_max的最大值〔缺省為1e10〕trainlm2、BP網(wǎng)絡(luò)舉例舉例1、%traingdclear;clc;P=[-1-1224;05057];T=[-1-111-1];%利用minmax函數(shù)求輸入樣本范圍net=newff(minmax(P),[5,1],{'tansig','purelin'},'trainrp');%minmax(P)取P的最大最小值;[5,1]第一次神經(jīng)元5個(gè),第二層1個(gè);'tansig','purelin'神經(jīng)網(wǎng)絡(luò)第一層和第二層的轉(zhuǎn)移函數(shù);'trainrp'網(wǎng)絡(luò)訓(xùn)練函數(shù)。net.trainParam.show=50;%最多顯示訓(xùn)練步數(shù)net.trainParam.lr=0.05;%學(xué)習(xí)率〔缺省為0.01〕net.trainParam.epochs=300;%設(shè)置訓(xùn)練次數(shù),net.trainParam.goal=1e-5;%設(shè)置精確度[net,tr]=train(net,P,T);%訓(xùn)練開始net.iw{1,1}%隱層權(quán)值net.b{1}%隱層閾值net.lw{2,1}%輸出層權(quán)值net.b{2}%輸出層閾值sim(net,P)舉例2、利用三層BP神經(jīng)網(wǎng)絡(luò)來(lái)完成非線性函數(shù)的逼近任務(wù),其中隱層神經(jīng)元個(gè)數(shù)為五個(gè)。樣本數(shù)據(jù):輸入X輸出D輸入X輸出D輸入X輸出D-1.0000-0.9602-0.30000.13360.40000.3072-0.9000-0.5770-0.2000-0.20230.50000.3960-0.8000-0.0729-0.1000-0.43440.60000.3449-0.70000.37710-0.50000.70000.1816-0.60000.64050.1000-0.39300.8000-0.3120-0.50000.66000.2000-0.16470.9000-0.2189-0.40000.46090.3000-0.09881.0000-0.3201解:看到期望輸出的范圍是,所以利用雙極性Sigmoid函數(shù)作為轉(zhuǎn)移函數(shù)。程序如下:clear;clc;X=-1:0.1:1;D=[-0.9602-0.5770-0.07290.37710.64050.66000.4609...0.1336-0.2023-0.4344-0.5000-0.3930-0.1647-.0988...0.30720.39600.34490.1816-0.312-0.2189-0.3201];figure;plot(X,D,'*');%繪制原始數(shù)據(jù)分布圖〔附錄:1-1〕net=newff([-11],[51],{'tansig','tansig'});net.trainParam.epochs=1000;%訓(xùn)練的最大次數(shù)=0.005;%全局最小誤差net=train(net,X,D);O=sim(net,X);figure;plot(X,D,'*',X,O);%繪制訓(xùn)練后得到的結(jié)果和誤差曲線〔附錄:1-2、1-3〕V=net.iw{1,1};%輸入層到中間層權(quán)值theta1=net.b{1};%中間層各神經(jīng)元閾值W=net.lw{2,1};%中間層到輸出層權(quán)值theta2=net.b{2};%輸出層各神經(jīng)元閾值所得結(jié)果如下:輸入層到中間層的權(quán)值:中間層各神經(jīng)元的閾值:中間層到輸出層的權(quán)值:輸出層各神經(jīng)元的閾值:舉例3、利用三層BP神經(jīng)網(wǎng)絡(luò)來(lái)完成非線性函數(shù)的逼近任務(wù),其中隱層神經(jīng)元個(gè)數(shù)為五個(gè)。樣本數(shù)據(jù):輸入X輸出D輸入X輸出D輸入X輸出D00448211539322621043371解:看到期望輸出的范圍超出,所以輸出層神經(jīng)元利用線性函數(shù)作為轉(zhuǎn)移函數(shù)。程序如下:clear;clc;X=[012345678910];D=[01234321234];figure;plot(X,D,'*');%繪制原始數(shù)據(jù)分布圖net=newff([010],[51],{'tansig','purelin'})net.trainParam.epochs=100;net.trainParam.goal=0.005;net=train(net,X,D);O=sim(net,X);figure;plot(X,D,'*',X,O);%繪制訓(xùn)練后得到的結(jié)果和誤差曲線〔附錄:2-2、2-3〕V=net.iw{1,1}%輸入層到中間層權(quán)值theta1=net.b{1}%中間層各神經(jīng)元閾值W=net.lw{2,1}%中間層到輸出層權(quán)值theta2=net.b{2}%輸出層各神經(jīng)元閾值所得結(jié)果如下:輸入層到中間層的權(quán)值:中間層各神經(jīng)元的閾值:中間層到輸出層的權(quán)值:輸出層各神經(jīng)元的閾值:?jiǎn)栴}:以下是上證指數(shù)2023年2月2日到3月27日的收盤價(jià)格,構(gòu)建一個(gè)三層BP神經(jīng)網(wǎng)絡(luò),利用該組信號(hào)的6個(gè)過(guò)去值預(yù)測(cè)信號(hào)的將來(lái)值。日期價(jià)格日期價(jià)格2023/02/022023.6822023/03/022093.4522023/02/032060.8122023/03/032071.4322023/02/042107.7512023/03/042198.1122023/02/052098.0212023/03/052221.0822023/02/062181.2412023/03/062193.0122023/02/092224.7112023/03/092118.7522023/02/102265.1612023/03/102158.5722023/02/112260.8222023/03/112139.0212023/02/122248.0922023/03/122133.8812023/02/132320.7922023/03/132128.8512023/02/162389.3922023/03/162153.2912023/02/172319.4422023/03/172218.3312023/02/182209.8622023/03/182223.7312023/02/192227.1322023/03/192265.7612023/02/202261.4822023/03/202281.0912023/02/232305.7822023/03/232325.4812023/02/242200.6522023/03/242338.4212023/02/252206.5722023/03/252291.5512023/02/262121.2522023/03/262361.7012023/02/272082.8522023/03/272374.44loaddata3_1.txt;[m,n]=size(data3_1);tsx=data3_1(1:m-1,1);tsx=tsx';ts=data3_1(2:m,1);ts=ts';[TSX,TSXps]=mapminmax(tsx,1,2);[TS,TSps]=mapminmax(ts,1,2);TSX=TSX';figure;plot(ts,'LineWidth',2);title('到杭旅游總?cè)藬?shù)(1999.01.01-2023.12.31)','FontSize',12);xlabel('統(tǒng)計(jì)年份(1990.12.19-2023.08.19)','FontSize',12);ylabel('歸一化后的總游客數(shù)/萬(wàn)人','FontSize',12);gridon;%生成BP網(wǎng)絡(luò)、利用minmax函數(shù)求輸入樣本范圍net_1=newff(minmax(TS),[10,1],{'tansig','purelin'},'traincgf')%設(shè)置訓(xùn)練參數(shù)net_1.trainParam.show=50;%顯示訓(xùn)練迭代過(guò)程〔NaN表示不顯示,缺省25〕net_1.trainParam.lr=0.025;%學(xué)習(xí)率〔缺省0.01〕net_1.trainParam.mc=0.9;%動(dòng)量因子〔缺省0.9〕net_1.trainParam.epochs=10000;%最大訓(xùn)練次數(shù)net_1.trainParam.goal=0.001;%訓(xùn)練要求精度inputWeights=net_1.IW{1,1}%輸入層權(quán)值inputbias=net_1.b{1}%輸入層閾值layerWeights=net_1.LW{2,1}%輸出層權(quán)值layerbias=net_1.b{2}%輸出層閾值TS',TSX%網(wǎng)絡(luò)訓(xùn)練[net_1,tr]=train(net_1,TS,TSX);另一問(wèn)題隱層個(gè)數(shù)及訓(xùn)練次數(shù)可以在定義網(wǎng)絡(luò)時(shí)自己設(shè)定,圖形的話是系統(tǒng)自己生成的.

題目的意思是00得到0,01得到1,10得到1,11得到0。前者為輸入,后者為輸出.

所以就這樣構(gòu)造:

%輸入一共四組,每組兩個(gè)

p=[0,0;0,1;1,0;1,1];

%輸出:

t=[0,1,1,0];

構(gòu)造神經(jīng)網(wǎng)絡(luò):

net=newff(p',t,{10},{'tansig'},'trainlm');

%上面這句話的意思是建立新的神經(jīng)網(wǎng)絡(luò)net,newff(輸入,輸出,{隱層數(shù)量及該層的節(jié)點(diǎn)個(gè)數(shù)},{傳輸函數(shù)名},訓(xùn)練函數(shù));{10}代表單隱層,并且該層節(jié)點(diǎn)為10個(gè),如果想顯示多隱層,比方雙隱層,{10,15}這樣就行,傳輸函數(shù)也要相應(yīng)增加,比方{'tansig','logsig'}節(jié)點(diǎn)數(shù)和傳輸函數(shù)名可以隨意調(diào)整,目的當(dāng)然是讓預(yù)測(cè)結(jié)果更精確

%之后,

net.trainParam.goal=0.00001;%設(shè)置精確度

net.trainParam.epochs=5000;%設(shè)置訓(xùn)練次數(shù),5000次

[net,tr]=train(net,p',t);%訓(xùn)練開始

。。。。。。。。

這樣就可以訓(xùn)練了,過(guò)幾秒后圖片matlab會(huì)自動(dòng)生成

最后想測(cè)試訓(xùn)練結(jié)果的話,比方你想打00進(jìn)去看它是不是也給0

p=[00];

a=sim(net,p')

。。。sim就是讓net去預(yù)測(cè)結(jié)果

epochs:100最大訓(xùn)練次數(shù)

goal:0訓(xùn)練目標(biāo)

max_fail:5最多驗(yàn)證失敗次數(shù)

mem_reduc:1Factortouseformemory/speedtradeoff

min_grad:1.0000e-010最小訓(xùn)練梯度

mu:1.0000e-003mu初始參數(shù)

mu_dec:0.1000mu減少因子

mu_inc:10mu增加因子

mu_max:1.0000e+010mu最大可取

show:25最多顯示訓(xùn)練步數(shù)

time:Inf最多訓(xùn)練時(shí)間,無(wú)限制minmax(P_train)得到矩陣P_train的最小和最大值〔找到每行的最小和最大,有多少行就有多少對(duì)最小和最大〕;

[17,3]意思是在隱層建立17個(gè)神經(jīng)元,輸出層建立一個(gè)神經(jīng)元;

'tansig','logsig'},'traingdm'是神經(jīng)網(wǎng)絡(luò)的一些算法;

做BP網(wǎng)絡(luò)的話,大概要用到

newff,建立BP

init網(wǎng)絡(luò)初始化

train網(wǎng)絡(luò)訓(xùn)練

sim仿真

記得還要數(shù)據(jù)歸一化啊追問(wèn)能給上面的數(shù)據(jù)給個(gè)代碼么?謝謝啊答復(fù)P_pix=[175.8728234670.3809570960.270238095

149.50752491130.75581480.370238095

155.11044451450.9348177710.46547619

151.5008251950.6270592910.610714286

163.4778272600.367022250.754761905

219.5723116720.3279101970.257142857

176.3567251190.6747687110.351190476

139.76219881851.3236769420.489285714

162.38371911260.7759398580.642857143

175.2430455700.3994452380.742857143

207.9933893980.4711688210.280952381

140.03570971160.8283601390.357142857

139.36462971310.9399802540.48452381

1389045985090.632142857

175.5874268670.3815762960.741666667];

t=[100;110;010;011;001;100;110;010;011;001;100;110;010;011;001];

t_train=t';

P_train=P_pix';

P_min_max=minmax(P_train);

forn1=1:15

P_train(1,n1)=(P_train(1,n1)-P_min_max(1,1))/(P_min_max(1,2)-P_min_max(

溫馨提示

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

評(píng)論

0/150

提交評(píng)論