matlab构建神经网络

http://www.ilovematlab.cn/thread-42747-1-1.html

close all

clear
clc
%% BP建模
%原始数据归一化 
m_data=[
8.20  6.80  6.00  6.20  5.60  6.20  4.80  0.60  7.20  7.00  7.60  3.80  0.80  14.00  0.1331  2.442  95.15  99.54  ;
7.80  7.40  6.80  7.60  6.00  5.60  4.20  0.40  7.80  6.80  7.00  3.20  0.60  13.80  0.1348  2.463  94.78  99.70  ;
8.40  6.60  7.00  6.60  6.00  5.40  4.40  0.20  7.40  6.60  7.20  2.80  0.20  14.00  0.1346  2.439  94.86  99.24  ;
8.20  6.80  7.80  7.20  7.20  4.60  4.40  0.20  7.20  6.40  7.60  2.40  1.20  13.90 0.1299  2.439  94.51  99.52  ;
8.00  6.80  7.60  7.20  6.80  5.60  5.20  0.60  7.20  6.80  7.20  2.80  0.80  14.30 0.1314  2.505  89.43  96.96  ;
8.20  7.00  7.20  6.60  6.40  6.20  5.00  0.40  7.60  6.20  6.80  2.20  0.60  13.70 0.1301  2.705  92.45  98.97  ;
7.60  7.00  7.40  7.00  6.40  6.60  5.20  0.80  6.80  7.00  6.80  2.60  1.00  13.60 0.1291  2.681  94.86  99.95  ;
7.20  6.60  7.20  7.20  6.60  6.20  4.80  0.20  7.60  6.80  6.80  3.40  1.20  13.80 0.1287  2.658  93.63  99.59  ;
7.20  6.80  8.00  7.60  7.00  6.80  5.40  0.60  7.40  6.60  7.00  2.80  0.40  13.60 0.1292  2.729  93.73  99.45  ;
6.60  7.60  8.00  7.20  6.40  6.20  3.80  1.00  6.60  6.20  6.40  2.80  1.20  13.60 0.1313  2.693  94.23  99.70  ;
6.80  7.00  6.80  6.20  5.60  5.40  3.80  1.00  6.20  6.40  6.80  3.80  1.40  14.10 0.1318  2.704  93.48  98.63  ;
7.60  6.20  6.80  6.80  6.00  5.20  4.60  1.00  6.20  6.60  6.60  3.60  1.60  14.00 0.1323  2.747  91.16  98.47  ;
8.00  6.60  6.80  6.20  5.00  5.40  3.80  1.00  6.20  5.80  6.00  4.00  1.80  13.60 0.1273  2.690  94.28  99.72  ;
5.80  8.00  6.80  6.80  5.40  5.80  4.00  1.20  7.40  6.40  7.40  2.40  1.00  14.20 0.1369  2.672  93.24  99.98  ;
6.40  8.20  7.00  7.00  5.20  6.00  3.40  1.40  7.40  6.40  6.80  2.60  1.20  14.20 0.1400  2.741  93.22  100.00  ;
5.20  8.00  7.60  7.00  5.60  5.60  4.60  1.40  7.20  5.80  6.40  2.60  1.60  14.50 0.1384  2.761  94.06  100.00  ;
6.40  7.00  6.80  6.60  4.40  5.20  3.60  1.20  7.00  7.00  6.00  2.60  1.40  14.40 0.1361  2.735  93.76  99.98  ;
5.20  7.40  6.80  6.80  5.20  5.60  3.60  1.60  7.20  6.80  6.20  2.40  1.40  14.00 0.1331  2.800  92.53  99.36  ;
5.60  7.40  6.60  6.60  5.00  5.60  4.00  1.40  6.60  6.40  6.80  2.80  1.60  14.00 0.1307  2.877  88.51  96.47  ;
5.80  8.20  6.60  6.20  5.40  5.40  3.80  1.00  7.00  6.80  6.80  3.80  1.40  13.90 0.1301  2.861  94.04  99.75  ;
5.60  7.00  6.60  6.40  5.60  5.00  3.20  1.00  6.60  5.80  5.40  2.80  1.00  14.00 0.1336  2.846  92.38  98.90  ;
5.40  6.20  5.80  5.00  4.40  4.20  3.20  1.40  6.20  5.40  4.40  2.40  2.20  14.10 0.1334  2.868  86.94  96.76  ;
6.80  8.40  7.20  6.80  5.60  6.20  3.20  1.00  7.00  6.60  6.00  2.60  2.00  14.80 0.1398  2.789  93.63  99.61  ;
6.60  7.60  6.60  6.60  5.40  6.20  3.40  1.00  7.40  7.40  6.40  3.80  1.60  14.50 0.1445  2.826  91.45  98.74  ;
7.40  7.40  7.40  6.60  6.80  6.80  4.20  1.20  8.00  6.60  6.40  3.20  1.40  15.00 0.1429  2.868  90.66  98.36  ;
6.00  8.80  6.80  6.80  5.80  6.60  3.20  1.40  7.00  6.00  7.00  3.60  1.40  14.40 0.1376  2.771  94.47  100.00  ;
4.00  8.60  7.60  7.00  6.80  7.00  3.80  0.20  6.20  6.00  6.60  2.60  1.60  14.10 0.1324  2.741  94.41  99.45  ;
5.80  7.40  7.20  7.80  7.20  6.80  3.60  0.20  7.00  6.40  7.20  3.40  1.20  14.20 0.1392  2.765  93.91  99.61  ;
7.40  7.40  6.80  7.40  6.80  6.00  4.00  0.40  6.80  5.80  7.20  3.40  1.60  14.20 0.1372  2.752  93.50  99.47  ;
6.40  7.20  7.20  7.40  6.40  5.80  3.80  0.40  6.60  6.40  7.40  2.80  1.60  14.30 0.1389  2.753  94.30  99.54  ;
6.00  7.20  8.00  7.40  6.40  7.00  4.80  0.60  7.80  7.00  7.00  3.40  1.20  14.50 0.1381  2.803  93.97  98.90  ;
7.20  6.80  7.40  7.80  6.00  6.20  4.00  0.80  7.40  6.60  7.00  2.80  1.60  14.60 0.1402  2.796  93.61  99.11  ;
6.00  7.00  7.20  6.40  5.80  5.80  3.40  0.80  6.00  6.40  5.80  3.00  2.00  14.20 0.1388  2.750  94.08  99.61  ;
6.80  6.80  7.20  7.40  6.40  6.60  3.60  0.60  6.60  6.60  6.40  2.80  1.60  14.40 0.1383  2.793  93.03  99.22  ;
8.20  6.40  7.00  6.40  6.00  6.00  4.20  0.40  6.20  5.80  5.60  1.80  1.80  14.10 0.1360  2.495  88.37  97.45  ;
4.40  7.80  6.20  6.40  6.20  5.60  3.40  1.00  4.60  3.80  3.80  1.60  0.80  14.00 0.1364  2.445  93.71  99.36  ;
5.00  7.60  7.00  6.60  6.40  6.40  4.00  0.40  6.60  5.20  5.80  2.00  1.00  14.10 0.1374  2.500  88.04  97.14  ;
6.80  7.40  7.00  7.60  7.00  6.20  4.20  0.60  7.00  6.60  6.20  3.00  1.80  14.10 0.1382  2.518  87.64  96.78  ;
5.80  7.20  6.00  6.60  6.20  6.40  3.40  0.20  6.00  4.60  4.40  2.00  0.60  14.00 0.1346  2.479  93.22  99.13  ;
7.40  7.80  8.60  8.00  7.00  7.00  4.60  0.40  8.00  7.40  8.00  2.60  0.40  13.80 0.1310  2.590  92.79  98.90  ;
];
%% 定义网络输入p和期望输出t
pause
clc
p1=m_data(:,1:13);
t1=m_data(:,14:18);
p=p1';t=t1';
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t)
% 主成分分析
[ptrans,transMat]=prepca(pn,0.05);
[R,Q]=size(ptrans);
iitst=2:4:Q;
iival=4:4:Q;
iitr=[1:4:Q 3:4:Q];
vv.P=ptrans(:,iival);
vv.T=tn(:,iival);
vt.P=ptrans(:,iitst);
vt.T=tn(:,iitst);
ptr=ptrans(:,iitr);
ttr=tn(:,iitr);
%% 建立网络
net=newff(minmax(ptr),[5,5],{'tansig','purelin'},'trainlm');
%% 训练网络
net.trainParam.show=20;
net.trainParam.lr=0.01;
net.trainParam.epochs=400;
net.trainParam.goal=1e-5;
[net,tr]=train(net,ptr,ttr,[],[],vv,vt);
% 绘出训练过程中个误差的变化曲线
plot(tr.epoch,tr.perf,'r',tr.epoch,tr.vperf,':g',tr.epoch,tr.tperf,'-.b');
legend('训练','确证','测试',-1);
ylabel('平方误差');
xlabel('时间');
an=sim(net,ptrans)
a=postmnmx(an,mint,maxt)

你可能感兴趣的:(语音信号处理,Machine,Learning,NN,神经网络,MATLAB)