BP人工神经网络算法的MATLAB实现_第1页
BP人工神经网络算法的MATLAB实现_第2页
BP人工神经网络算法的MATLAB实现_第3页
BP人工神经网络算法的MATLAB实现_第4页
BP人工神经网络算法的MATLAB实现_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、%清空环境变量clcclear% 训练数据预测数据提取及归一化%载四类语音信号load datal clload data2 c2load data3 c3load data4 c4%四个特征信号矩阵合成一个矩阵data(1:500,:)=c1(1:500,:);data(501:1000,:)=c2(1:500,:);data(1001:1500,:)=c3(1:500,:);data(1501:2000,:)=c4(1:500,:);%从1到2000间随机排序k=rand(1,2000);m,n=sort(k);% 俞入输出数据input=data(:,2:25);outputl =dat

2、a(:,1);%输出从1维变成4维for i=1:2000switch outputl(i)case 1output(i,:)=1 0 0 0;case 2output(i,:)=0 1 0 0;case 3output(i,:)=0 0 1 0;case 4output(i,:)=0 0 0 1;endend%$机提取1500个样本为训练样本,500个样本为预测样本input_train=input(n(1:1500),:)'output_train=output(n(1:1500),:)'input_test=input(n(1501:2000),:)'output

3、_test=output(n(1501:2000),:)'喏俞入数据归一化inputn,inputps=mapminmax(input_train);%网络结构初始化innum=24;midnum=25;outnum=4;%权值初始化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;%学习率xite=0.1alfa=0.01;

4、%网络训练for ii=1:10E(ii)=0;for i=1:1:1500%网络预测输出x=inputn(:,i);%隐含层输出for j=1:1:midnumI(j)=inputn(:,i)'*w1(j,:)'+b1(j); Iout(j)=1/(1+exp(-I(j);end%输出层输出yn=w2'*Iout'+b2;%权值阀值修正%计算误差e=output_train(:,i)-yn;E(ii)=E(ii)+sum(abs(e);%计算权值变化率dw2=e*Iout;db2=e'for j=1:1:midnumS=1/(1+exp(-I(j);F

5、I(j)=S*(1-S);endfor k=1:1:innumfor j=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);end endw1=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=

6、w2_1;w2_1=w2;b1_2=b1_1;b1_1=b1;b2_2=b2_1;b2_1=b2;endend% 语音特征信号分类inputn_test=mapminmax('apply',input_test,inputps);for ii=1:1for i=1:500%1500% 急含层输出I(j)=inputn_test(:,i)'*w1(j,:)'+b1(j);Iout(j)=1/(1+exp(-I(j);endfore(:,i)=w2'*Iout'+b2;endend%吉果分析% 艮据网络输出找出数据属于哪类for i=1:500out

7、put_fore(i)=find(fore(:,i)=max(fore(:,i); end%BFW络预测误差error=output_fore-output1(n(1501:2000)'%B出预测语音种类和实际语音种类的分类图figure(1)plot(output_fore,'r') hold onplot(output1(n(1501:2000)','b') legend('预测语音类别,实际语音类别)刎出误差图figure(2)plot(error)title('BP网络分类误差,'fontsize',12)

8、xlabel(' 语音信号','fontsize',12)ylabel('分类误差','fontsize',12)%print -dtiff -r600 1-4k=zeros(1,4);%找出判断错误的分类属于哪一类for i=1:500if error(i)=0b,c=max(output_test(:,i);switch ccase 1 k(1)=k(1)+1;case 2 k(2)=k(2)+1;case 3k(3)=k(3)+1;case 4k(4)=k(4)+1;endendend%找出每类的个体和kk=zeros(1,4);for i=1:500b,c=max(output_test

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论