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