newff

在这里插入图片描述

创建

旧版:
net = newff(minmax(p),[隐层的神经元的个数,输出层的神经元的个数],{隐层神经元的传输函数,输出层的传输函数},'反向传播的训练函数')
新版:
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均为默认值即可。

例子:

  • net = newff( input,output, [50] , { ‘logsig’ ‘purelin’ } , ‘traingdx’ ,‘learngdm’) ;

参数分析

BTF 训练函数

学习训练函数影响最大

默认使用trainlm 效果比较好, Levenberg-Marquardt算法 。其他函数比较差。

(1)traingd 基本梯度下降法 速度慢,效果差

(2) traingdm:带有动量项的梯度下降法, 通常要比traingd 速度快。 速度快,效果差

(3)traingdx: 带有动量项的自适应学习算法, 速度要比traingdm 快。速度快,效果差,比上一个强些

(4) trainrp: 弹性BP 算法, 具有收敛速度快和占用内存小的优点。速度稍慢,效果比3强

(5) traincgf: Fletcher-Reeves 共轭梯度法,为共轭梯度法中存储量要求最小的算法。速度快,效果差,和3差不多

(6) traincgp: Polak-Ribiers共轭梯度算法, 存储量比traincgf稍大,但对某些问题收敛更快。速度快,效果差,和5差不多

(7) traincgb: Powell-Beale共轭梯度算法,存储量比traincgp稍大,但一般收敛更快,以上三种共轭梯度法,都需要进行线性搜索。速度快,效果和4差不多,还可以

(8) trainscg: 归一化共轭梯度法,是唯一一种不需要线性搜索的共轭梯度法。速度快,效果差,和5差不多

(9) trainbfg: BFGS- 拟牛顿法, 其需要的存储空间比共轭梯度法要大,每次迭代的时间也要多,但通常在其收敛时所需的迭代次数要比共轭梯度法少,比较适合小型网络。速度慢,效果和4差不多,还可以

(10) trainoss: 一步分割法,为共轭梯度法和拟牛顿法的一种折衷方法。速度慢,效果差,和5差不多

(11) trainlm: Levenberg-Marquardt算法,对中等规模的网络来说, 是速度最快的一种训练算法, 其缺点是占用内存较大。对于大型网络, 可以通过置参数mem-reduc 为1, 2, 3,⋯, 将Jacobian 矩阵分为几个子矩阵。但这样也有弊端, 系统开销将与计算Jacobian的各子矩阵有很大关系。速度快 效果较好

(12) trainbr: 贝叶斯规则法,对Levenberg-Marquardt算法进行修改, 以使网络的泛化能力更好。同时降低了确定最优网络结构的难度。速度慢 效果很好 和11差不多

学习训练函数BTF可选值

traingd:最速下降BP算法。

traingdm:动量BP算法。

trainda:学习率可变的最速下降BP算法。

traindx:学习率可变的动量BP算法。

trainrp:弹性算法。

  • 变梯度算法:

traincgf(Fletcher-Reeves修正算法)

traincgp(Polak_Ribiere修正算法)

traincgb(Powell-Beale复位算法)

trainbfg(BFGS 拟牛顿算法)

trainoss(OSS算法)

学习函数

学习函数的影响较训练函数的影响要小。

效果较好的有:learncon,learnlv2 learnpn;其次 learngd learngdm learnis learnhd learnos

在这里插入图片描述
在这里插入图片描述

learncon:速度慢,准确率 0.975

learngd:速度慢,准确率 0.944

learngdm:速度慢,准确率 0.95

learnh:速度慢,准确率 0.944

learnhd:速度慢,准确率 0.956

learnis:速度慢,准确率 0.956 1(3)

learnk:速度慢,准确率 0.95 1(3)

learnlv1:速度慢,准确率 0.938 1(4)

learnlv2:速度慢,准确率 0.975 1(6) (报错,实际为learnlv2)

learnos:速度慢,准确率 0.95 1(2)

learnp:速度慢,准确率 0.931 1(3)

learnpn:速度慢,准确率 0.969 1(5)

learnsom:速度慢,准确率 0.925 1(2)

learnwh:速度慢,准确率 0.931 1(1)

传递函数TF

purelin: 线性传递函数。

tansig :正切S型传递函数。

logsig :对数S型传递函数。

隐含层和输出层函数的选择对BP神经网络预测精度有较大影响,一般隐含层节点转移函数选用 tansig函数或logsig函数,输出层节点转移函数选用tansig函数或purelin函数。

参数说明

在这里插入图片描述
通过net.trainParam可以查看/设置参数

  • showWindow: true
    展示训练窗口,Show Training Window Feedback

  • showCommandLine: false   
    Show Command Line Feedback

  • show:
    两次显示之间的训练次数   Command Line Frequency

  • epochs:
    训练次数  Maximum Epochs

  • time:
    最长训练时间(秒)

  • goal:
    网络性能目标

  • min_grad:
    性能函数最小梯度

  • max_fail:
    最大验证失败次数,验证检查的大小

  • lr:
    学习速率,Learning Rate

  • lr_inc:
    学习速率增长值,Learning Rate Increase

  • lr_dec:
    学习速率下降值,Learning Rate

  • max_perf_inc: 
    表现函数增加最大比,缺省为1.04, Maximum Performance Increase

  • mc:
    动量因子,Momentum Constant

  • 13
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
新版Matlab中神经网络训练函数Newff的详细讲解-新版Matlab中神经网络训练函数Newff的使用方法.doc 本帖最后由 小小2008鸟 于 2013-1-15 21:42 编辑 新版Matlab中神经网络训练函数Newff的详细讲解 一、   介绍新版newffSyntax·          net = newff],{TF1 TF2...TFNl}, BTF,BLF,PF,IPF,OPF,DDF) Descriptionnewff],{TF1 TF2...TFNl}, BTF,BLF,PF,IPF,OPF,DDF) takes several arguments PR x Q1 matrix of Q1 sample R-element input vectorsTSN x Q2 matrix of Q2 sample SN-element target vectorsSiSize of ith layer, for N-1 layers, default = [ ]. TFiTransfer function of ith layer. (Default = 'tansig' for hidden layers and 'purelin' for output layer.)BTFBackpropagation network training function BLFBackpropagation weight/bias learning function IPFRow cell array of input processing functions. OPFRow cell array of output processing functions. DDFData divison function ExamplesHere is a problem consisting of inputs P and targets T to be solved with a network.·          P = [0 1 2 3 4 5 6 7 8 9 10];T = [0 1 2 3 4 3 2 1 2 3 4];Here a network is created with one hidden layer of five neurons.·          net = newff;The network is simulated and its output plotted against the targets.·          Y = sim;plotThe network is trained for 50 epochs. Again the network's output is plotted.·          net.trainParam.epochs = 50;net = train;Y = sim; plot 二、   新版newff与旧版newff调用语法对比 Example1比如输入input(6*1000),输出output为(4*1000),那么旧版定义:net=newff,[14,4],{'tansig','purelin'},'trainlm');新版定义:net=newff; Example2比如输入input(6*1000),输出output为(4*1000),那么旧版定义:net=newff,[49,10,4],{'tansig','tansig','tansig'},'traingdx');新版定义:net=newff; 更详细请看word文档 新版Matlab中神经网络训练函数Newff的使用方法.doc
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值