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