首页 > 编程知识 正文

bp神经网络matlab代码,matlab神经网络实例

时间:2023-05-06 18:26:57 阅读:20118 作者:2332

文章目录1. BP神经网络概述和结构参数1.1 BP神经网络结构构成1.2 BP神经网络训练接口参数解读2 .实现BP网络的步骤3. matlab代码编写4

1. BP神经网络综述及结构参数

神经网络是机器学习中常见的数学模型,通过建立类似大脑神经突触连接的结构进行信息处理。 在应用神经网络的过程中,处理信息的单元一般分为输入单元、输出单元、隐式单元三类。 活力牛排:输入单元接收外部信号和数据的输出单元,实现系统处理结果的输出; 隐式单元位于输入/输出单元之间,不能从网络系统外部观测隐式单元的结构。 除了用于处理上述三种信息的单元外,神经元之间的连接强度的大小由权重等参数决定。

1.1 BP神经网络的结构结构下图为训练神经网络时经常出现的界面,从这一部分可以看出,这是被称为2-5-1网络结构的双输入单输出、5个隐含层的BP网络

1.2 BP神经网络训练接口参数解读http://www.Sina.com/http://www.Sina.com /在BP神经网络训练中,均方误差(MSE )连续6次下降上升

mustandsformomentumconstantormomentumparameterwhisincludedinweightupdateexpressiontoavoidtheproblemoflocalminimum.sometimetim inimumandconvergencedoesnotoccur.rangeofmuisbetween0and 1。

2 .读取实现BP网络的步骤数据,设置训练数据和预测数据,将训练样本数据归一化后进行BP神经网络的参数配置(训练次数、学习速度、 训练目标最小误差.等) BP神经网络训练测试样本归一化BP神经网络预测预测结果逆归一化和误差计算验证集真值与预测值误差比较3. matlab代码编写%%基于此程序matlab编程clear allclc%%第一步读取数据input=dldgb((16520 ) %加载输入数据output=input (1, ) input ) 2, ); 加载输出数据。 %%步骤2设置培训数据和预测数据。 input _ train=input (:13360190 ); output _ train=output (1:190, ); input _ test=input (:191:200; output _ test=output (191:200, ); %节点数inputnum=2; 隐藏编号=5; %抑制层节点数经验公式p=sqrt(mn ) a,因此分别取2(13进行试验) outputnum=1; 第%%3个训练样本数据规范化[inputn,inputPS]=mapminmax(input_train ); %在[-1,1 ]之间规范化,inputps用于以下相同的规范化: [outputn,output PS ]=map minmax (output _ train ); 步骤4BP建立神经网络net=newff(inputn,outputn,hiddennum,{'tansig ',' purelin'},' trainlm ' ); 建立%模型,传递函数使用purelin,梯度下降法w1=net.iw { 1,1 }; %从输入层到中间层的权重B1=net.b{1}; %中间各层的神经元阈值w2=net.lw { 2,1 }; %从中间层到输出层的权重B2=net. b{2}; %输出层每个神经元阈值%%步骤5网络参数配置(训练次数、学习速度、训练目标最小误差等) net.trainParam.epochs=1000; %训练次数,这里为1000次net.trainParam.lr=0.01; %学习率,这里设定为0.01 net.train param.goal=0.00001; 将%训练目标的最小误差设置为,这里是0.00001%%步长6BP神经网络训练net=train (网络,输入,输出)。 %开始训练。 其中,inputn、outputn分别为输入输出样本%%步骤7测试样本的归一化inputn_test=mapminmax('apply '、input_test、inputps ); 规范化%%步骤8BP神经网络预测an=sim(net,inputn_test ); 在%训练的模型中模拟%%步骤9的预测结果的逆归一化和误差计算test_simu=mapminmax('reverse ',an,outputps ); %将模拟获得的数据转换为原始订单error=test_simu-output_test; %预测值与真值的误差%%步骤10真值与预测值的误差比较figure(1) plot ) output_test,' bo-' ) holdonplot ) test_simu,' r*-' ) holdonplot Mae1=sum (ABS (错误) )/l; MSE1=error*error'/l; RMse1=MSE1^(1/2; DISP ((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )0 num2str(Mae1) ) ) DISP ),均方误差

4.2 BP网络训练的性能分析图像预测值和真值、误差的分析图像

训练集、验证集、测试集和整体均方误差随训练次数的变化图像

注:小圆圈的位置表示结束的训练次数,即代数(中的均方误差

BP神经网络各阶段训练图像

单个样本集与总体相关性分析图像

训练集、验证集和测试集的误差分布直方图图像

5 .结语经过一周的努力编写,终于清晰表达了BP网络的构建思路和完整代码,供大家学习。 合作伙伴只需代入自己的数据就能得到相应的结果。 如果有问题,欢迎留言交流。 如果有不恰当的地方,请指出来。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。