数据预测基于matlab粒子群算法优化RBF神经网络数据预测含Matlab源码 476期
Posted 紫极神光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据预测基于matlab粒子群算法优化RBF神经网络数据预测含Matlab源码 476期相关的知识,希望对你有一定的参考价值。
一、粒子群算法优化RBF神经网络简介
1 引言
20世纪80年代中期以来, 神经网络的应用取得了很大的成绩, 已经运用于众多的领域中, 如电气信息, 优化组合, 雷达信号处理与识别等。在众多的神经网络模型中, 应用最多的是BP网络。然而BP网络用于函数逼近时, 权值的调节采用的是负梯度下降法, 这种调节权值的方法存在一定的局限性, 即存在着收敛速度慢和局部极小点等缺点。径向基函数网络在逼近能力, 分类能力和学习速度方面均优于BP网络, 并且径向基函数神经网络的结构简单, 具有学习方法速度快和较好的推广能力, 使它很快地广泛应用于许多领域, 特别是模式识别和函数逼近等领域。然而, 如何有效地确定RBF神经网络的网络结构和参数, 至今没有系统的规律可循。在RBF神经网络中需要确定的参数有隐层节点数、隐层中心值和隐层到输出层的连接权值。目前, 隐含层节点数主要依靠经验来选取。而根据moody准则, 神经网络的设计应该在满足精度要求的情况下有最小的结构, 以保证网络的泛化能力。而隐层中心值的确定对RBF神经网络的函数逼近能力具有很大的影响, 不恰当地选取会使网络收敛慢, 甚至会造成网络发散。目前最常用的确定隐含层中心值的方法是K-均值聚类法, 中心值的确定是从输入样本中选取。往往由于样本数量少或其值不能较好地反映系统输入输出关系等因素, 而降低网络的最佳逼近性能。本文所采用的方法是利用粒子群算法优化选取隐含层节点的中心值和隐层到输出层的连接权值。
1 粒子群优化算法
粒子群优化算法是由Eberhart博士和Kennedy博士于1995年提出的一种新的基于群体智能的全局优化算法, 它源于对鸟类捕食行为的模拟, 在基本PSO中, 每个优化问题的解都是搜索空间中的一只鸟, 称之为“粒子”。先在可行解空间中随机初始化n个粒子构成初始种群, 并为每个粒子随机初始化一个速度。每个粒子都对应优化问题的一个解, 并由目标函数为之确定一个适应值, 速度用来决定粒子在解空间中运动。在算法的每次迭代中, 粒子将跟踪自身当前找到的最优解和种群当前找到的最优解, 逐代搜索, 直到最后得到最优解。
设Xi= (Xi1, Xi2, ……, Xin) 为粒子i的当前位置;Vi= (Vi1, Vi2, ……, Vin) 为粒子i的当前速度;Pi= (Pi1Pi2, ……, Pin) 为粒子i所经历的最好位置, 也就是微粒i所经历过的具有最好适应值的位置, 称为个体最好位置。设群体中的微粒数为s, 群体中所有微粒所经历过的最好位置为, 称为全局最好位置。那么下一代粒子的位置和速度为:
式中:C1和C2为加速度因子, 通常取为2, R1j和R2j为两个均匀分布于[0, 1]之间的随机数, 且相互独立。w是非负常数, 称为惯性因子, w也可以随着迭代线性地减小[3]。
2 粒子群算法优化RBF神经网络
2.1 问题的描述
首先将RBF神经网络中所有神经元间的连接权值和中心值编码成实数码串表示的个体。假设网络中包含M个优化权值和中心值, 则每个个体为由M个权值和中心值参数组成的一个M维向量来表示。
2.2 初始化微粒群
根据微粒群规模, 按照上述个体结构随机产生一定数目的个体 (微粒) 组成种群, 其中不同的个体代表神经网络的一组不同权值和中心值。同时初始化Gbest, Lbest。
2.3 RBF神经网络的训练
将微粒群中每一个体的分量映射为网络中的权值和中心值, 从而构成一个神经网络。对每一个体对应的神经网络, 输入训练样本进行训练。网络权值的优化过程是一个反复叠代的过程。通常为了保证所训练的神经网络具有较强的泛化能力, 在网络的训练过程中, 往往将给定的样本空间分为两部分, 一部分用作训练样本, 称为训练集, 一部分作为测试样本, 称为测试集。
2.4 粒子群优化模型计算
评价微粒群中的所有个体 (每一个体视为可飞行的微粒) , 从中找到最佳个体用来判断是否需要更新微粒的Gbest与Lbest。之后, 按照粒子群模型更新每一个体不同分量上的飞行速度, 并以此产生新的个体微粒。
2.5 算法的终止
当目标函数值 (即均方误差) 小于给定的ε时, 算法终止。
2.6 用粒子群训练RBF神经网络算法
用粒子群训练RBF神经网络算法的具体流程如下图1所示:
图1 粒子群训练RBF神经网络算法的流程图
二、部分源代码
clear all
clc
close all
num=1;
% [y_train_predict,train_error,y_train]=funrbf(num);
data=xlsread('data.xlsx','Sheet1');
num=num;%对应三个特征
%归一化
data1=data';
data=mapminmax(data1,0,1);
data=data';
%建立训练集测试集
x_train=data(:,1:4).';
y_train=data(:,4+num).';
%创建、训练网络
net=newrb(x_train,y_train,0.001,1,25,5);
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]方清城.MATLAB R2016a神经网络设计与应用28个案例分析[M].清华大学出版社,2018.
[6]李林,李建兵,牛鹏超.基于粒子群算法的RBF神经网络的优化方法[J].山东电力高等专科学校学报. 2010,13(01)
以上是关于数据预测基于matlab粒子群算法优化RBF神经网络数据预测含Matlab源码 476期的主要内容,如果未能解决你的问题,请参考以下文章
基于PSO粒子群算法优化RBF网络的数据预测matlab仿真
优化预测基于matlab粒子群算法优化BP神经网络预测温度含Matlab源码 1302期
风电功率预测基于matlab粒子群算法优化BP神经网络风电功率预测含Matlab源码 347期
BP预测基于粒子群算法优化BP神经网络实现数据预测matlab源码