matlab BP神经网络预测 求具体语句与解释

matlab BP神经网络预测 求具体语句与解释,第1张

p=[744614 146531 151057

993442 238062 225173

1117079 317883 281891

1139521 403188 310837

1237282 525572 335367

1409683 900568 341787

177021 117301 484343

185316 1421183 662793

1824217 1462612 749982

1892367 1580463 958563

193562 1650463 1133469

196562 1738769 125977

1913975 1826399 1407304

1900908 1880822 1539464]';

t=[655

674

693

712

731

769

787

821

842

860

877

900

931

967]';

net = newff(p,t,20);%中间节点数:20

net trainParam show = 100; %设置训练显示间隔次数

net trainParam epochs= 5000; %设置最大训练循环次数 5000

net trainParam goal= 0005; %设定学习精度

net trainParam lr= 0 05; %设置学习系数

net=train(net,p,t)

Y = sim(net, p); %仿真

plot(t,'o');

hold on

plot(Y,'-');%结果对比

P=[。。。];输入T=[。。。];输出

% 创建一个新的前向神经网络

net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm')

% 当前输入层权值和阈值

inputWeights=net_1IW{1,1}

inputbias=net_1b{1}

% 当前网络层权值和阈值

layerWeights=net_1LW{2,1}

layerbias=net_1b{2}

% 设置训练参数

net_1trainParamshow = 50;

net_1trainParamlr = 005;

net_1trainParammc = 09;

net_1trainParamepochs = 10000;

net_1trainParamgoal = 1e-3;

% 调用 TRAINGDM 算法训练 BP 网络

[net_1,tr]=train(net_1,P,T);

% 对 BP 网络进行仿真

A = sim(net_1,P);

% 计算仿真误差

E = T - A;

MSE=mse(E)

x=[。。。]';%测试

sim(net_1,x)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

不可能啊 我2009

下面是几个仿真实验,用了不同的训练函数

1创建BP网络的学习函数,训练函数和性能函数都采用default值,分别为learngdm,trainlm和mse时的逼近结果:

由此可见,进过200次训练后,虽然网络的性能还没有为0,但是输出均方误差已经很小了,MSE=672804e-006,显示的结果也证明P和T之间非线性映射关系的拟合是非常精确的;

2建立一个学习函数为learnd,训练函数为traingd,和性能函数为msereg的BP网络,来完成拟合任务:

可见,经过200次训练后,网络的输出误差比较大,而且网络误差的收敛速度非常慢。这是由于训练函数traingd为单纯的梯度下降训练函数,训练速度比较慢,而且容易陷入局部最小的情况。结果显示网络精度确实比较差。

3将训练函数修改为traingdx,该i函数也是梯度下降法训练函数,但是在训练过程中,他的学习速率是可变的

在200次训练后,以msereg函数评价的网络性能为104725,已经不是很大,结果显示P和T之间非线性关系的拟合情况不错,网络的性能不错。

神经系统(nervous system)是机体内起主导作用的系统,分为中枢神经系统和周围神经系统两大部分。

神经系统是人体内起主导作用的功能调节系统。人体的结构与功能均极为复杂,体内各器官、系统的功能和各种生理过程都不是各自孤立地进行,而是在神经系统的直接或间接调节控制下,互相联系、相互影响、密切配合,使人体成为一个完整统一的有机体,实现和维持正常的生命活动。同时,人体又是生活在经常变化的环境中,神经系统能感受到外部环境的变化对体内各种功能不断进行迅速而完善的调整,使人体适应体内外环境的变化。可见,神经系统在人体生命活动中起着主导的调节作用,人类的神经系统高度发展,特别是大脑皮层不仅进化成为调节控制的最高中枢,而且进化成为能进行思维活动的器官。因此,人类不但能适应环境,还能认识和改造世界。

神经系统由中枢部分及其外周部分所组成。中枢部分包括脑和脊髓,分别位于颅腔和椎管内,两者在结构和功能上紧密联系,组成中枢神经系统。外周部分包括12对脑神经和31对脊神经,它们组成外周神经系统。外周神经分布于全身,把脑和脊髓与全身其他器官联系起来,使中枢神经系统既能感受内外环境的变化(通过传入神经传输感觉信息),又能调节体内各种功能(通过传出神经传达调节指令),以保证人体的完整统一及其对环境的适应。神经系统的基本结构和功能单位是神经元(神经细胞),而神经元的活动和信息在神经系统中的传输则表现为一定的生物电变化及其传播。例如,外周神经中的传入神经纤维把感觉信息传入中枢,传出神经纤维把中枢发出的指令信息传给效应器,都是以神经冲动的形式传送的,而神经冲动就是一种称为动作电位的生物电变化,是神经兴奋的标志。

中枢神经通过周围神经与人体其他各个器官、系统发生极其广泛复杂的联系。神经系统在维持机体内环境稳定,保持机体完整统一性及其与外环境的协调平衡中起着主导作用。在社会劳动中,人类的大脑皮层得到了高速发展和不断完善,产生了语言、思维、学习、记忆等高级功能活动,使人不仅能适应环境的变化,而且能认识和主动改造环境。内、外环境的各种信息,由感受器接受后,通过周围神经传递到脑和脊髓的各级中枢进行整合,再经周围神经控制和调节机体各系统器官的活动,以维持机体与内、外界环境的相对平衡。神经系统是由神经细胞(神经元)和神经胶质所组成。

中枢神经通过周围神经与人体其他各个器官、系统发生极其广泛复杂的联系。神经系统在维持机体内环境稳定,保持机体完整统一性及其与外环境的协调平衡中起着主导作用。在社会劳动中,人类的大脑皮层得到了高速发展和不断完善,产生了语言、思维、学习、记忆等高级功能活动,使人不仅能适应环境的变化,而且能认识和主动改造环境。内、外环境的各种信息,由感受器接受后,通过周围神经传递到脑和脊髓的各级中枢进行整合,再经周围神经控制和调节机体各系统器官的活动,以维持机体与内、外界环境的相对平衡。神经系统是由神经细胞(神经元)和神经胶质所组成。

 中枢神经系统central nervous system包括位于颅腔内的脑和位于椎管内的脊髓。

脑brain是中枢神经系统的头端膨大部分,位于颅腔内。人脑可分为端脑、间脑、中脑、脑桥、小脑和延髓六个部分。通常把中脑、脑桥和延髓合称为脑干,延髓向下经枕骨大孔连接脊髓。脑的内腔称为腔室,内含脑脊髓液。端脑包括左、右大脑半球。每个半球表层为灰质所覆叫大脑皮质。人类的大脑皮质在长期的进化过程中高度发展,它不仅是人类各种机能活动的高级中枢,也是人类思维和意识活动的物质基础。

脊髓spinal cord呈前后扁的圆柱体,位于椎管内,上端在平齐枕骨大孔处与延髓相续,下端终于第1腰椎下缘水平。脊髓前、后面的两侧发出许多条细的神经纤维束,叫做根丝。一定范围的根丝向外方集中成束,形成脊神经的前根和后根。前、后根在椎间孔处合并形成脊神经。脊髓以每对脊神经根根丝的出入范围为准,划分为31个节段,即颈髓8节(C1-8),胸髓12节(T1-12),腰髓5节(L1-5),骶髓(S1-5),尾髓1节(Co1)。

周围神经系统peripheral nervous system联络于中枢神经和其它各系统器官之间,包括与脑相连的12对脑神经cranial nerves和与脊髓相连的31对脊神经spinal nerves。按其所支配的周围器官的性质可分为分布于体表和骨骼肌的躯体神经系和分布于内脏、心血管和腺体的内脏神经系。

希望我能帮助你解疑释惑。

关于神经网络(matlab)归一化的整理

由于采集的各数据单位不一致,因而须对数据进行[-1,1]归一化处理,归一化方法主要有如下几种,供大家参考:(by james)

1、线性函数转换,表达式如下:

y=(x-MinValue)/(MaxValue-MinValue)

说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。

2、对数函数转换,表达式如下:

y=log10(x)

说明:以10为底的对数函数转换。

3、反余切函数转换,表达式如下:

y=atan(x)2/PI

归一化是为了加快训练网络的收敛性,可以不进行归一化处理

归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。归一化有同一、统一和合一的意思。无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,归一化是同一在0-1之间的统计概率分布;

当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。

归一化是因为sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。所以这样做分类的问题时用[09 01 01]就要比用[1 0 0]要好。

但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。

关于用premnmx语句进行归一化:

premnmx语句的语法格式是:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T)

其中P,T分别为原始输入和输出数据,minp和maxp分别为P中的最小值和最大值。mint和maxt分别为T的最小值和最大值。

premnmx函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在[-1,1]区间内。

我们在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到tramnmx。

下面介绍tramnmx函数:

[Pn]=tramnmx(P,minp,maxp)

其中P和Pn分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。

(by terry2008)

matlab中的归一化处理有三种方法

1 premnmx、postmnmx、tramnmx

2 restd、poststd、trastd

3 自己编程

具体用那种方法就和你的具体问题有关了

(by happy)

pm=max(abs(p(i,:))); p(i,:)=p(i,:)/pm;

for i=1:27

p(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));

end 可以归一到0 1 之间

01+(x-min)/(max-min)(09-01)其中max和min分别表示样本最大值和最小值。

这个可以归一到01-09

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/12179308.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存