本文共 2063 字,大约阅读时间需要 6 分钟。
学习BP神经网络,推荐先了解其中的数学原理:
我是从0基础开始看MATLAB代码的,源码从《MATLAB神经网络43个案例分析》中获取,相对来说讲解得很清楚了,但是对于一穷二白的我来说还是一个很大的挑战,我已经尽己所能很认真地加了很多注释并且已经运行成功了,现在把源码贴出来:
如果我没有加注释的说明是很简单的了,只要百度一下就可以知道了~仅供参考,如果想copy代码的朋友到文末吧,我把所有资料都打包了
%% 清空环境变量clcclear%% 训练数据预测数据提取及归一化%下载输入输出数据load data input output%随机选择1900组训练数据和100组预测数据%从1到2000间随机排序k=rand(1,2000);%创建1行2000列服从0~1均匀分布的随机矩阵[m,n]=sort(k);%m是从小到大排序后序列,排序结果放入m(1*2000)向量,n是m中各个元素在k中的下标%找出训练数据和预测数据input_train=input(n(1:1900),:)';%n(1:1900),:)表示取出input中1900行中的数值,单引号(')表示转置矩阵,得到1*1900数据output_train=output(n(1:1900));%n表示从1到1900的列,也就是取出output里的1*1900的数据input_test=input(n(1901:2000),:)';output_test=output(n(1901:2000));%选连样本输入输出数据归一化[inputn,inputps]=mapminmax(input_train);%inputn保存归一化后数据,inputps为训练数据的设置,后面可用于预测数据同样归一[outputn,outputps]=mapminmax(output_train);%% BP网络训练%net=newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)% %初始化网络结构net=newff(inputn,outputn,5);%5个隐含层神经元%TF节点传递函数,BTF训练函数,BLF网络学习函数,PF性能分析函数,IPF输入处理函数,OPF输出处理函数,DDF验证数据划分函数net.trainParam.epochs=100;%设置训练训练次数,也就是迭代次数 net.trainParam.lr=0.1;%设置学习率net.trainParam.goal=0.00004; % 训练目标最小误差%网络训练%[net,tr]=train(NET,X,T,Pi,Ai)%待训练网络,输入数据,输出数据,初始化输入层条件,初始化输出层条件,tr训练过程记录net=train(net,inputn,outputn);%% BP网络预测%预测数据归一化inputn_test=mapminmax('apply',input_test,inputps);%做相同的归一,apply %网络预测输出%y=sim(net,x)an=sim(net,inputn_test);%an得到网络预测数据 %网络输出反归一化BPoutput=mapminmax('reverse',an,outputps);%% 结果分析figure(1)%figure是建立图形的意思,系统自动从1,2,3,4...来建立图形,数字代表第几幅图形plot(BPoutput,':og')%:表示用虚线,o表示数据点用圆圈显示,g是greenhold on %保留当前图的轴(坐标系),再画另一幅图,原来的图还在plot(output_test,'-*');legend('预测输出','期望输出')% 显示在使用指定的字符串 来标记每个数据设置。title('BP网络预测输出','fontsize',12)ylabel('函数输出','fontsize',12)xlabel('样本','fontsize',12)%预测误差error=BPoutput-output_test;figure(2)plot(error,'-*')title('BP网络预测误差','fontsize',12)ylabel('误差','fontsize',12)xlabel('样本','fontsize',12)figure(3)plot((output_test-BPoutput)./BPoutput,'-*');title('神经网络预测误差百分比')errorsum=sum(abs(error));
感觉用MATLAB写简单了很多,我之前看了C语言版本的,很长很复杂,推荐大家先在MATLAB学会了再回头学C语言的
我没有信心保证注释完全正确,以上代码仅供参考学习,你一定要带着批判的眼光来读,有错误请指出,我会虚心接受,在评论区分享,大家一起学习~
————————————————————————————————————————————————
转载地址:http://kocwz.baihongyu.com/