ANN 人工神经前馈网络BP实现

ANN 人工神经前馈网络

实现步骤

学习过程:

1)      设定网络参数

2)      以均匀随机初始化加权值矩阵W,每个神经结点的偏权值向量 。

3)      输入一个训练样本的输入向量X与目标输出向量T

4)      计算每层网络的输出值向量Y

5)      从输出层开始计算误差并反传

6)      计算加权值矩阵修正量  W

7)      更新加权值矩阵W,偏权值向量

8)      重复步骤3至步骤7,直至收敛或执行一定数目的学习循环

 

预测步骤

1)      输入测试样本的输入向量X,得出输出向量Y,得出类别向量Y’

2)      比较类别向量Y’,目标向量T,得出计算的准确率


Matlab实现:

clc;
clear;
trainInput=load('F:/Dataset/synth.tr');
trainTarget=trainInput(:,3);
trainInput=trainInput(:,[1,2]);
trainInput=trainInput';
trainTarget=trainTarget';


testInput=load('F:/Dataset/synth.te');
testTarget=testInput(:,3);
testInput=testInput(:,[1,2]);
testInput=testInput';
testTarget=testTarget';


net=newff([-1.5 1.5; -1.5 1.5],trainTarget,[3,3],{'tansig','tansig'},'traingdm');
net.trainparam.goal=0.000001;%神经网络训练的目标误差
net.trainparam.epochs=10000; %最大迭代次数
net.trainparam.lr=0.01; %学习效率
net.trainParam.max_fail = 15;


net=train(net,trainInput,trainTarget);
rst=sim(net,testInput);


[m,n]=size(rst);


success=0;
for i=1:m
    for j=1:n
        if(rst(i,j)<0.5 && testTarget(i,j)==0)
            success=success+1;
        end
        if(rst(i,j)>=0.5 && testTarget(i,j)==1)
            success=success+1;
        end
    end
end 

accuracy=success/n
            
        


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值