欢迎光临散文网 会员登陆 & 注册

Matlab答疑随笔17:很多同学学习神经网络还在使用newff和sim函数,我来说说正确的用法

2023-08-03 22:59 作者:freexyn_数学建模编程  | 我要投稿

0.每隔一段时间,就会有同学问到关于newff神经网络相关程序代码的问题,每次看到这样的问题,内心波澜涌起;

这种感觉吧,如鲠在喉,想回复一下,但转念之间,算了,说了也没用;

1.首先说,newff,这个函数

它用来创建了一个前馈反向传播神经网络,它的用法如下:net = newff(P,T,S),具体语法含义不解释,因为网上这方面的内容,可谓铺天盖地,唾手可得;

现在的问题是,如果稍微仔细了解一下,就会发现,newff函数在Matlab R2010b已经被Obsoleted(废止、淘汰),新版本中,推荐的替代方法是feedforwardnet函数;

注:Matlab2022a中,虽然淘汰,但newff函数亲测,仍然可用;

2.接着说,feedforwardnet函数的用法

net = feedforwardnet(hiddenSizes,trainFcn) ,创建前馈神经网络,hiddenSizes指定隐藏层大小,训练函数由 trainFcn 指定;前馈网络由一系列层组成第一层有来自网络输入的连接每个后续层都有来自上一个层的连接后一个层产生网络的输出

3. feedforwardnet可以创建基本通用的神经网络,但可能并不常用

在新版本中,除了feedforwardnet函数,Matlab工具箱还另外预设了不同应用场景的神经网络,如拟合神经网络可以使用fitnet函数,模式识别网络可以使用patternnet 函数级联前向网络从输入到每层以及从每层到所有后续层,该网络都有额外的连接)可以使用cascadeforwardnet 函数

之所以有这么多类别的细分,个人认为,是为了应对更广泛更精细的应用需求,毕竟,新世纪新阶段,借着人工智能、大数据、物联网的东风,神经网络在各个领域中,一路狂奔又一路跌打损伤,也是大势所趋;

这几个函数用法就不叨叨念了,在我的视频系列43中都有详细讲述和编程实例演示(43.143.1143.14),也可以自己网上查资料学习;

4.继续说,sim,这个函数

它用来进行神经网络仿真,意思是,神经网络训练之后,输入新的数据,神经网络运算,返回响应数据,用法:y=sim(net,x)net是神经网络对象,x是输入数据,y是响应数据;

下面要说点什么呢,毕竟,这个函数没有被Obsoleted

下面要说的是,这个用法out了;

5.然后说,如今流行的调用方法

y=net(x)

也就是,直接使用神经网络对象net,把输入数据丢进去,就可以仿真运算,返回结果了,是不是很贱;

6.最后说明

本文整篇都在无事生非,一个两个函数或用法的改进,或者不改进,都是小聪明,能够解决大家在建模、课题、论文中的实际问题,才是大谋略;

7.附图:两种神经网络示意图

feedforwardnet神经网络
cascadeforwardnet级联前向神经网络

相关推荐

End

Matlab答疑随笔17:很多同学学习神经网络还在使用newff和sim函数,我来说说正确的用法的评论 (共 条)

分享到微博请遵守国家法律