新版Matlab中神经网络训练函数Newff的详细讲解-新版Matlab中神经网络训练函数Newff的使用方法.doc
新版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 在新版的Matlab中,神经网络训练函数`newff`是一个强大的工具,用于构建和训练前馈神经网络。本文将详细介绍`newff`的使用方法,包括其语法、参数以及与旧版的区别。 一、`newff`函数的介绍与语法 `newff`函数的基本语法如下: ```matlab net = newff(P, T, [S1 S2... S(N-l)], {TF1 TF2... TFNl}, BTF, BLF, PF, IPF, OPF, DDF) ``` - `P`: PR x Q1维矩阵,包含Q1个R元素的输入向量。 - `T`: TSN x Q2维矩阵,包含Q2个SN元素的目标向量。 - `[S1 S2... S(N-l)]`: 层的大小,用于N-1层,默认值为[]。输出层大小SN由目标向量T决定。 - `{TF1 TF2... TFNl}`: 各层的转换函数,默认隐藏层为`tansig`,输出层为`purelin`。 - `BTF`: 反向传播网络训练函数,默认为`trainlm`。 - `BLF`: 反向传播权重/偏置学习函数,默认为`learngdm`。 - `PF`: 输入处理函数的行cell数组,默认为`{'fixunknowns','removeconstantrows','mapminmax'}`。 - `IPF`: 输出处理函数的行cell数组,默认为`{'removeconstantrows','mapminmax'}`。 - `DDF`: 数据分割函数,默认为`dividerand`。 例如,创建一个包含一个隐藏层(五个人工神经元)的网络,输入P和目标T的数据,可以这样调用: ```matlab P = [0 1 2 3 4 5 6 7 8 9 10]; T = [0 1 2 3 4 3 2 1 2 3 4]; net = newff(P, T, 5); ``` 然后,可以模拟网络并将其输出与目标进行比较: ```matlab Y = sim(net, P); plot(P, T, P, Y, 'o'); ``` 训练网络50个周期,并再次绘制输出: ```matlab net.trainParam.epochs = 50; net = train(net, P, T); Y = sim(net, P); plot(P, T, P, Y, 'o'); ``` 二、新版`newff`与旧版`newff`的调用语法对比 新版`newff`的调用方式更加直观,不再需要对输入数据进行预处理,如`minmax`。以下是两个示例: - 旧版定义: ```matlab net = newff(minmax(input), [14,4], {'tansig','purelin'}, 'trainlm'); ``` 新版定义: ```matlab net = newff(input, output, 14, {'tansig','purelin'}, 'trainlm'); ``` - 旧版定义: ```matlab net = newff(minmax(input), [49,14,4], {'tansig','tansig','tansig'}, 'traingdx'); ``` 新版定义: ```matlab net = newff(input, output, [49,14], {'tansig','tansig','tansig'}, 'traingdx'); ``` 三、旧版`newff`在新版中的使用 虽然旧版的`newff`在新版Matlab中仍可运行,但会发出警告,提示使用方式已过时。为了避免这种警告,建议按照新版的调用方式进行重构。旧版的`minmax`预处理在新版中通常不再需要,因为`newff`现在能直接处理原始数据。 总结,新版的`newff`函数在Matlab中提供了更加灵活和直观的神经网络训练方式,简化了网络结构的定义,并且可以直接处理未经预处理的输入数据。在使用时,可以根据具体问题选择合适的网络结构、训练函数以及转换函数,通过模拟和训练过程优化网络性能。同时,要注意适应新版的调用语法,避免出现警告信息。
剩余6页未读,继续阅读
- m0_463496142020-05-20网上一搜就有的讲解,还要浪费积分下载,太过分了,浪费了我最后一个下载机会,生气
- 粉丝: 410
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助