一-newff函数参数说明,初始化网络

net = newff(P,T,S)                             % 这两种定义都可以
net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)

   P:输入参数矩阵。(RxQ1),其中Q1代表R元的输入向量。其数据意义是矩阵P有Q1列,每一列都是一个样本,而每个样本有R个属性(特征)。一般矩阵P需要归一化,即P的每一行都归一化到[0 1]或者[-1 1]。 
  T:目标参数矩阵。(SNxQ2),Q2代表SN元的目标向量。 
  S:N-1个隐含层的数目(S(i)到S(N-1)),默认为空矩阵[]。输出层的单元数目SN取决于T。返回N层的前馈BP神经网络 
   TF:相关层的传递函数,默认隐含层为tansig函数,输出层为purelin函数。 
  BTF:BP神经网络学习训练函数,默认值为trainlm函数。 
  BLF:权重学习函数,默认值为learngdm。 
  PF:性能函数,默认值为mse,可选择的还有sse,sae,mae,crossentropy。 
  IPF,OPF,DDF均为默认值即可。 
  例子:

一般来说

input,output是训练样本

net = newff(input,output,[1层个数,2层个数..],{TF,1层传递函数,2层传毒函数},BTF:‘训练函数’)

net = newff( input,output, [50] , { 'logsig' 'purelin' } , 'traingdx' ) ;    
传递函数TF 
  purelin: 线性传递函数。 
  tansig :正切S型传递函数。 
  logsig :对数S型传递函数。  
  隐含层和输出层函数的选择对BP神经网络预测精度有较大影响,一般隐含层节点转移函数选用 tansig函数或logsig函数,输出层节点转移函数选用tansig函数或purelin函数。 
3,学习训练函数BTF 
  traingd:最速下降BP算法。 
  traingdm:动量BP算法。 
  trainda:学习率可变的最速下降BP算法。 
  traindx:学习率可变的动量BP算法。 
  trainrp:弹性算法。 
  变梯度算法: 
    traincgf(Fletcher-Reeves修正算法) 
     traincgp(Polak_Ribiere修正算法) 
     traincgb(Powell-Beale复位算法) 
     trainbfg(BFGS 拟牛顿算法) 
     trainoss(OSS算法)

二-再次初始化,赋予训练要求

1.参数说明 
  通过net.trainParam可以查看参数 
   Show Training Window Feedback showWindow: true 
   Show Command Line Feedback showCommandLine: false 
   Command Line Frequency show: 两次显示之间的训练次数 
  Maximum Epochs epochs: 训练次数 
   Maximum Training Time time: 最长训练时间(秒) 
   Performance Goal goal: 网络性能目标 
   Minimum Gradient min_grad: 性能函数最小梯度 
   Maximum Validation Checks max_fail: 最大验证失败次数 
   Learning Rate lr: 学习速率 
  Learning Rate Increase lr_inc: 学习速率增长值 
  Learning Rate lr_dec: 学习速率下降值 
   Maximum Performance Increase max_perf_inc: 
   Momentum Constant mc: 动量因子

net2 = newff(P,T,5,{'tansig', 'purelin'}, 'traingd'); % 隐含层有5个神经元net2.trainParam.goal = 1e-5;%训练性能目标最小误差net2.trainParam.epochs = 300;%训练次数net2.trainParam.lr = 0.05;%学习速率net2.trainParam.showWindow = 1;net2.divideFcn = ''; % 为和书本一致,对于样本极少的情况,不要再三分了

2.权重和偏置的初始化

https://blog.csdn.net/SHENNONGZHAIZHU/article/details/52966402

通过设定网络参数net.initFcn和net.layer{i}.initFcn这一技巧来初始化一个给定的网络。

对前馈网络来说,有两种不同的初始化方式经常被用到:initwb和initnw。initwb函数根据每一层自己的初始化参数(net.inputWeights{i,j}.initFcn)初始化权重矩阵和偏置。前馈网络的初始化权重通常设为rands,它使权重在-1到1之间随机取值。这种方式经常用在转换函数是线性函数时。initnw通常用于转换函数是曲线函数。它根据Nguyen和Widrow[NgWi90]为层产生初始权重和偏置值,使得每层神经元的活动区域能大致平坦的分布在输入空间。

net.layers{1}.initFcn = 'initwb';net.inputWeights{1,1}.initFcn = 'rands';
%初始化权重和偏置net.biases{1,1}.initFcn = 'rands';net.biases{2,1}.initFcn = 'rands';net = init(net);

三-训练

net2 = train(net2,P,T);//P,T为训练样本

之后可以得到训练完成后的权值和阈值

iw1=net.IW{1};
b1=net.b{1};
lw2=net.LW{2};
b2=net.b{2};

四、仿真

q=sim(net,p);//p为测试样本,q输出就是通过网络得到的结果
e=q-T;//结果与预期的误差
plot(p,q); %画训练误差曲线
q=sim(net,X);
e=q-Y;
plot(X,q); %画测试误差曲线

MATLAB前馈神经网络newff相关推荐

  1. matlab BP神经网络 newff函数官方源码

    最近在学习BP神经网络,想要自定义神经网络内部,但是网上找了很久都没有找到源代码,于是自己去搬运了一波matlab官方的源代码. 不多说,直接上代码,未编辑过的源码: function out1 = ...

  2. matlab BP神经网络 newff

    net = newff(P,T,S)                             % 这两种定义都可以 net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DD ...

  3. 前馈神经网络【BP神经网络】【newff函数】

    神经网络模型 (1) 前馈神经网络 ( Feedforward Neural Networks ) 前馈网络也称前向网络.这种网络只在训练过程会有反馈信号,而在分类过程中数据只能向前传送,直到到达输出 ...

  4. matlab神经网络newff函数的用法

    转自:matlab神经网络newff函数的用法,保存在此以学习. 设[P,T]是训练样本,[X,Y]是测试样本: net=newrb(P,T,err_goal,spread); %建立网络 q=sim ...

  5. matlab newff激活函数,matlab神经网络newff函数的用法

    设[P,T]是训练样本,[X,Y]是测试样本: net=newrb(P,T,err_goal,spread); %建立网络 q=sim(net,p); e=q-T; plot(p,q); %画训练误差 ...

  6. matlab的newff语句,matlab神经网络newff函数的使用

    设[P,T]是训练样本,[X,Y]是测试样本: net=newrb(P,T,err_goal,spread); %建立网络 q=sim(net,p); e=q-T; plot(p,q); %画训练误差 ...

  7. matlab的newff函数是用来,[转载]matlab神经网络newff函数的使用

    设[P,T]是训练样本,[X,Y]是测试样本: net=newrb(P,T,err_goal,spread); %建立网络 q=sim(net,p); e=q-T; plot(p,q); %画训练误差 ...

  8. 【FNN回归预测】基于matlab蝙蝠算法优化前馈神经网络数据回归预测【含Matlab源码 2070期】

    一.粒子群优化前馈神经网络简介 1 前馈神经网络FNN 前馈神经网络FNN是解决非线性问题的很好模型,它通过梯度下降算法进行网络训练.FNN与时间序列法等传统方法相比,能够更好地来描述问题的非线性特性 ...

  9. 【FNN回归预测】基于matlab粒子群优化前馈神经网络婚姻和离婚数据回归预测【含Matlab源码 2069期】

    一.粒子群优化前馈神经网络简介 1 前馈神经网络FNN 前馈神经网络FNN是解决非线性问题的很好模型,它通过梯度下降算法进行网络训练.FNN与时间序列法等传统方法相比,能够更好地来描述问题的非线性特性 ...

最新文章

  1. 关闭切换大小写时桌面提示
  2. SAP Spartacus CMSService 的调用栈以及 meta 标签的生成过程
  3. Phaserjs V2的state状态解析及技巧
  4. 数据“被”覆盖有假象,SQL数据库恢复终极绝招(数据恢复高级技术)
  5. 如何给柱状图柱子添加阴影_【LeetCode日记】84. 柱状图中最大的矩形
  6. vc2008使用技巧
  7. Asterisk学习进阶
  8. 火热报名|5月15日线下沙龙上海站——“大促活动场景下的质量保障”主题
  9. html照片从模糊到清晰的渐变加载显示方法
  10. 使用J2SE进行服务器架构技术选型的变迁
  11. 数据库msqlserver的几种类型及解决MSSQLServer服务启动不了的问题
  12. bzoj 1671: [Usaco2005 Dec]Knights of Ni 骑士(BFS)
  13. Java7 一些新特性及脚本语言支持API--笔记
  14. soapUI 接口测试断言
  15. 2022年汽车修理工(中级)上岗证题库及答案
  16. 替换字符串中全部斜杠
  17. Fiddler数据抓包试玩改包工具使用畅享
  18. vue h5点击跳转主流手机应用商店app下载页
  19. POI解决读入Excel内存溢出
  20. About Wireshark

热门文章

  1. ACL 2019 | 机器翻译深层模型
  2. C专家编程--随记(一)
  3. 张亚勤:微软九成研发资源投入云计算
  4. PHP排序大数据量分页
  5. 设置数字和字符串的格式(已更新)
  6. mysql导入数据时 USING BTREE 错误解决办法
  7. Android常见系统问题分析工具
  8. Servlet_Jsp学习笔记:
  9. Python多子图总标题title
  10. 第一周 周报