BP神经网络基础.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
BP神经网络基础.doc

BP神经网络基础 一.BP网络的简介 首先看一个神经元的组成: ? 这即是一个神经元的组成,可以从图中基本看出: 1.??输入即是我们输入的数据,而数据可以是多维的; 2.??这些数据都会与权值相乘,对相乘后的结果进行处理,再求和. 3.??将求和的结果进行线性变换,得到传输,进行输出,再输出到其他神经元. 通过上述的重复后即构成了神经网络,网络中有很多这样的神经元,不断的输入输出,权值不断的变化. ? 二.BP网络的特点及应用 2.1.网络的特点 (1)主要实现从输入到输出的映射功能,能够实现任何非线性的映射功能. (2)具有自学习能力. (3).网络能够进行推广和概括. 2.2.网络的作用 (1)回归预测 (2)分类识别 ? 三.BP神经网络实现基本步骤 第一步:数据的归一化处理 第二步:数据分类,主要包括打乱数据顺序,抽取正常训练用数据、变量数据、测试数据 第三步:建立网络,包括设置多少层一般3层以内既可以,每层的节点数(具体节点数,尚无科学的模型和公式方法确定,可采用试凑法,但输出层的节点数应和需要输出的量个数相等),设置隐含层的传输函数等. 第四步:指定训练参数进行训练 第五步:完成训练后,调用训练结果,采用测试数据进行测试 第六步:对数据进行反归一化 第七步:对误差进行分析并作图. ? 神经网络归一化处理: 线性函数转化: y=(x-MinValue)/(MaxValue-MinValue) 对数函数转化:?y=log10(x) 反余切函数转化:y=atan(x)*2/PI 说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。 pre**是归一化,post**是反归一化,tram**是使用同样的设置归一化另外一组数据 1.??内部函数premnmx、postmnmx、tramnmx,将数据归一化到(-1,1) premnmx的语法格式是 [Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T) 其中P,T分别为原始输入和输出数据,minp和maxp分别为P中的最小值和最大值。mint和maxt分别为T的最小值和最大值。 设置(setting)归一化另外一组数据。如下所示: [Pn]=tramnmx(P,minp,maxp) 其中P和Pn分别为变换前、后的输入数据,maxp和minp分别为premnmx函返回的最大值maxp和最小值minp。 2、prestd、poststd、trastd归化数据到(0,1),用法和1中的Pre*差不多 注:上述两种方法是可以相互转化的,比如,第一种归化后的数据为p,则(1+p)./2的结果就是第二种了 3、mapminmax()将数据归一化到(-1,1),是6.5中**mnmx系列的替换函数,如: ?x1 = [1 2 4; 1 1 1; 3 2 2; 0 0 0] [y1,PS] = mapminmax(x1,0,1)???????????%归化到?[0,1],若不填,则默认为[-1,1] x1_again = mapminmax(reverse,y1,PS)%还原 4、mapstd()将数据归一化到(0,1),是6.5中**std系列的替代函数 ? 输入训练数据的乱序排法,以及分类 divideblock,divideind,divideint和dividerand分别是block方法抽取、按数组标号自定义抽取、交错索引抽取和随机抽. [trainV,valV,testV,trainInd,valInd,testInd] =divideblock(allV,trainRatio,valRatio,testRatio) [训练数据,变量数据,测试数据,训练数据矩阵的标号,,变量数据标号,测试数据标号] =divideblock(所有数据,训练数据百分比,变量数据百分比,测试数据百分比) 通过设置网络的divideFcn函数来实现,比如,net.divideFcn=divideblock,但不是说不可以在代码中像dividevec直接调用. ? 查看和保存结果 输入到隐层权值:?w1=net.iw{1,1} 隐层阈值:?theta1=net.b{1} 隐层到输出层权值:?w2=net.lw{2,1}; 输出层阈值:?theta2=net.b{2} 如下例子: p = [-1 -1 2 2; 0 5 0 5]; t = [-1 -1 1 1]; net = newff(p,t,3,{},traingda); net.trainParam.lr = 0.05; net.trainParam.lr_inc = 1.05; net = train(net,p,t); q=[1;5] y = sim(net,q)

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档