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
            
        


你可能感兴趣的:(ANN 人工神经前馈网络BP实现)