首页 > 分享 > BP神经网络实用性操作(四步模板)和主要网络参数介绍

BP神经网络实用性操作(四步模板)和主要网络参数介绍

一.推荐

本文不再介绍神经网络的基本概念和推到过程,博主还是会给出推荐:
1.MATLAB方面 ——(1)BP神经网络计算原理: 推荐CSDN的博主:奔跑的Yancy,网址如下:https://blog.csdn.net/lyxleft/article/details/82840787
备注: 这篇博客中的BP推到过程中输入的正向传递,反向误差传递写的都挺好)
(2)BP公式推导方面:博主:zhiyong_will,网址:https://blog.csdn.net/google19890102/article/details/32723459
2.C语言方面——推荐博客:博主:一朝英雄拔剑起,网址:https://blog.csdn.net/qq_39545674/article/details/82495569
3.Python方面——推荐博主:liu_coding,网址:https://blog.csdn.net/net_wolf_007/article/details/52055718
备注: 当然,也可以完全忽略以上推荐的内容,以上是博主为自己记下的几个还可以的BP方面的相关博客,方便更加全面了解)

二.正文

因为,BP神经网络方面不管还是原理还是推到过程亦或是MATLAB、C语言或是Python都已经被大量介绍过了,但是几乎很少有快速上手的指导内容,本文 (1)基于MATLAB工具箱,给出 (2)具体四步骤实现使用操作,并主要介绍 (3)设置参数的具体意义

1.加载数据

%% 1.加载训练数据 data=xlsread('。。。。.xlsx'); exercise=[]' tagret=data()'; 1234

2.建立BP神经网络,MATLAB中神经网络使用newff函数

%2.net = newff(minmax(p),[隐含层的神经元个数,输出层的神经元个数],{隐层神经元的传输函数TF1,输出层的传输函数TF2},'反向传播的训练函数') %一般在这里还有其他的传输的函数一般的如下,如果预测出来的效果不是很好,可以调节 %TF1 = 'tansig';TF2 = 'logsig'; %TF1 = 'logsig';TF2 = 'purelin'; %TF1 = 'logsig';TF2 = 'logsig'; %TF1 = 'purelin';TF2 = 'purelin'; % 指定训练参数 % net.trainFcn = 'traingd'; % 梯度下降算法 % net.trainFcn = 'traingdm'; % 动量梯度下降算法 % net.trainFcn = 'traingda'; % 变学习率梯度下降算法 % net.trainFcn = 'traingdx'; % 变学习率动量梯度下降算法 % (大型网络的首选算法) % net.trainFcn = 'trainrp'; % RPROP(弹性BP)算法,内存需求最小 % 共轭梯度算法 % net.trainFcn = 'traincgf'; %Fletcher-Reeves修正算法 % net.trainFcn = 'traincgp'; %Polak-Ribiere修正算法,内存需求比Fletcher-Reeves修正算法略大 % net.trainFcn = 'traincgb'; % Powell-Beal复位算法,内存需求比Polak-Ribiere修正算法略大 % (大型网络的首选算法) %net.trainFcn = 'trainscg'; % ScaledConjugate Gradient算法,内存需求与Fletcher-Reeves修正算法相同,计算量比上面三种算法都小很多 % net.trainFcn = 'trainbfg'; %Quasi-Newton Algorithms - BFGS Algorithm,计算量和内存需求均比共轭梯度算法大,但收敛比较快 % net.trainFcn = 'trainoss'; % OneStep Secant Algorithm,计算量和内存需求均比BFGS算法小,比共轭梯度算法略大 % (中型网络的首选算法) %net.trainFcn = 'trainlm'; %Levenberg-Marquardt算法,内存需求最大,收敛速度最快 % net.trainFcn = 'trainbr'; % 贝叶斯正则化算法 % 有代表性的五种算法为:'traingdx','trainrp','trainscg','trainoss', 'trainlm' %在这里一般是选取'trainlm'函数来训练,其算对对应的是Levenberg-Marquardt算法 1234567891011121314151617181920212223242526

3.网络参数的设置

这里的参数主要为以下内容:
(1)隐含层层数:一般为一层,最基础实用简单计算量少;
(2)各层神经元个数:输入层和输出层有时随着系统的确定神经元个数差不多就已确定,例如电池BMS系统,如果使用BP那么输入信号一般两个(电流和电压)或者三个(电流电压温度),输出信号一般一个(SOC数值);另外隐含层神经元个数我推荐不要少于5个;
(3)设置训练目标误差:根据系统设置,比如输出值为0-1之间的数,精度要求预测值和实际值误差在0.01以内,那目标误差理论上只要你设置小于这个误差一个数量级以下,为了尽量改善收敛效果,加大收敛力度还是目标误差设置较小一点比较恰当,不然容易提前中断训练。
(4)显示训练结果的时间间隔步数:这个跟你输入数据的时间间隔有关,训练时间间隔是输入采样时间的整数倍即可,我推荐就等于输入数据的采样时间;
(5)训练次数设置:离线情况下,训练次数要小于输入总的采样次数(总的采样次数=总的采样时间/采样时间),但训练次数又不能太小,否者造成训练不充分,训练结果没有收敛,应该是总的采样次数的后20%区间。
(6)训练允许时间,默认值INF:这个采取默认值即可;
(7)学习率,默认值为0.01:学习率和误差反向传播修正权值的步长关系很大;
(8)动力因子,缺省为0.9:下面详细介绍;
(9)最小性能梯度:下面详细介绍。

%3网络参数的设置 net.trainparam.goal=; %设置训练目标误差 net.trainparam.show=; %显示训练结果的时间间隔步数 net.trainparam.epochs=; %训练次数设置 % net.trainParam.time=; %训练允许时间,默认值INF % net.trainParam.Lr=; %学习率,默认值0.01 % net.trainParam.mc=; %动量因子,缺省为0.9 trainParam.min_grad=; %最小性能梯度 [net,tr]=train(net,exercise,tagret); 12345678910

4.计算仿真,一般采用sim函数

Y=sim(net,exercise); 1

5.进入MATLAB的工具箱界面

第一部分,即Neural Network,图形显示的是神经网络的结构图,可知有一个隐层一个输出层;

第二部分,即Algorithms,显示的是训练算法,这里为学习率自适应的梯度下降BP算法;误差指标为MSE;

第三部分,即Progress,显示训练进度:

Epoch:训练次数;在其右边显示的是最大的训练次数,可以设定,上面例子中设为300;而进度条中显示的是实际训练的次数,上面例子中实际训练次数为146次。

Time:训练时间,也就是本次训练中,使用的时间

Performance:性能指;本例子中为均方误差(mse)的最大值。精度条中显示的是当前的均方误差;进度条右边显示的是设定的均方误差(如果当前的均方误差小于设定值,则停止训练),这个指标可以用用.trainParam.goal参数设定。

Gradiengt:梯度;进度条中显示的当前的梯度值,其右边显示的是设定的梯度值。如果当前的梯度值达到了设定值,则停止训练。

validation check为泛化能力检查(若连续6次训练误差不降反升,则强行结束训练)

第四部分,即Plots,为作图。分别点击三个按钮能看到误差变化曲线,分别用于绘制当前神经网络的性能图,训练状态和回归分析。

6.几个参数介绍

(1)动力因子: 这个参数常常没有被很好的重视,其是BP批处理训练时会陷入局部最小,也就是误差本身基本上已不变化,其返回的信号对权值调整很小,但总误差大于训练设定条件。动力因子有助于其反馈的误差信号使神经元权值重新振荡起来,一定程度上避免算法局部收敛,整体仍然发散,就结束训练结束学习过程。

参考文档

相关知识

多样性正则的神经网络训练方法探索.pdf资源
基于卷积神经网络的宠物识别
SVM BP算法的鸟叫声识别
基于卷积神经网络的宠物识别 Pet Recognition Based on Convolutional Neural Network
100基于卷积神经网络之鸟鸣识别鸟的种类
一种基于深度卷积神经网络的禽类动物行为识别方法与流程
多样性正则的神经网络训练方法探索
神经网络学习记录(一):前向传播过程与损失计算
【论文笔记】Progressive Neural Networks 渐进式神经网络
【深度学习实验】前馈神经网络(九):整合训练、评估、预测过程(Runner)

网址: BP神经网络实用性操作(四步模板)和主要网络参数介绍 https://m.mcbbbk.com/newsview539176.html

所属分类:萌宠日常
上一篇: 重庆训犬基地 重庆宠物训练寄养
下一篇: 《明日之后》游戏中训练宠物狗狗的