关于matlab中的 newff, bp神经网络

作者&投稿:雕段 (若有异议请与网页底部的电邮联系)
BP神经网络MATLAB编程。~

隐层个数及训练次数可以在定义网络时自己设定,图形的话是系统自己生成的.
题目的意思是00得到0,01得到1,10得到1,11得到0。前者为输入,后者为输出.
所以就这样构造:
%输入 一共四组,每组两个
p=[0,0;0,1;1,0;1,1];

%输出:
t=[0,1,1,0];

构造神经网络:
net=newff(p',t,{10},{'tansig'},'trainlm');
%上面这句话的意思是建立新的神经网络net,newff(输入,输出,{隐层数量及该层的节点个数},{传输函数名},训练函数);{10}代表单隐层,并且该层节点为10个,如果想显示多隐层,比如双隐层,{10,15}这样就行,传输函数也要相应增加,比如{'tansig','logsig'}节点数和传输函数名可以随意调整,目的当然是让预测结果更精确

%之后,
net.trainParam.goal = 0.00001; %设置精确度

net.trainParam.epochs = 5000; %设置训练次数,5000次

[net,tr] = train(net,p',t); %训练开始

。。。。。。。。

这样就可以训练了,过几秒后图片matlab会自动生成

最后想测试训练结果的话,比如你想打00进去看它是不是也给0
p=[0 0];
a=sim(net,p')

。。。sim就是让net去预测结果

差不多就是这样,我用的是2009a版本,有段时间没用了可能格式上稍微有点出入,希望可以帮到你

比较新的版本,比如说matlab 2010以上的,都不需要装神经网络的工具箱
建立网络步骤:
1、数据归一化:输入的数据通常为P,输出数据通常为T,数据格式为:每列对应一个样本,归一化常用函数:mapminmax
[pn,ps]=mapminmax(p); [tn,ts]=mapminmax(t)
pn,tn是归一化后的数据,ps, ts是归一化的结构体,在后面反归一化预测值很有用。
2、建立网络并设定参数
net=newff(pn,tn,[ ]) 中括号里面的是输入层数,隐含神经元数,输出层数,还可以设定节点传递函数等等的参数
net.trainparam.epochs=1000 训练的次数
net.trainparam.goal=0.0001 训练的误差目标值
net.trainparam.lr=0.1 学习速率,通常在0到1之间,过大过小都不好
3、预测并分析
an=sim(net, pn)
ouput=mapminmax('reverse', an, ts) 根据之前归一化的标准,对预测结果进行反归一化,得到结果
error=output-t 这里是对误差进行输出,也可以用error=sum(asb(output-t))
当然也可以作图,比如说:
plot(p,t,'-o')
hold on
plot(p, output,'-*')
看预测值和真实值能否吻合
还可以在神经网络训练完成后的对话框中看MSE和R方
还有很多方法提高神经网络的精度,以上程序没有经过MATLAB调试,但大致过程如上

纯手打,希望采纳!

是的,需要归一化等预处理操作,有函数可以做,比如:
[Y,PS] = mapminmax(X)
[Y,PS] = mapminmax(X,FP)
Y = mapminmax('apply',X,PS)
X = mapminmax('reverse',Y,PS)


matlab中的伽马函数,伽马函数(Γ(x)伽马函数公式)
伽马函数对于实数x的定义和数值计算,通常是通过数值方法进行的,特别是在非整数x值时。对于伽马函数的导数和特殊值,如在x=1处的导数,需要通过导数计算规则和极限求解,书中的推导可能涉及洛必达法则。复变量伽马函数Γ(x+yi)的计算则需要借助计算软件,如Matlab中的gamma函数或编程实现。

在matlab中怎么输入特殊符号
对于数学符号,Matlab提供了丰富的库,包括但不限于近似(\\approx),除法(\\div),和积分(\\int)等。箭头符号如上箭头(\\uparrow)、左箭头(\\leftarrow)等也一应俱全。希腊字母如θ和π可以通过`\\theta`或`\\pi`直接输入。在图形注释中,如`text(2,sin(2),wacs5)`,你可以使用这些特殊字符来增强表达...

matlab中的a.*b和a*b有什么区别
三、总结区别 因此,a.*b和a*b的主要区别在于它们执行的操作类型不同。a.*b执行的是点对点或元素级别的乘法,适用于向量或矩阵中元素的逐一相乘;而a*b执行的是矩阵乘法,涉及的是矩阵整体的运算。在使用时需要根据实际需求和操作对象的特点选择合适的运算方式。希望这样的解释能够帮助你理解在MATLAB中...

基于MATLAB的毕业设计有哪些?
基于MATLAB的毕业设计有:1、基于MATLAB的视图技术分析。2、二值图像细化算法研究与实现。3、基于MATLAB下的信号分析与处理。4、基于matlab的伪彩色处理与研究。5、matlab进行小波分析。matlab将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中...

Matlab里大于等于是什么意思?
在Matlab中,大于等于(>=)运算符用于比较两个数的大小关系,返回值为TRUE(真)或FALSE(假)。例如,要判断一个数是否大于等于10,可以使用以下代码:x = 5;if x >= 10; then disp("x is greater than or equal to 10");else; disp("x is less than 10");end if;除了使用>=...

matlab在电气工程中的应用
分析和设计。2、电力电子系统建模与仿真:电力电子技术在电气工程中占据重要地位,包括电机控制、可再生能源转换等。3、信号处理与通信系统设计:电气工程中涉及大量的信号处理和通信系统设计。MATLAB提供了信号处理工具箱和通信系统工具箱,用于信号的采集、分析和处理,以及通信系统的设计和性能评估。

matlab如何画平行于坐标轴的直线,如y=1
matlab plot([b,b],[ymin,ymax]);这里的 `[b,b]` 指定了 x 坐标的范围,而 `[ymin,ymax]` 指定了 y 坐标的范围。确保 `b` 为你要绘制垂直线的 x 值,`ymin` 和 `ymax` 分别是 y 轴的最小值和最大值。通过上述方法,你可以在 MATLAB 中轻松绘制平行于坐标轴的直线,如 y = ...

对matlab中pwelch函数估计功率谱的一些理解
在MATLAB的信号分析中,功率谱(PSD)相较于频谱更常用于处理随机信号,因为随机信号的单次频谱分析缺乏统计意义,而实际工程中,信号往往包含噪声,使其表现为随机性。功率谱能更有效地反映这种叠加噪声的信号特性。要获取信号的功率谱,可以利用维纳辛钦定理,即自相关函数和功率谱密度的傅里叶变换关系。

matlab 中e是什么意思?
e还与复数有关,它在极坐标下的表示是e^(θ*i),其中i是虚数单位,θ是极角,可以用matlab中的polar函数来表示。e是matlab中广泛使用的一个数学常数,它常被用于指数函数。比如,如果我们要求2的e次幂,可以在matlab中输入2^e,这将给出一个非常接近于7.389的结果。e也被用于计算复合利率,这在...

fortran中类似于matlab里面的help功能怎么实现
Fortran中call是用来调用没有返回值的函数或子程序,在matlab中没有返回值的函数可以直接调用,前面什么都不用加。比如一个自定义的子程序myfun,在fortran调用是用call myfun(arg1,arg2,…)在matlab中调用是直接写myfun(arg1,arg2,……)

双鸭山市13092272142: Matlab中做人工神经网络时 newff 和newcf有什么区别? -
湛莎: newff中的指的是隐层、输出层神经元数,不用指出输入层神经元个数,你建立是建立了一个8-8-3的网络.数据o的一个维是一个样本的话,输入神经网络的数据应该转置下变成列向量,即以列为一个样本.

双鸭山市13092272142: 有人知道bp神经网络Matlab R2012a 的newff用法么 -
湛莎: newff() 这个函数是建立一个神经网络的函数,其中括号里面的参数含义依次是:输入数据和输出数据的范围,隐含层神经元个数,传递函数设置 像BP网编程这块,需要先给出输入和期望输出的数据矩阵,然后newff函数建立网络,然后train...

双鸭山市13092272142: matlab2013中newff的参数是哪些 -
湛莎: 产品类型 键盘 人体工程学 支持 即插即用 支持 手托 支持 多媒体功能键 支持 功能参数 USB HUB 有 规格 键盘标准 机械键盘 适用类型 笔记本+台式机 接口类型 USB 连接方式 有线 特性 其它特性 茶轴按键,5千万次敲击寿命;6个可编程G键,110个按键无冲:全键盘无冲突设计,LED背光,5档亮度可调;防误按Windows键锁止;支持Windows 8、Windows 7以及Windows Vista下系统,

双鸭山市13092272142: 求助 关于matlab2012中newff的问题 -
湛莎: BP网络建立成功了.这个意思是newff函数已经过时,但是还能够使用.没影响.

双鸭山市13092272142: 求大神指导,matlab中newff的用法老是显示NEWFF used in an obsolete way.我用的2010b版 -
湛莎: matlab 从2008版开始就对代码的语法结构进行了很大的改动.在2010版本里面已经不再主张使用这种初始化神经网络的方法了. 简单的做法是net = newff(Input, Target, StructuralArray, TrasnferFcns); 你上面的这个代码改成这样 net_1 = newff(P, T, [10, 5], {'tansig' 'purelin' 'purelin'}, 'traingdm') 其中,transfer function要比你的隐层数量多一个,因为输出层的节点数量是不能设置的,这个是根据你前面给的T来确定的.最后一个'purelin'就是你输出层的transfer function.

双鸭山市13092272142: matlab中bp神经网络 出现inf -
湛莎: 能否描述地详细一些,inf指出现了无穷大,你可能需要检查程序错误.MATLAB中BP神经网络的建立函数newff函数的格式为:net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF),函数newff建立一个可训练的前馈网络.输入参数说明:PR:Rx2的矩阵以定义R个输入向量的最小值和最大值;Si:第i层神经元个数;TFi:第i层的传递函数,默认函数为tansig函数;BTF:训练函数,默认函数为trainlm函数;BLF:权值/阀值学习函数,默认函数为learngdm函数;PF:性能函数,默认函数为mse函数.

双鸭山市13092272142: MATLAB神经网络工具箱中newcf 和newff的区别 -
湛莎: 训练函数和自适应学习函数区别:从范围上:训练函数包含学习函数,学习函数是属于训练函数的一部分;从误差上:训练函数对整体来说误差是最小,学习函数对于单个神经元来说误差是最小;

双鸭山市13092272142: Matlab中如何自定义神经网络的激励函数 -
湛莎: 建立神经网络:net=newff(minmax(P),[30,7],{'tansig','logsig'},'traingdx');其中,隐含层有30个节点,激励函数为:tansig; 输出层有7个节点,激励函数:logsig;学习函数:traingdx.

双鸭山市13092272142: bp神经网络matlab实现时,newff函数中的网络各层神经元的激活函数怎么选? -
湛莎: 由于各个网络层的作用的不同,选择的激活函数的不同结果将会有恒大的区别 所以要注意 输出层一般采用 logsig purelin 隐含层采用 tansig logsig 同时要注意设置其他属性如最小梯度min_grad 等等

双鸭山市13092272142: matlab神经网络newff函数为什么一个隐藏层就报错 -
湛莎: 最后一层隐含层的神经元个数应该与输出参数相匹配

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网