BP神经网络

【拓展】matlab的BP神经网络使用详解

作者 : 老饼 发表日期 : 2022-06-21 13:52:04 更新日期 : 2024-04-15 10:42:59
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



本文描述使用matlab神经网络工具箱训练BP神经网络的一些最常用的调用方法和参数

本文旨在说明BP神经网络工具箱的常用方法(newff,train,sim等)及其参数意义



     01. matlab的BP神经网络使用详解    



本节对matlab工具箱的BP神经网络使用进行详细说明

包括newff函数、train函数、sim函数等常用函数的相关说明



   BP神经网络DEMO   


本文讲述用matlab建立BP神经网络的详细使用
让我们开始吧!
先来一个简单的BP神经网络的DEMO
以matlab2018a为例,可以如下实现:
   %用于训练的数据                                                                  
   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是建立一个BP神经网络                          
建立网络后,可以设置网络的相关参数           
 只需修改net.tainparam的相关值就可以了     
最后,调用train函数对网络进行训练              
            训练好BP神经网络后,就可以用sim函数来对进行预测
下面我们对newff、train、sim这三个关键函数进行特别说明



      newff的使用说明      


newff用于建立一个BP神经网络,
newff的完整参数用例、参数说明如下

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




     BP神经网络-train的使用说明     


train函数用于对newff创建的网络进行训练
下面讲解BP神经网络train函数的调用方法与出入参

train的调用方法
 
train支持多种参数格式,最常用的是:
 
 [net,tr,out_T] = train(net,P,T);

 train的出入参说明
 
   net需要训练的网络                
   P
用于训练的输入数据          
   T
用于训练的输出数据          
train的出出参说明
 
   net    训练好的网络                 
   tr      
训练过程                     
   out_T
网络对训练数据的预测



   BP神经网络-sim的使用说明   


sim用于BP神经网络的预测,
sim的使用方法及出入参说明如下:
 
 
sim的使用方法
sim的使用相对较简单,如下

sim_y = sim(net,X)
 
  sim的出入参说明
 
sim的出入参说明如下
net : 用于预测的网络                                 
X   : 需要预测的数据                                
 X为矩阵格式 ,每列代表一个样本
sim_y  : 网络的预测结果                             




     关于BP神经网络的常用训练参数    


在BP神经网络训练前,可以设置相关的训练参数
BP神经网络的常用训练参数有:
 
net.trainparam.goal             = 0.00001;       % 训练目标,均方误差低于0.0001 
net.trainparam.show            = 400;              % 每训练400次展示一次结果        
net.trainparam.epochs         = 15000;          % 最大训练次数:15000              
net.divideParam.trainRatio   = 0.7;               % 用于训练的数据比例                 
net.divideParam.valRatio      = 0.15 ;            % 用于验证过拟合的数据比例       
net.divideParam.testRatio     = 0.15;            % 用于比例                                  
net.trainparam.max_fail         = 6;                 % 过拟合验证失败次数                 





好了,以上就是matlab的BP神经网络newff,train,sim等常用函数的详细说明了~







 End 




联系老饼