matlab中newff函数旧版用法
在matlab中,使用神经网络进行数据处理时,常常需要使用newff函数创建一个神经网络对象。newff的函数用法有多个版本,由于官方文档对于旧版本的描述方式很少,且新版本功能已经趋于完善,导致许多新手看官文档时会遇到困惑。本文旨在提供一种旧版newff函数的用法,以供了解和参考。
1. newff函数的语法
newff函数是工具箱中用来创建一个前馈神经网络(feedforward neural network)的函数,其基本语法如下:
net = newff(P,T,S,F,TF,BTF,BLF,PF,Af)
其中,P和T是输入输出数据矩阵(pattern和target),S是包含神经元数的向量,F是激活函数类型向量(默认为‘tansig’),TF是训练函数类型(默认为‘trainlm’),BTF是性能函数类型(默认为‘mse’),BLF是权重和偏移量初始化类型(默认为‘initnw’),PF是权值调整阈值,Af是连续权值更新类型(默认为‘trainbfg’)。
2. newff函数的详细描述
(1)P和T参数
在newff中,输入和输出数据必须分别写入矩阵中。其中,P应该是一个n×m的矩阵,n是数据量大小,m是输入特征个数,并且每一行代表一个数据样本。而T矩阵应该是一个p×m的矩阵,n和m和P矩阵保持相同,但T矩阵中每一行代表的是P矩阵中对应的一行的输出值。如果是多类别分类问题,需要将所有目标列都使用One-hot编码转换。
(2)S参数
S参数是一个向量,用于描述神经网络每层的神经元数目。例如,如果要创建一个有2个输入节点、2个隐藏层、每层3个节点和1个输出节点的神经网络,可以使用以下代码创建:
net = newff([0 1;0 1], [1 1], [3 3], {'tansig','tansig','logsig'})
(3)F参数
F参数是激活函数向量,用于描述每层的激活函数类型,可以使用tansig、purelin、siglog等等。如果忽略本参数,则默认使用tansig激活函数。
(4)TF参数
TF参数是训练函数向量,可选反向传播法等等。如果忽略本参数,则默认使用Levenberg-Marquardt算法。
(5)BTF和BLF参数
BTF参数是性能函数向量,可选mse、crossentropy等等;BLF参数是权重和偏移量的初始化函数向量,可选initwb、initlay、initnw等等。默认情况下,BTF参数选择mse(均方误差),BLF参数选择initnw(普适的权重和偏移量初始化方法)。
(6)PF参数
PF参数是权重调整阈值,指定权重更新终止阈值,当权重更新变化小于该值时,将停止训练网络。默认情况下,PF参数为0.01。
(7)Af参数
Af参数是连续权值更新向量,选择不同的向量决定不同的权值更新算法,如trainlm、trainbr、trainrp等等。默认情况下,Af参数为trainlm。
3. 通过代码示例来学习newff函数的用法
以下是一个简单的代码示例,了解如何使用newff来实现数据的处理。
X = [0 0; 0 1; 1 0; 1 1];
Y = [0; 1; 1; 0];
net = newff(X', Y', [4 1], {'tansig','purelin'});
net = train(net, X', Y');
view(net);
在运行完这段程序后,可以打开上面的查看界面来查看神经网络的结构。这个程序可以实现一个简单的异或操作。
4. 总结
本文介绍了旧版本newff函数的方法和用法,并提供了相关代码示例。对于使用matlab进行神经网络处理的读者,建议使用最新版本的newff函数,以获得更佳的使用体验。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:matlab中newff函数旧版用法 - Python技术站