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

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,matlab)