BP神经网络

【示例】matlab-BP神经网络工具箱-简单DEMO

作者 : 老饼 发表日期 : 2022-06-09 05:17:26 更新日期 : 2024-01-02 02:24:59
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



 本文讲解matlab神经网络工具箱使用BP神经网络的Demo以及newff入参说明

本文旨在展示最简单的使用BP神经网络工具箱DEMO,即用newff训练一个BP神经网络的DEMO




       01. 一个最简单的BP神经网络Demo代码     




本节展示用matlab神经网络工具箱来实现BP的DEMO




    matlab工具箱实现BP神经网络的DEMO代码    


matlab工具箱使用BP神经网络的Demo代码(2018a版matlab实测已跑通):
% matlab版本:2018a
% 代码说明:matlab工具箱newff的使用Demo
% 来自《老饼讲解神经网络》www.bbbdata.com 
%用于训练的数据
X = linspace(-3,3,100);   
y = 10*sin(X);   
%网络训练 
net = newff(X,y,3,{'tansig','purelin'},'trainlm');
net.trainparam.goal = 0.00001;    % 设置训练误差目标
net.trainparam.epochs = 15000;    % 设置最大训练次数.
[net,tr,net_y] = train(net,X,y);  % 训练
sim_y = sim(net,X);               % 预测

✍️备注
 newff事实上已经被feedforwardnet函数替代,
但由于网上大部分资料还是使用newff,
为方便找资料,本站仍然使用newff讲解





  02. BP神经网络工具箱newff说明  



本节展示newff函数的使用说明,用于日常查阅




语法:


net = newff(P,T,S)
net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)



描述:


newff建立一个BP神经网络,在新版中已用feedforwardnet代替该函数。



入参说明


   P:     输入数据X,每列代表一个样本的X。
   T:   target,拟合目标,也即输出数据y,每列代表一个样本的Y。
   S:  行向量,隐节点个数,例如 [3,2]代表两个隐层,第一个隐层3个神经元,第2个隐层2个神经元。
   TF:Transfer function,传递函数(激活函数), {'tansig','purelin'} 代表只有一个隐层,隐层传递函数为tansig,输出层传递函数为purelin.注意,要与S对齐。
   BTF: Backprop network training function,训练函数,默认用'trainlm'
   BLF:   Backprop learning function,反向传播权重/阈值 学习函数,默认learngdm.(adapt时调用,一般不需用到)
   PF:     Performance function,性能函数,即误差函数,默认为均方差'mse',可选:mse,sse,mae,sae(均方差,总方差,均绝对差,总绝对差),trainlm只支持mse,sse
   IPF:    input processing functions,输入处理函数,默认{'fixunknowns','removeconstantrows','mapminmax'}
   OPF:output processing functions,输出处理函数,默认 {'removeconstantrows','mapminmax'}
   DDF:Data division function,数据分割函数,默认值'dividerand',即随机分割。

  

完整示例:


net = newff(X,y,3,{'tansig','purelin'},'trainlm','learngdm','mse',{'fixunknowns','removeconstantrows','mapminmax'}, {'removeconstantrows','mapminmax'},'dividerand');





上述就是matlab神经网络工具箱实现一个BP神经网络的DEMO了





  End  



联系老饼