您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > 学习神经网络的好助手
学习神经网络的好助手,可以仿照其中的代码,只需要修改个别参数便可以轻易实现自己需要完成的任务。1.BP网络构建(1)生成BP网络Net=newff(PR,|S1S2…SN|,{TF1TF2…TFNl},BTF,BLF,PF)PR:由R维的输入样本最小最大值构成的RX2维矩阵。[S1S2…SNl]:各层的神经元个数。{TF1TF2…TFNl}}:各层的神经元传递函数。BTF:表示网络的训练函数。默认为‘trainlm’BLF:表示网络的权值学习函数。默认为‘learngdm’PF:表示性能数,默认为‘mse’(2)网络训练[net,tr,Y,E,Pf,Af]=train(net,P,T,PiAi,VV,TV)(3)网络仿真[Y,Pf,Af,E,,Perf]=sim(net,P,Pi,Ai,T)BP网络的训练函数训练方法训练函数梯度下降法trainged有动量的梯度下降法Traingdm有适应lr的梯度下降法Traingda有适应lr的动量梯度下降法Traingdx弹性梯度下降法TrainrpFletcher-Reeves共轭梯度法TraincgfPloak-Bibiere共轭梯度法TraincgpPowell-Beale共轭梯度法Traincgd量化共轭梯度法Trainscp拟牛顿算法Trainbfg一步正割算法TrainossLevenberg-MarquardttrainlmBP网络训练参数训练参数参数介绍训练参数net,trainParam.epochs最大训练次数(缺省为10)TraingedTraingdmTraingdaTraingdxTrainrpTraincgfTraincgpTraincgdTrainscpTrainbfgTrainossTrainlmnet,trainParam.goal训练要求精度(缺省为0)TraingedTraingdmTraingdaTraingdxTrainrpTraincgfTraincgpTraincgdTrainscpTrainbfgTrainossTrainlmnet,trainParam.lr学习率(缺省为0.01)12个,同上net,trainParam.max_fail最大失败次数(缺省为5)12个,同上net,trainParam.min_grad最小梯度要求(缺省为1e-10)12个,同上net,trainParam.show显示训练迭代过程(NaN表示不显示,缺省为25)12个,同上net,trainParam.time最大训练时间(缺省为inf)12个,同上net,trainParam.mc动量因子(缺省为0.9)traindm,traindxnet,trainParam.lr_inc学习率lr增长比(缺省为1.05)trainda,traindxnet,trainParam.lr_dec学习率lr下降比(缺省为0.7)trainda,traindxnet,trainParam.max_perf_inc表现函数增加最大比(缺省为1.04)trainda,traindxnet,trainParam.delt_inc权值变化增加量(缺省为1.2)trainrpnet,trainParam.delt_dec权值变化减小量(缺省为0.5)trainrpnet,trainParam.delt_0初始权值变化(缺省为0.07)trainrpnet,trainParam.delt_amax权值变化最大值(缺省为50.0)trainrpnet,trainParam.searchFcn一维线性搜索方法(缺省为srchcha)traincgftraincgptraincgbtrainbfgtrainossnet,trainParam.sigma因为二次求导对权值调整的影响参数(缺省为5.0e-5)trainscgnet,trainParam.lambdaHessian矩阵不确定性调节参数(缺省为5.0e-7)trainscgnet,trainParam.men_reduc控制计算机内存/速度的参数,内存较大设为1,否则设为2(缺省为1)trainlmnet,trainParam.mu的初始值(缺省为0.01)trainlmnet,trainParam.mu_dec的减小率(缺省为0.1)trainlmnet,trainParam.mu_inc的增长率(缺省为10)trainlmnet,trainParam.mu_max的最大值(缺省为1e10)trainlm2,BP网络举例例一%traingdclear;clc;p=[-1-1224;05057];T=[-1-111-1]%利用minmax函数求输入样本范围net=newff(minmax(p),[5,1],{‘tansig’,’purelin’},’trainrp’);net.trainParam.show=50;%net.trainParam.lr=0.05;net.trainParam.epochs=300;net.trainParam.goal=1e-5;[net,tr]=train(net,P,T)net.iw{1,1}%隐层权值net.b{1}%隐层阈值net.lw{2,1}%隐层权值net.b{2}%隐层阈值sim(net,p)例二、利用三层BP神经网络来完成非线性函数的逼近任务,其中隐层神经元个数为五个。样本数据:输入输出输入输出输入输出-1.0000-0.9602-0.30000.13360.40000.3072-0.9000-0.5770-0.2000-0.20130.50000.3960-0.8000-0.0729-0.1000-0.43440.60000.3449-0.7000-0.37710-0.50000.70000.1816-0.6000-0.64050.1000-0.39300.8000-0.3120-0.5000-0.66000.2000-0.16470.9000-0.2189-.04000-0.46090.3000-0.09881.0000-0.3201解:看到期望输出的范围是(-1,1),所以利用双极性signoid函数作为转移函数。程序如下:clear;clc;******************************************X=-1:0.1:1;//x从-1到1的向量,0.1那个是阶数。就是指-1到1的等差数列的公差//*******************************************D=[-0.9602-0.5770-0.0729-0.3771-0.6405-0.6600-0.4609…?0.1336-0.2013-0.4344-0.5000-0.3930-0.1647-0.0988..0.30720.39600.34490.1816-0.3120-0.2189-0.3201];figure;plot(X,D,’*’);%绘制原始数据分布图(附录;1-1)net=newff([-11],[51],{‘tansig’,’tansig’});net.trainParam.epochs=100;%训练的最大次数net.trainParam.goal=0.005;%全局最小误差net=train(net,X,D);O=sim(net,X);figure;plot(X,D,’*’,X,O);绘制训练后得到的结果和误差曲线(附录:1-2、1-3)V=net.iw{1,1}%输入层到中间层的权值thetal=net.b{1}%中间层各神经元的阈值W=net.lw{2,1}%中间层到输出层的权值theta2=net.b{2}%输出层各神经元的阈值所得结果如下:输入层到中间层的权值:V=(-9.16697.34487.37614.89663.5409)中间层各神经元的阈值:=(6.5885-2.4019-0.99621.53033.2731)中间层到输出层的权值:W=(0.34270.21350.2981-0.884.1.9134)输出层各神经元的阈值:T=-1.5271例三.以下是上证指数2009.2.2到3.27的收盘价格,构建一个三层BP神经网络,利用改组信号的6个过去值预测信号的将来值。Loaddata3_1,txt;[m,n]=size(data3_1);tsx=data3_1(1:m-1,1);tsx=tsx’;ts=data3_1(2:m,1);ts=ts’;[TSX,TSps]=mapminmax(tsk,1,2);[TS,TSps]=mapminmax(ts,1,2);TSX=TSX’;
本文标题:学习神经网络的好助手
链接地址:https://www.777doc.com/doc-2487497 .html