资源简介

BP神经网络算法,直接可运行,注释详细,可帮助理解,内含详细的代码说明,方便大家阅读,内含3个程序,可参考学习

资源截图

代码片段和文件信息

clc;
clear all;
close all;
InNeuron=4;      %输入神经元节点
HiddenNeuron=10;    %隐层神经元节点
OutNeuron=3;      %输出神经元节点
lr=0.01;       %学习效率
E=0.0000001;     %目标误差
MaxTextTimes=10000;    %最多训练次数
%读入两个文件
Train=load(‘Iris-test.txt‘);
Train %查看训练集
Train=Train(:1:4); 
Train=Train‘;
Test=load(‘Iris-train.txt‘); 
Test %查看检测集
Test=Test(:1:4);
Test=Test‘;
%标准化输出
SamOut=[repmat([1;0;0]125) repmat([0;1;0]125) repmat([0;0;1]125)];%三种类型的花及相应输出
SamIn=Train;%开始训练
%归一化
[Trainps]=mapminmax(Train01);
Test=mapminmax(Test01);
%设置权值与阈值(rand随机产生)
W1=rand(HiddenNeuronInNeuron);
B1=rand(HiddenNeuron1);
W2=rand(OutNeuronHiddenNeuron);
B2=rand(OutNeuron1);
%误差记录
ErrHistory=[];
for step=1:MaxTextTimes
    HiddenOut=logsig(W1*Train);  %隐含层输出
    NetworkOut=logsig(W2*HiddenOut);  %输出层输出
    Error=SamOut-NetworkOut;%误差
    SSE=sumsqr(Error);%平方求和
    ErrHistory=[ErrHistory  SSE];
    if SSE    %调整权值和阈值
    delta2=NetworkOut.*(1-NetworkOut).*(SamOut-NetworkOut);
    w=W2;
    W2= W2+lr*(HiddenOut*delta2‘)‘;
    B2=w;%阈值
    delta1=HiddenOut.*(1-HiddenOut).*(W2‘*delta2);%调整隐含层加权系数
    w=W1;
    W1=W1+lr*(Train*delta1‘)‘;
    B1=w;
end
HiddenOut=logsig(W1*Test); %使用logsig激活函数求出隐含层输出最终结果
NetworkOut=logsig(W2*HiddenOut);    %使用logsig激活函数求出输出层输出最终结果
%将输出层最终结果和目标输出结果对应起来
NetworkOut(find(NetworkOut<=0.5))=0;
NetworkOut(find(NetworkOut>=0.5))=1;
NetworkOut%输出网络结果
%通过匹配求解出成功率
Result =~sum(abs(NetworkOut-SamOut));
Percent = sum(Result)/length(Result)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-04-18 10:37  BP_CODE\
     目录           0  2019-04-18 10:36  BP_CODE\1\
     文件        1724  2015-10-31 16:56  BP_CODE\1\BP.m
     文件        1424  2015-10-23 14:29  BP_CODE\1\Iris-test.txt
     文件        1425  2015-10-23 14:29  BP_CODE\1\Iris-train.txt
     目录           0  2019-04-18 10:37  BP_CODE\2\
     文件        1332  2015-01-13 17:14  BP_CODE\2\BP_demo.m
     文件        2210  2015-01-13 16:54  BP_CODE\2\irisdata.mat
     目录           0  2019-04-18 10:37  BP_CODE\3\
     文件         541  2018-04-21 21:52  BP_CODE\3\BP.m
     文件        3754  2019-04-16 09:54  BP_CODE\3\BPNet.m
     文件        1535  2018-04-21 21:50  BP_CODE\3\BP_train.m
     文件        2848  2017-12-17 19:18  BP_CODE\3\Iris.txt

评论

共有 条评论