BP神经网络实例(matlab)

BP神经网络实例(matlab)

  1. 输入数据:

183组应用数据(input.mat),随机列重排后取:

训练样本个数:160 (input_test.mat)

测试样本个数:23   (input_train.mat)

2.输入数据归一化:

训练样本归一化:[inputn,minp,maxp]=premnmx(input_train);

测试样本归一化:[inputn_test]=tramnmx(input_test,minp,maxp);

3. 训练结果图:

在第41一次时,训练达到最小设定梯度:e-7方,训练结束

4.权值和阈值矩阵:

1)w=net.IW{1,1}%输入到第一隐含层的权重矩阵;

2)wt=net.LW{2,1}%隐含层到输出层的权值矩阵;

3)b=net.b{1,1}%第一隐含层的阀值矩阵;

4)bt=net.b{2,1}%输出接点的阀值矩阵;

 

5.输出表达式:

已知隐层节点数为8,输出节点数为6,输入样本有14个参数,则w为8x14,b为8x1,wt为6x8,bt为6x1的矩阵,设输入为A,则输出B表达式如下: (x1,x2,…,x14)--->(y1,y2,…y6)

(y1,y2,…,y6)=logsig{tansig[(x1,x2,…,x14)*w’+b’]*wt’+bt’}

当输入A为矩阵形式时,计算步骤如下:

  1. 输入乘上权值:out1=A’*w’
  2. 加上阈值:for i=1:size(out1)

              out1(i,:)=out1(i,:)+b'

  1. 传递函数变换:out1=tansig(out1)
  2. 隐层节点输入乘上权值:B=out1*w2'
  3. 加上阈值:for i=1:size(B)

B(i,:)=B(i,:)+b2'

  1. 传递函数变换:B=logsig(B)

 

6.准确率计算:

对于测试结果计算出来的结果B如下图所示,为6xn的矩阵,每一列对应一个测试样本的输出:

算法取每列中的最大值为1,其余设为0,则结果变为:

通过与理想输出(如下图)作对比,计算神经网络预测的准确率:

计算公式和结果如下:match_ratio=1-预测错误个数/总预测个数

猜你喜欢

转载自blog.csdn.net/b0207191/article/details/88524510
今日推荐