-
大小: 1007KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2023-08-17
- 語言: 其他
- 標(biāo)簽: 神經(jīng)網(wǎng)絡(luò)??語音特征??源程序??MATLAB??
資源簡(jiǎn)介
語音特征識(shí)別是模式識(shí)別的一個(gè)重要研究?jī)?nèi)容,對(duì)本案例,提取了民歌,古箏、搖滾和流行四類不同音樂的24維特征向量各500組,希望用BP網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)著四類音樂的有效分類。1) 比較采用2-3種不同的隱含層神經(jīng)元個(gè)數(shù)對(duì)分類精度的影響;2) 采用不同訓(xùn)練算法,比較traingd,traingdm,traingdx以及trainlm的效果(精度和收斂速度)。包括源程序和神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖,計(jì)算結(jié)果及分析。

代碼片段和文件信息
%?2018年11月22日?by?zhangyaokun
%?BP?identification
clear?all;
close?all;
%%?語音數(shù)據(jù)預(yù)處理方法:先隨機(jī)打亂數(shù)據(jù),再對(duì)數(shù)據(jù)進(jìn)行歸一化,然后可以直接順序選取訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)
%?load?data1.mat;?load?data2.mat;?load?data3.mat;?load?data4.mat;?%加載原數(shù)據(jù)
%?Ori_Data1=[c1;c2;c3;c4];??%全部的原始數(shù)據(jù)?2000*25
%?rowrank?=?randperm(size(Ori_Data1?1));?%?隨機(jī)打亂的數(shù)字,從1~行數(shù)打亂
%?Ori_Data?=?Ori_Data1(rowrank?:);%%按照rowrank打亂矩陣的行數(shù)?2000*25
%?
%?%輸入數(shù)據(jù)處理:歸一化
%?Ori_Data_X?=?Ori_Data(:2:25);??%取出原始數(shù)據(jù)中的特征向量?2000*24
%?FlattenedData?=?Ori_Data_X(:)‘;?%?展開矩陣為一列,然后轉(zhuǎn)置為一行。
%?MappedFlattened?=?mapminmax(FlattenedData);?%?對(duì)整個(gè)矩陣的數(shù)據(jù)進(jìn)行歸一化,到[-11]之間
%?MappedData?=?reshape(MappedFlattened?size(Ori_Data_X));?%?還原為原始矩陣形式。此處不需轉(zhuǎn)置回去,因?yàn)閞eshape恰好是按列重新排序??2000*24
%?X=MappedData(1:1500:)‘;?Xc=MappedData(1501:2000:)‘;?%前1500個(gè)數(shù)據(jù)全部作為訓(xùn)練數(shù)據(jù),后500個(gè)數(shù)據(jù)作為測(cè)試數(shù)據(jù)
%?
%?%輸出數(shù)據(jù)處理:%定義輸出向量?分別為[1?0?0?0]?[0?1?0?0]?[0?0?1?0]?[0?0?0?1]
%?To=?Ori_Data(:1)‘;%取出第一列元素為輸出
%?Tt=[1?0?0?0];??????????????????????????????????????????????????????????
%?for?i=1:1:2000
%?????switch?To(i)
%?????????case?1
%?????????????Tt(i:)=[1?0?0?0];
%?????????case?2
%?????????????Tt(i:)=[0?1?0?0];??
%?????????case?3
%?????????????Tt(i:)=[0?0?1?0];
%?????????case?4
%?????????????Tt(i:)=[0?0?0?1];????
%?????end
%?end
%?T=Tt(1:1500:)‘;???Tc=Tt(1501:2000:)‘;
%?save(‘traindata_X‘‘X‘);?save(‘traindata_Xc‘‘Xc‘);?%保存訓(xùn)練數(shù)據(jù)
%?save(‘traindata_To‘‘To‘);save(‘traindata_T‘‘T‘);?save(‘traindata_Tc‘‘Tc‘);??%保存測(cè)試數(shù)據(jù)??
%?
%?clearvars?-except?X?T?Xc?Tc?To;??%清除其余變量,僅保留訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)
%上面的程序只需要運(yùn)行一遍
?load?traindata_X;?load?traindata_T;?load?traindata_Xc;?load?traindata_Tc;?load?traindata_To;%加載訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)
?%%?BP網(wǎng)絡(luò)結(jié)構(gòu)及參數(shù)初始化
?%?BP網(wǎng)絡(luò)結(jié)構(gòu)為?24-10-4
?Hid_num?=?10;
?Func=0;
?
[RQ]=?size(X);
[S~]=?size(T);
[ScQc]=?size(Tc);
%%?使用不同的隱含層數(shù)目訓(xùn)練網(wǎng)絡(luò)??
%?for?k=5:5:40?%不同的隱含層數(shù)目
%?????Hid_num?=?k;
%?????
%?????net=newff(XTHid_num);??%建立BP神經(jīng)網(wǎng)絡(luò)?{‘logsig‘‘purelin‘}‘trainlm‘
%?????switch?Func??%選擇訓(xùn)練函數(shù)
%?????????case?1
%??????????????net.?trainFcn=‘traingd‘;
%?????????case?2
%??????????????net.?trainFcn=‘traingdm‘;
%?????????case?3
%??????????????net.?trainFcn=‘traingdx‘;
%?????????otherwise
%??????????????net.?trainFcn=‘trainlm‘;
%?????end?
%?
%?????net.trainParam.epochs=2000;??%設(shè)置訓(xùn)練次數(shù)
%?????net.trainParam.max_fail?=?50;
%?????net.trainParam.goal=0.005;??%設(shè)置mean?square?error,?均方誤差
%?????net.trainParam.lr=0.03;?%設(shè)置學(xué)習(xí)速率
%?
%?????net.iw{11}=rands(Hid_numR);??%隱含層神經(jīng)元的初始權(quán)值
%?????net.lw{21}=rands(SHid_num);??%輸出層神經(jīng)元的初始權(quán)值
%?????net.b{1}=rands(Hid_num1);??%隱含層神經(jīng)元的初始偏置
%?????net.b{2}=rands(S1);??%輸出層神經(jīng)元的初始偏置
%?????[nettr_gd]=train(netXT);??%訓(xùn)練網(wǎng)絡(luò)
%?
%?????A=sim(netX);??%測(cè)試網(wǎng)絡(luò)
%?????E=T-A;??%測(cè)試誤差
%?????error?=?sumsqr(E)/(S*Q)??%測(cè)試結(jié)果的的MSE
%?????A1=sim(netXc);??%測(cè)試網(wǎng)絡(luò)
%?????E1=Tc-A1;??%測(cè)試誤差
%?????error_c1?=?sumsqr(E1)/(Sc*Qc)??%測(cè)試結(jié)果的的MSE
%?????for?i=1:500??????
%?????????Res(i)=find(A1(:i)==max(A1(:i)));?%以能夠識(shí)別出最大值的趨勢(shì),作為正確識(shí)別的標(biāo)準(zhǔn)
%?????end
%?????E2=To(:1501:2000)-Res;
%?????I=find(E2(:)~=0);??%識(shí)別錯(cuò)誤的數(shù)據(jù)
%?????length(I)?????%識(shí)別錯(cuò)誤的個(gè)數(shù)
%?????
%?????pause
%?en
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-04-25?02:29??BP_Music_recog\
?????文件???????22690??2018-11-28?12:08??BP_Music_recog\20_elm.JPG
?????文件???????20147??2018-11-28?12:10??BP_Music_recog\20_gd.JPG
?????文件???????20128??2018-11-28?12:11??BP_Music_recog\20_gdm.JPG
?????文件???????19530??2018-11-28?12:12??BP_Music_recog\20_gdx.JPG
?????文件????????4994??2018-11-28?12:33??BP_Music_recog\BP_Music_recog.m
?????文件???????93015??2009-08-29?16:54??BP_Music_recog\data1.mat
?????文件???????92845??2009-08-29?16:54??BP_Music_recog\data2.mat
?????文件???????92937??2009-08-29?16:54??BP_Music_recog\data3.mat
?????文件???????93438??2009-08-29?16:54??BP_Music_recog\data4.mat
?????文件???????22569??2018-11-28?11:48??BP_Music_recog\elm_10.JPG
?????文件???????22082??2018-11-28?11:49??BP_Music_recog\elm_15.JPG
?????文件???????22581??2018-11-28?11:51??BP_Music_recog\elm_20.JPG
?????文件???????22720??2018-11-28?11:52??BP_Music_recog\elm_25.JPG
?????文件???????22978??2018-11-28?12:01??BP_Music_recog\elm_30.JPG
?????文件???????22507??2018-11-28?11:55??BP_Music_recog\elm_35.JPG
?????文件???????22085??2018-11-27?16:59??BP_Music_recog\elm_40.JPG
?????文件???????22867??2018-11-28?11:47??BP_Music_recog\elm_5.JPG
?????文件???????25454??2018-11-27?17:02??BP_Music_recog\error.jpg
?????文件?????????912??2018-11-28?11:31??BP_Music_recog\traindata_T.mat
?????文件?????????435??2018-11-28?11:31??BP_Music_recog\traindata_Tc.mat
?????文件?????????854??2018-11-28?11:31??BP_Music_recog\traindata_To.mat
?????文件??????273878??2018-11-28?11:31??BP_Music_recog\traindata_X.mat
?????文件???????91390??2018-11-28?11:31??BP_Music_recog\traindata_Xc.mat
?????文件????????2458??2018-11-28?10:10??BP_Music_recog\work3.m
?????文件??????191558??2019-04-25?02:28??語音特征識(shí)別-神經(jīng)網(wǎng)絡(luò)應(yīng)用.docx
評(píng)論
共有 條評(píng)論