当前位置:   article > 正文

预测算法系列 | BP神经网络及其优化(Matlab)_bp神经网络优化

bp神经网络优化

回归拟合问题:
在这里插入图片描述

分类问题:
在这里插入图片描述

本文是作者的预测算法系列的开篇1,后续将陆续介绍RBF、GRNN、ELM、WNN、随机森林、投影行踪、GRU、LSTM等的算法原理及其实现和优化,欢迎关注不迷路。

00目录

1 BP神经网络
2 代码目录
3 BP及其优化的预测结果对比
4 源码获取

01 BP神经网络

1.1 BP原理

BP(Back Propagation)网络是1986 年由 Rumelhart 和 McCelland 为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP 网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP 神经网络模型拓扑结构包括输入层(input)、隐含层(hidelayer)和输出层(output layer)(如图所示)。
在这里插入图片描述

其算法流程如下:
在这里插入图片描述

如果MSE没有达到预定要求e,则进入反向传播过程,把输出误差信号MSE以梯度形式,按原来正向 传播的通路逐层反向传回,并将误差信号MSE分摊给各层的所有神经元,从而获得各层神经元的误差信号 MSEj(j=1,2,3),将此误差信号MSEj作为修正各连接权值和阈值的依据,并对其修改,并反复运行信息的正向传播和误差逆向传播两过程,直至误差信号MSE收敛于e

1.2 BP优化

BP神经网络虽然是人工神经网络中应用最广泛的算法,但是也存在着一些缺陷,例如学习收敛速度太慢、不能保证收敛到全局最小点、网络结构不易确定。另外,网络结构,初始连接权值和阈值的选择对网络训练的影响很大,但是又无法准确获得。

智能优化算法能帮助其在搜索过程中不易陷入局部最优,以极大的概率找到全局最优解,所以利用智能优化算法对神经网络进行优化成为可能。

常见的如遗传算法,遗传算法对参数的编码从多点进行操作,可以有效防止搜索过程陷于局部最优解。BP 网络沿着误差减小的最大梯度方向调整网络权值,容易陷入局部最小值。采用遗传算法优化BP 网络的初始权值,可以有效改善此问题。但同样,标准的遗传算法在使用过程中仍存在局限性,虽然其是具有较强鲁棒性的全局最优搜索方法,但仍有收敛慢、易早熟等问题,因此针对这些问题,许多改进的遗传算法出现,如自适应遗传算法、混合遗传算法等。

1.3 BP在MATLAB中的参数讲解

1.3.1 建立网络

应用MATLAB的工具箱构建BP神经网络,主要通过以下语句。

回归拟合:
在这里插入图片描述

其中

1. newff(P,T,S,TF,BTF,…)

P:输入数据矩阵,对应代码中inputn。对于BP神经网络来说,数据越多,其预测精度越高,如果数据量少,可能会使得其预测值存在较大误差(少:几十组数据)。

T:输出数据矩阵,对应代码中outputn

S:隐含层节点数,对应代码中hiddennum。隐含层可自己调整,一般隐含层数是输入变量个数*2+1;同时也可以采用多隐含层的结构,比如[5 5],即双隐含层BP神经网络,每个隐含层节点数都是5,多隐含层可以帮助在复杂映射关系下提高网络预测精度,但相应的也会增加训练时间。

TF:节点传输函数,对应代码中{‘tansig’,‘purelin’},'tansig’是隐含层函数,'purelin’是输出层函数。节点传输函数主要有三种,logsig、tansig、purelin。不同的函数选择会对预测精度有影响。一般隐含层节点传输函数选用logsig 函数或tansig函数,输出层节点传输函数选用tansig 或purelin函数。

BTF:训练函数,‘trainlm’,Levenberg_Marquardt的BP算法训练函数。其它的方法还有梯度下降BP算法训练函数 traingd,动量反传的梯度下降BP算法训练函数traingdm,动态自适应学习率的梯度下降BP算法训练函数traingda,动量反传和动态自适应学习率的梯度下降BP算法训练函数 traingdx。

当然后面还有网络学习函数、性能分析函数的参数,这些一般选用默认设置即可。

2. 学习速率

在网络配置中,学习速率对于预测效果的精度也是有较大影响的,如果学习速率太小,则会使收敛过慢。如果学习速率太大,则会导致震荡和发散。

分类:
在这里插入图片描述

分类问题与回归拟合的程序对比,唯一的区别就在于在newff(),第一个参数是minmax(inputn),其后是[hiddennum 1],代表隐含层神经元个数和输出个数。除此之外其余的设置和回归拟合相同。

1.3.2 优化BP

优化算法优化参数是BP神经网络的初始权值和阈值,因此只要网络结构已知,权值和阈值个数就已知了。神经网络的权值和阈值一般是通过随机初始化,这个初始化参数对网络训练影响很大,但又无法准确获得,因此引入优化算法就是为了优化出最佳的初始权值和阈值,然后经过BP算法的训练得到模型预测输出值。
在这里插入图片描述

以遗传算法优化BP神经网络为例,其流程为:

在这里插入图片描述

02 代码目录

代码运行无障碍,仅需按照作者数据集中的格式替换数据即可,可根据实际问题调整隐含层神经元个数和学习率,种群个数和迭代次数等。

在这里插入图片描述

在这里插入图片描述

03 BP及其优化的预测结果对比

本文将单隐含层BP神经网络、多隐含层IBP神经网络、GA-IBP神经网络、遗传-粒子群自适应IBP神经网络应用于拟合和分类问题中并进行结果对比。

3.1 回归拟合

应用问题为多输入单输出问题。

3.1.1 评价指标

为了验证所建模型的准确性和精度,分别采用均方根差(Root Mean Square Error,RMSE) 、平均绝对百分误差( Mean Absolute Percentage Error,MAPE) 和平均绝对值误差 ( Mean Absolute Error,MAE) 作为评价标准。

在这里插入图片描述

式中 Yi 和Y ^ i分别为真实值和预测值; n 为样本数。

3.1.2 仿真结果

由于遗传算法迭代时间长,作者这里仅迭代30代,可以看出是还存在进一步优化的空间的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

由图可以看出多隐含层的BP神经网络在该问题上优于单隐含层,而经优化算法优化后能进一步提高其预测精度。

3.2 分类

3.2.1 评价指标

为验证模型准确率,采用准确率和精确度作为评价标准。

准确率r 公式如下:
在这里插入图片描述

其中 ncorrect代表正确分类的样本个数, N代表测试集中的样本总数。

精度计算的是正类预测正确的样本数,占预测是正类的样本数的比例,公式如下
在这里插入图片描述

其中,TP表示的是正样本被预测为正样本的个数,FP表示的是负样本被预测为 正样本的个数。

3.2.2 仿真结果
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

从结果仍然可以看到多层的BP神经网络性能在该问题上性能更佳,而经过优化后的BP神经网络能够进一步提升其性能。

04 源码获取

BP神经网络:在作者微信公众号( KAU的云实验台 )回复:BP

BP神经网络及其优化(BP,多隐含层IBP,GA-IBP,GA-APSO-IBP):

回归拟合:https://mbd.pub/o/bread/ZJuXlZZs

分类:https://mbd.pub/o/bread/ZJuXlZZu

如果这篇文章对你有帮助或启发,可以点击右下角的 (ง •̀_•́)ง(不点也行),若有定制需求,可私信作者。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/739003
推荐阅读
相关标签
  

闽ICP备14008679号