MATLAB 创建神经网络模型的patternnet和newff函数区别

patternnet和newff是MATLAB中创建神经网络的函数,patternnet主要用于多层感知器的简单分类任务,而newff则提供更灵活的网络结构和参数设置,适用于需要自定义网络设计的复杂问题。
摘要由CSDN通过智能技术生成

patternnetnewff都是在MATLAB中用于创建人工神经网络的函数,但它们有一些区别和适用场景。

  1. 网络类型

    • patternnet:用于创建多层感知器(MLP)类型的神经网络,MLP是一种前馈神经网络,由输入层、若干隐藏层和输出层组成。它适用于各种问题,包括分类和回归任务。
    • newff:用于创建通用的前馈神经网络,除了MLP,也可以创建其他类型的前馈神经网络。newff函数更加灵活,可以定义自定义的网络结构和激活函数。
  2. 参数设置

    • patternnet:在创建patternnet网络时,您只需要指定各隐藏层的节点数和训练函数。网络结构和参数已经被设置为适合各种分类问题。
    • newff:在创建newff网络时,您需要手动设置更多的网络参数,例如输入层、各隐藏层和输出层的节点数,激活函数,训练函数等。这使得newff函数更加灵活,可以针对不同问题进行定制化的网络设计。
  3. 适用场景

    • patternnet:适用于一般的分类问题,特别是当您对神经网络的结构不需要过多定制化时。它可以快速创建一个常用的MLP网络并进行训练和预测。
    • newff:适用于对神经网络结构和参数有特殊要求的情况,或者当您需要自定义网络结构和激活函数时。它提供更大的灵活性,可以构建更复杂和定制化的神经网络。

综上所述,如果您需要一个简单的多层感知器神经网络,用于常规的分类问题,patternnet是一个较为方便的选择。如果您对网络结构有更高的要求,或者需要更灵活的定制化,newff函数提供了更多的选项和控制权。

patternnet函数语法

net = patternnet(hiddenLayerSizes, trainFcn)

参数说明:

  • hiddenLayerSizes: 各隐藏层的节点数构成的向量,例如 [10, 5] 表示有两个隐藏层,分别有 10 和 5 个节点。
  • trainFcn: 训练函数,用于指定训练神经网络时使用的优化算法。常用的训练函数包括 'trainscg'(scaled conjugate gradient)、'trainlm'(Levenberg-Marquardt)、'trainrp'(resilient backpropagation)等。

patternnet函数返回一个已经初始化的多层感知器神经网络 net

newff函数语法

net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)

参数说明:

  • P: 输入数据(训练样本)的输入层数据,是一个大小为 N x Q 的矩阵,其中 N 是输入特征的数量,Q 是样本数量。
  • T: 输入数据对应的目标输出(标签),是一个大小为 S x Q 的矩阵,其中 S 是输出节点的数量,与输出层节点数相同,Q 是样本数量。
  • S: 各层节点数构成的向量,如 [10, 5] 表示隐藏层有两个,节点数分别为 10 和 5。
  • TF: 各层的激活函数,例如 'tansig' 表示双曲正切函数,'logsig' 表示对数函数等。默认隐含层为tansig函数,输出层为purelin函数,即{'tansig', 'purelin'}。
  • BTF: 反向传播的激活函数,默认为 'trainlm'
  • BLF: 反向传播的学习函数,默认为 'learngdm'

       学习训练函数BTF :
  traingd:最速下降BP算法。 
  traingdm:动量BP算法。 
  trainda:学习率可变的最速下降BP算法。 
  traindx:学习率可变的动量BP算法。 
  trainrp:弹性算法。

  • PF: 性能函数,默认为 'mse'(均方误差)。
  • IPF: 输入处理函数,默认为空矩阵 []
  • OPF: 输出处理函数,默认为空矩阵 []
  • DDF: 分隔数据函数,默认为空矩阵 []

newff函数返回一个已经初始化的前馈神经网络 net

新版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神经网络的调制方式识别只有那个识别六种信号的神经网络程序,我也下载研究了一下,发现其代码实现的功能是自己选择训练一组对单一信号的调制神经网络,之后再用同一个信号来验证。举个例子,其实现的效果就是我向神经网络训练2ASK信号,在用训练的2ASK检测,神经网络检测出输入的信号是2ASK信号。而我向里面输入2FSK信号用来检测便检测不出来,所以其实现的并不是我们希望神经网络实现的功能。而且我也对那个程序里面运行后的各种参数观察了一下,发现其实现的并不能区分不同信号的调制识别方式。与是我写了一个应用MATLAB神经网络对信号调制方式识别的程序,目前只是起步阶段,只实现了应用瞬时参数γmax来区分2FSK,2ASK的信号调制方式识别。目前测试是实现了我想实现的功能。这个程序设置的免积分可下载,希望各位志同道合和我一样的小白们一起共同进步,也希望大神们不吝指点。 通过MATLAB神经网络函数,训练了一组通过瞬时参数γmax来区分2FSK,2ASK的信号调制方式识别。 .m文件sig_2ASK和sig_2FSK用来生成输入数据2ASK_train,2FSK_train和测试数据2ASK_test和2FSK_test,network_2ASK_2FSK是训练的神经网络,对训练好的神经网络保存命名为net,netout是应用训练好的神经网络对输入信号进行调制方式识别检测。 代码下载好直接运行netout就可看出实现效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dropoutgirl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值