神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)蘇析超課件_第1頁(yè)
神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)蘇析超課件_第2頁(yè)
神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)蘇析超課件_第3頁(yè)
神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)蘇析超課件_第4頁(yè)
神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)蘇析超課件_第5頁(yè)
已閱讀5頁(yè),還剩18頁(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)介

主要內(nèi)容BP神經(jīng)網(wǎng)絡(luò)編程BP神經(jīng)網(wǎng)絡(luò)工具箱RBP網(wǎng)絡(luò)工具箱GRNN網(wǎng)絡(luò)工具箱……BP神經(jīng)網(wǎng)絡(luò)通常是指基于誤差反向傳播算法(BP算法)的多層前向神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)的主要特點(diǎn)是信號(hào)向前傳遞,誤差反向傳播。向前傳遞中,輸入信號(hào)從輸入層經(jīng)隱含層逐層處理,直至輸出層。每一層的神經(jīng)元狀態(tài)只影響到下一層神經(jīng)元狀態(tài)。如果輸出層得不到期望輸出,則轉(zhuǎn)入反向傳播,根據(jù)預(yù)測(cè)誤差調(diào)整網(wǎng)絡(luò)權(quán)值和閾值,從而使BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)輸出不斷逼近期望輸出。1.BP神經(jīng)網(wǎng)絡(luò)原理神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)%%清空環(huán)境變量clcclear%%訓(xùn)練數(shù)據(jù)預(yù)測(cè)數(shù)據(jù)提取及歸一化%下載四類(lèi)語(yǔ)音信號(hào)loaddata1c1loaddata2c2loaddata3c3loaddata4c4%從1到2000間隨機(jī)排序k=rand(1,2000);[m,n]=sort(k);%輸入輸出數(shù)據(jù)input=data(:,2:25);output1=data(:,1);%四個(gè)特征信號(hào)矩陣合成一個(gè)矩陣data(1:500,:)=c1(1:500,:);data(501:1000,:)=c2(1:500,:);data(1001:1500,:)=c3(1:500,:);data(1501:2000,:)=c4(1:500,:);神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)%隨機(jī)提取1500個(gè)樣本為訓(xùn)練樣本,500個(gè)樣本為預(yù)測(cè)樣本input_train=input(n(1:1500),:)';output_train=output(n(1:1500),:)';input_test=input(n(1501:2000),:)';output_test=output(n(1501:2000),:)';%輸入數(shù)據(jù)歸一化[inputn,inputps]=mapminmax(input_train);神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)%%網(wǎng)絡(luò)結(jié)構(gòu)初始化innum=24;midnum=25;outnum=4;

%權(quán)值初始化w1=rands(midnum,innum);b1=rands(midnum,1);w2=rands(midnum,outnum);b2=rands(outnum,1);w2_1=w2;w2_2=w2_1;w1_1=w1;w1_2=w1_1;b1_1=b1;b1_2=b1_1;b2_1=b2;b2_2=b2_1;%學(xué)習(xí)率xite=0.1;%alfa=0.01;神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)

%%權(quán)值閥值修正%計(jì)算誤差e=output_train(:,i)-yn;E(ii)=E(ii)+sum(abs(e));

%計(jì)算權(quán)值變化率dw2=e*Iout;db2=e';神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)forj=1:1:midnumS=1/(1+exp(-I(j)));FI(j)=S*(1-S);endfork=1:1:innumforj=1:1:midnumdw1(k,j)=FI(j)*x(k)*(e(1)*w2(j,1)+e(2)*w2(j,2)+e(3)*w2(j,3)+e(4)*w2(j,4));db1(j)=FI(j)*(e(1)*w2(j,1)+e(2)*w2(j,2)+e(3)*w2(j,3)+e(4)*w2(j,4));endend神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)

w1=w1_1+xite*dw1';b1=b1_1+xite*db1';w2=w2_1+xite*dw2';b2=b2_1+xite*db2';

w1_2=w1_1;w1_1=w1;w2_2=w2_1;w2_1=w2;b1_2=b1_1;b1_1=b1;b2_2=b2_1;b2_1=b2;endend神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)%%結(jié)果分析

%根據(jù)網(wǎng)絡(luò)輸出找出數(shù)據(jù)屬于哪類(lèi)fori=1:500output_fore(i)=find(fore(:,i)==max(fore(:,i)));end%BP網(wǎng)絡(luò)預(yù)測(cè)誤差error=output_fore-output1(n(1501:2000))';%畫(huà)出預(yù)測(cè)語(yǔ)音種類(lèi)和實(shí)際語(yǔ)音種類(lèi)的分類(lèi)圖figure(1)plot(output_fore,'r')holdonplot(output1(n(1501:2000))','b')legend('預(yù)測(cè)語(yǔ)音類(lèi)別','實(shí)際語(yǔ)音類(lèi)別')神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)%畫(huà)出誤差圖figure(2)plot(error)title('BP網(wǎng)絡(luò)分類(lèi)誤差','fontsize',12)xlabel('語(yǔ)音信號(hào)','fontsize',12)ylabel('分類(lèi)誤差','fontsize',12)神經(jīng)網(wǎng)絡(luò)的MATLAB實(shí)現(xiàn)k=zeros(1,4);%找出判斷錯(cuò)誤的分類(lèi)屬于哪一類(lèi)fori=1:500iferror(i)~=0[b,c]=max(output_test(:,i));switchccase1k(1)=k(1)+1;case2k(2)=k(2)+1;case3k(3)=k(3)+1;case4k(4)=k(4)+1;endendendnewff函數(shù)newff用來(lái)生成一個(gè)BP網(wǎng)絡(luò)net=newff(PR,[S1S2...SN],{TF1TF2...TFN},BTF,BLF,PF)PR:一個(gè)R×2矩陣,由R維輸入向量的每維最小值和最大值組成Si:第i層的神經(jīng)元個(gè)數(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’,’purelin’},’trainlm’);

%生成一個(gè)兩層BP網(wǎng)絡(luò),隱層和輸出層神經(jīng)的個(gè)數(shù)為5和1,傳遞函數(shù)分別為tansig和purelin,訓(xùn)練函數(shù)為trainlm,其他默認(rèn)BP神經(jīng)網(wǎng)絡(luò)工具箱學(xué)習(xí)算法適用問(wèn)題類(lèi)型收斂性能占用存儲(chǔ)空間其他特點(diǎn)trainlm函數(shù)擬合收斂快,誤差小大性能隨網(wǎng)絡(luò)規(guī)模增大而變差trainrp模式分類(lèi)收斂最快較小性能隨網(wǎng)絡(luò)訓(xùn)練誤差減小而變差trainscg函數(shù)擬合模式分類(lèi)收斂較快性能穩(wěn)定中等尤其適用于網(wǎng)絡(luò)規(guī)模較大的情況trainbfg函數(shù)擬合收斂較快較大計(jì)算量歲網(wǎng)絡(luò)規(guī)模的增大呈幾何增長(zhǎng)traingdx模式分類(lèi)收斂較慢較小適用于提前停止的方法MATLAB神經(jīng)網(wǎng)絡(luò)工具箱對(duì)常規(guī)BP算法進(jìn)行改進(jìn),提供了一系列快速算法,以滿足不同問(wèn)題的需要BP神經(jīng)網(wǎng)絡(luò)工具箱利用已知的”輸入—目標(biāo)”樣本向量數(shù)據(jù)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,采用train函數(shù)來(lái)完成.訓(xùn)練之前,對(duì)訓(xùn)練參數(shù)進(jìn)行設(shè)置訓(xùn)練參數(shù)參數(shù)含義默認(rèn)值net.trainParam.epochs訓(xùn)練步數(shù)100net.trainParam.show顯示訓(xùn)練結(jié)果的間隔步數(shù)25net.trainParam.goal訓(xùn)練目標(biāo)誤差0net.trainParam.time訓(xùn)練允許時(shí)間INfnet.trainParam.lr學(xué)習(xí)率0.01net=train(net,P,T)BP神經(jīng)網(wǎng)絡(luò)工具箱隱層的節(jié)點(diǎn)數(shù)隱層的節(jié)點(diǎn)數(shù)與求解問(wèn)題的要求,輸入輸出單元數(shù)多少有關(guān).對(duì)于模式識(shí)別/分類(lèi)的節(jié)點(diǎn)數(shù)可按下列公式設(shè)計(jì)傳遞函數(shù)隱層傳遞函數(shù)采用S型函數(shù),輸出層采用S型函數(shù)或線性函數(shù)訓(xùn)練方法及其參數(shù)選擇針對(duì)不同應(yīng)用,BP網(wǎng)絡(luò)提供了多種訓(xùn)練學(xué)習(xí)方法.其中為隱層節(jié)點(diǎn)數(shù),為輸入節(jié)點(diǎn)數(shù),為1~10之間的整數(shù)BP神經(jīng)網(wǎng)絡(luò)工具箱采用動(dòng)量梯度下降算法訓(xùn)練BP網(wǎng)絡(luò).訓(xùn)練樣本%定義訓(xùn)練樣本p=[-1-131;-115-3];t=[-1-111];%創(chuàng)建一個(gè)新的BP網(wǎng)絡(luò)net=newff(minmax(p),[31],{'tansig','purelin'},'traingdm');%設(shè)置訓(xùn)練參數(shù)net.trainPar

溫馨提示

  • 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)論