法律状态公告日
法律状态信息
法律状态
2018-02-27
授权
授权
2015-03-25
实质审查的生效 IPC(主分类):G06N3/02 申请日:20140906
实质审查的生效
2015-02-18
公开
公开
技术领域
本发明涉及计算机应用工程技术领域,是一种基于粒子群优化算法改进的神经网络模型用于数据预测方法。
背景技术
RBF(radial basis function)神经网络模型是一种自组织自学习的结构化的预测方法,它可以根据一段时期内的历史检测数据,通过自组织自学习的方法建立一种结构化的预测模型,该模型能够最大程度上描述并追踪数据的变化规律,并对未知的数据作出最大概率的预测。该模型由于结构简单、参数较小、性能较优等特点被广泛采用。
但是,在工程应用中,RBF神经网络模型隐含层神经元的数目对网络的性能有较大的影响,如果隐含层神经元数目过少,则网络无法学习到样本的内在规律,对数据的学习能力降低,如果隐含层神经元的数目过多则容易导致“过拟合”问题,即模型对数据的学习过于充分,以至于对噪声数据都进行了充分的学习,在实际预测时预测性能不是很好,因此根据样本的规模和维数确定最佳隐含层神经元的数目对提高网络性能至关重要。
粒子群优化算法是一种群体智能算法,它通过众多粒子之间的信息共享机制在空间中循环迭代向全局最优解无限逼近,粒子群优化算法由于模型简单、参数少被广泛的应用于非线性、不可微和多峰值的复杂问题的求解。
发明内容
本发明提供了一种基于粒子群优化算法改进的神经网络模型用于数据预测方法,克服了上述现有技术之不足,其能有效解决RBF神经网络模型隐含层神经元的数目不易确定对RBF神经网络性能有较大影响的问题。
本发明的技术方案是通过以下措施来实现的:一种基于粒子群优化算法改进的神经网络模型用于数据预测方法,按照下述步骤进行:
步骤1:数据样本的表示,使用变量表示第i个样本,使用 表示第i个样本的第t个分量;
步骤2:数据的预处理,根据数据样本构建训练样本集Xtrain={x1,x2,…,xN}和测试样本集Xtest={x1,x2,…,xK};
步骤3:RBF神经网络参数初始化,根据训练样本集的维数M确定输入层神经元的数目Ninput=M,根据要预测的数据的维数确定输出层神经元的数目Noutput=P;
步骤4:利用二元粒子群优化算法确定隐含层神经元的数目和隐含层径向基核函数的中心,其中:隐含层神经元的数目用H表示,隐含层径向基核函数的表达式为 i=1,2,…,H,隐含层径向基核函数的中心用ci表示;
步骤5:初始化局部粒子群优化算法的各个参数,包括粒子群数目,粒子群数目用Nl-swarm表示;粒子群的位置用表示,粒子的位置表示RBF神经网络隐含层到输出层的权值矩阵w;粒子群的速度用表示;最大迭代次数用tl-max表示;适应度函数精度用ρlpso表示;k近邻算法中k的初始值k=1;
步骤6:根据适应度函数计算各粒子的适应度值,其中:N表示训练样本集中样本的数目;β是控制系数,从[0,1]之间取随机数;wj表示隐含层和输出层的权值;yi表示第i个样本对应的期望输出值;
f(xi)表示第i个样本对应的模型实际实际输出值,其函数公式为Gi(xi,ci)为隐含层第i神经元的输出,其函数公式为其中xi为第i个输入样本向量,ci为隐含层第i个神经元径向基核函数的中心向量,||·||2表示向量的欧几里得距离;
步骤7:更新全局最优粒子的位置和个体的历史最优位置,从粒子群中选择具有最小适应度函数值的粒子为全局最优粒子pgbest,个体最优粒子pbest与初始化时粒子的位置相同;
步骤8:通过k近邻算法计算局部粒子群优化算法中各粒子的邻域最优粒子plbest;
步骤9:根据公式
步骤10:根据公式更新粒子的位置;η是调节系数,从[0,1]之间取随机数;
步骤11:判断局部粒子群优化算法是否达到最大迭代次数tl-max或预先设定的精度ρlpso;即t>tl-max或p<plpso两者是否有一个成立,如果两者有一个成立则转到步骤12,否则返回步骤6;
步骤12:从粒子群中选择适应度函数值最小的粒子;该粒子的位置参数即作为神经网络隐含层到输出层的权值矩阵W;
步骤13:RBF神经网络模型的建立,根据得到的模型参数建立RBF神经网络模型,模 型参数包括通过二元粒子群优化算法得到的隐含层神经元的数目H、隐含层径向基核函数的中心和通过局部粒子群优化算法得到的隐含层到输出层的权值矩阵W;
步骤14:利用RBF神经网络模型进行数据预测,用测试样本集作为RBF神经网络模型的输入样本,利用建立好的RBF神经网络模型,用于对未知的数据进行预测,RBF网络模型隐含层采用径向基核函数,径向基核函数公式为xi表示输入样本,ci表示隐含层第i个神经元核函数的中心,σ表示核函数的宽度,利用公式 计算RBF神经网络模型的预测输出值,即对未知数据的预测值。
下面是对上述发明技术方案的进一步优化或/和改进:
上述步骤4可包括以下子步骤:
子步骤401:二元粒子群优化算法参数初始化,初始化粒子群的数目用Nswarm表示;随机初始化粒子群的位置用表示,其中t=(1,2,…,tmax},中0表示该位置没有神经元节点,1表示该位置有神经元节点,t表示当前的迭代次数,tmax表示最大迭代次数;随机初始化粒子群各粒子的速度,用表示,其中二元粒子群算法收敛的精度值,用ξ表示;
子步骤402:选取二元粒子群中的最优粒子,根据最优粒子表示的神经元数目用K-Means算法进行聚类,二元粒子群算法第一次迭代时,随机选取一个粒子作为最优粒子,从二元粒子群算法第二次开始迭代时,根据各粒子适应度函数的值选取全局最优粒子;
所述K-Means算法包括:
子步骤40201:根据二元粒子表示的神经元节点的数目k,初始化聚类中心,用 表示第j个聚类中心;
子步骤40202:根据公式计算每个数据样本到聚类中心的距离,选取距离数据样本最近的聚类中心,并把该数据样本点归为该类,其中ci表示第xi样本所属的类,μj表示第j个聚类中心;
子步骤40203:根据公式计算新的聚类中心;
子步骤40204:返回子步骤40201,循环迭代,直到收敛,即聚类中心不再变化,返回误差平方和函数的值及聚类得到的k个聚类中心,误差平方和函数用SEE表示, 误差平方和函数是度量聚类效果的指标;
子步骤403:根据公式fitness=γ(m/mmax)+μ·SSE计算二元粒子群各粒子适应度函数的值,其中:γ,μ∈[0,1],m表示当前神经元的数目,mmax表示隐含层神经元的最大数目;
子步骤404:根据各个粒子的适应度函数的值,选择适应度函数值最小的粒子作为全局最优粒子pgbest,并更新各粒子的历史最优值plbest;
子步骤405:根据公式计算下一次迭代时粒子的速度,其中:ω表示惯性系数,c1和c2表示认知系数,c1和c2取值为2,r1,r2表示随机系数, 表示粒子的历史最优位置值,表示当前最优位置,表示的是粒子位置前后变化的汉明距离,表示粒子的全局最优位置,表示当前位置,表示全局最优粒子的位置和当前位置的汉明距离;
子步骤406:计算下一次迭代时粒子的位置,计算的值,并判断条件 是否成立,当条件成立时,则当条件不成立时,则其中:r是[0,1]之间的随机数;
子步骤407:判断二元粒子群优化算法是否达到了最大迭代次数或达到设定的收敛精度值ξ,即t>tmax是否成立或fitness<ξ是否成立,如果条件之一成立则执行步骤5,否则返回步骤402,通过二元粒子群优化算法和K-Means算法得到了RBF隐含层神经元的最佳数目K以及对应的聚类中心μj。
上述步骤8可包括以下子步骤:
子步骤801:根据k近邻算法和粒子群中粒子各维的值构建kd树;
子步骤802:根据kd树搜索原理,找到每个粒子的k个最近邻粒子即top(k)个粒子;
子步骤803:根据搜索得到的k个最近邻粒子的适应度函数值,确定每个粒子的邻域最优粒子plbest;
子步骤804:k=k+1,即下一次迭代时各粒子的邻域扩大一个粒子的范围,直到最后k的值等于粒子群的规模,k=Nl-swarm。
本发明所述的基于粒子群优化算法改进的神经网络模型用于数据预测方法能够易于确定RBF神经网络模型隐含层神经元的数目,从而改善了RBF神经网络性能,提高了数据预测的精确度,同时,本发明中的基于粒子群优化算法改进的神经网络模型具有模型复杂度低,鲁棒性强,可扩展性好的特点。
附图说明
附图1为本发明的流程示意图。
附图2为基于传统RBF神经网络模型的PM2.5浓度值的预测结果与实施例4的PM2.5浓度值的预测结果的对比图。
附图3为基于传统RBF神经网络模型的PM2.5浓度值的预测偏差与实施例4的PM2.5浓度值的预测结果的对比图。
附图4为24小时网络时延数据序列图。
附图5为基于传统RBF神经网络模型的时延预测结果与实施例5的时延预测结果的对比图。
附图6为基于传统RBF神经网络模型的时延预测偏差与实施例5的时延预测偏差的对 比图。
具体实施方式
本发明不受下述实施例的限制,可根据本发明的技术方案与实际情况来确定具体的实施方式。
下面结合实施例及附图对本发明作进一步描述:
实施例1:如附图1所示,该基于粒子群优化算法改进的神经网络模型用于数据预测方法,按照下述步骤进行:
步骤1:数据样本的表示,使用变量表示第i个样本,使用 表示第i个样本的第t个分量;
步骤2:数据的预处理,根据数据样本构建训练样本集Xtrain={x1,x2,…,xN}和测试样本集Xtest={x1,x2,…,xK};
步骤3:RBF神经网络参数初始化,根据训练样本集的维数M确定输入层神经元的数目Ninput=M,根据要预测的数据的维数确定输出层神经元的数目Noutput=P;
步骤4:利用二元粒子群优化算法确定隐含层神经元的数目和隐含层径向基核函数的中心,其中:隐含层神经元的数目用H表示,隐含层径向基核函数的表达式为 i=1,2,…,H,隐含层径向基核函数的中心用ci表示;
步骤5:初始化局部粒子群优化算法的各个参数,包括粒子群数目,粒子群数目用Nl-swarm表示;粒子群的位置用表示,粒子的位置表示RBF神经网络隐含层到输出层的权值矩阵w;粒子群的速度用表示;最大迭代次数用tl-max表示;适应度函数精度用ρlpso表示;k近邻算法中k的初始值k=1;
步骤6:根据适应度函数计算各粒子的适应度值,其中:N表示训练样本集中样本的数目;β是控制系数,从[0,1]之间取随机数;wj表示隐含层和输出层的权值;yi表示第i个样本对应的期望输出值;f(xi)表示第i个样本对应的模型实际实际输出值,其函数公式为Gi(xi,ci)为隐含层第i神经元的输出,其函数公式为其中xi为第i个输入样本向量,ci为隐含层第i个神经元径向基核函数的中心向量,||·||2表示向量的欧几里得距离;
步骤7:更新全局最优粒子的位置和个体的历史最优位置,从粒子群中选择具有最小适应度函数值的粒子为全局最优粒子pgbest,个体最优粒子pbest与初始化时粒子的位置相同;
步骤8:通过k近邻算法计算局部粒子群优化算法中各粒子的邻域最优粒子plbest;
步骤9:根据公式
步骤10:根据公式更新粒子的位置;η是调节系数,从[0,1]之间取随机数;
步骤11:判断局部粒子群优化算法是否达到最大迭代次数tl-max或预先设定的精度ρlpso;即t>tl-max或p<plpso两者是否有一个成立,如果两者有一个成立则转到步骤12,否则返回步骤6;
步骤12:从粒子群中选择适应度函数值最小的粒子;该粒子的位置参数即作为神经网络隐含层到输出层的权值矩阵W;
步骤13:RBF神经网络模型的建立,根据得到的模型参数建立RBF神经网络模型,模型参数包括通过二元粒子群优化算法得到的隐含层神经元的数目H、隐含层径向基核函数的中心和通过局部粒子群优化算法得到的隐含层到输出层的权值矩阵W;
步骤14:利用RBF神经网络模型进行数据预测,用测试样本集作为RBF神经网络模型的输入样本,利用建立好的RBF神经网络模型,用于对未知的数据进行预测,RBF网络模型隐含层采用径向基核函数,径向基核函数公式为xi表示输入样本,ci表示隐含层第i个神经元核函数的中心,σ表示核函数的宽度,利用公式计算RBF神经网络模型的预测输出值,即对未知数据的预测值。实施例2:与上述实施例的不同之处在于,步骤4包括以下子步骤:
子步骤401:二元粒子群优化算法参数初始化,初始化粒子群的数目用Nswarm表示;随机初始化粒子群的位置用表示,其中t={1,2,…,tmax},0表示该位置没有神经元节点,1表示该位置有神经元节点,t表示当前的迭代次数,tmax表示最大迭代次数;随机初始化粒子群各粒子的速度,用表示,其中 二元粒子群算法收敛的精度值,用ξ表示;
子步骤402:选取二元粒子群中的最优粒子,根据最优粒子表示的神经元数目用K-Means算法进行聚类,二元粒子群算法第一次迭代时,随机选取一个粒子作为最优粒子,从二元粒子群算法第二次开始迭代时,根据各粒子适应度函数的值选取全局最优粒子;
所述K-Means算法包括:
子步骤40201:根据二元粒子表示的神经元节点的数目k,初始化聚类中心,用 表示第j个聚类中心;
子步骤40202:根据公式计算每个数据样本到聚类中心的距离,选取距离数据样本最近的聚类中心,并把该数据样本点归为该类,其中ci表示第xi样本所属的类,μj表示第j个聚类中心;
子步骤40203:根据公式计算新的聚类中心;
子步骤40204:返回子步骤40201,循环迭代,直到收敛,即聚类中心不再变化,返回误差平方和函数的值及聚类得到的k个聚类中心,误差平方和函数用SEE表示, 误差平方和函数是度量聚类效果的指标;
子步骤403:根据公式fitness=γ(m/mmax)+μ·SSE计算二元粒子群各粒子适应度函数的值,其中:γ,μ∈[0,1],m表示当前神经元的数目,mmax表示隐含层神经元的最大数目;
子步骤404:根据各个粒子的适应度函数的值,选择适应度函数值最小的粒子作为全局最优粒子pgbest,并更新各粒子的历史最优值plbest;
子步骤405:根据公式计算下一次迭代时粒子的速度,其中:ω表示惯性系数,c1和c2表示认知系数,c1和c2取值为2,r1,r2表示随机系数, 表示粒子的历史最优位置值,表示当前最优位置,表示的是粒子位置前后变化的汉明距离,表示粒子的全局最优位置,表示当前位置,表示全局最优粒子的位置和当前位置的汉明距离;
子步骤406:计算下一次迭代时粒子的位置,计算的值,并判断条件 是否成立,当条件成立时,则当条件不成立时,则其中:r是[0,1]之间的随机数;
子步骤407:判断二元粒子群优化算法是否达到了最大迭代次数或达到设定的收敛精度值ξ,即t>tmax是否成立或fitness<ξ是否成立,如果条件之一成立则执行步骤5, 否则返回步骤402,通过二元粒子群优化算法和K-Means算法得到了RBF隐含层神经元的最佳数目K以及对应的聚类中心μj。
实施例3:与上述实施例的不同之处在于,步骤8包括以下子步骤:
子步骤801:根据k近邻算法(k-nearest neighbor,k-NN)和粒子群中粒子各维的值构建kd树(k-dimensional tree);
子步骤802:根据kd树搜索原理,找到每个粒子的k个最近邻粒子即top(k)个粒子;
子步骤803:根据搜索得到的k个最近邻粒子的适应度函数值,确定每个粒子的邻域最优粒子plbest;
子步骤804:k=k+1,即下一次迭代时各粒子的邻域扩大一个粒子的范围,直到最后k的值等于粒子群的规模,k=Nl-swarm。
实施例4:采用本发明所述的基于粒子群优化算法改进的神经网络模型用于数据预测方法对某市2013年1月1号到2013年8月26号的PM2.5浓度进行预测,以SO2,NO2,PM10,CO,O3的浓度值作为PM2.5浓度的影响因素,
步骤1:数据样本的表示,在以下的集合中,从左到右各数据依次表示SO2,NO2,PM10,CO,O3的浓度值,
步骤2:数据预处理,训练样本集Xtrain,测试样本集Xtest,Xtrain的样本数为100,Xtest的样本数为100;
步骤3:RBF神经网络参数初始化,根据训练样本集的维数M=5,可以确定输入层神经元的数目Ninput=5,根据要预测的指标值的维数确定输出层神经元的数目Noutput=1;
步骤4:利用二元粒子群优化算法确定隐含层神经元的数目H和隐含层径向基核函数,隐含层径向基核函数用表示,隐含层径向基核函数的中心为ci,i=1,2,…,H;
步骤4又包括:
子步骤401:二元粒子群优化算法参数初始化,初始化粒子群的数目Nswarm=40;随机初始化粒子群的位置,
子步骤402:选取二元粒子群中的最优粒子,用该粒子表示的神经元数目k,根据K-Means算法进行聚类。二元粒子群优化算法第一次迭代时随机选取一个粒子作为最优粒子,二元粒子群优化算法从第二次开始根据适应度函数的值选取全局最优粒子;
所述K-Means算法包括:
子步骤40201:根据二元粒子表示的神经元节点的数目k,初始化聚类中心,用 表示第j个聚类中心;
子步骤40202:根据公式计算每个数据样本到聚类中心的距离,选取距离该数据样本最近的聚类中心,并数据样本归为该类,其中ci表示第xi样本所属的类,μj表示第j个聚类中心;
子步骤40203:根据公式计算新的聚类中心;
子步骤40204:返回子步骤40201,循环迭代,直到收敛,即聚类中心不再变化,返回误差平方和函数的值及聚类得到的k个聚类中心,误差平方和函数用SEE表示, 误差平方和函数是度量聚类效果的指标;
子步骤403:根据公式fitness=γ(m/mmax)+μ·SSE计算二元粒子群各粒子适应度函数的值,其中:γ,μ∈[0,1],m表示当前神经元的数目,mmax表示隐含层神经元的最大数目100;
子步骤404:根据各个粒子的适应度函数值,选择适应度函数值最小的粒子作为全局最优粒子pgbest,并更新各粒子的历史最优值plbest;
子步骤405:根据公式计算下一次迭代时粒子的速度,其中:ω表示惯性系数,c1和c2表示认知系数,c1和c2取值为2,r1,r2表示随机系数, 表示粒子的历史最优位置值,表示当前最优位置,表示的是粒子位置前后变化的汉明距离,表示粒子的全局最优位置,表示当前位置,表示全局最优粒子的位置和当前位置的汉明距离;
子步骤406:计算下一次迭代时粒子的位置,计算的值,并判断条件 是否成立,当条件成立时,则当条件不成立时,则其中:r是[0,1]之间的随机数;
子步骤407:判断二元粒子群优化算法是否达到了最大迭代次数或达到设定的收敛精度值ξ,即t>tmax是否成立或fitness<ξ是否成立,如果条件之一成立则执行步骤5,否则返回步骤402,通过二元粒子群优化算法和K-Means算法得到了RBF隐含层神经元的最佳数目K=11,聚类中心矩阵为11×5的矩阵;
步骤5:初始化局部粒子群优化算法的各个参数,包括粒子群数目,Nl-swarm=40;随机初始化粒子群的位置随机初始化粒子群的速度最大迭代次数tl-max=300;适应度函数精度ρlpso=0.01;k近邻算法中k的初始值K=1;
步骤6:根据适应度函数计算各粒子的适应度值;其中:N=100;β是控制系数,取[0,1]之间的随机数;wj表示隐含层和输出层的权值;yi表示第i个样本对应的期望输出值;f(xi)表示第i个样本对应的模型实际实际输出值,其函数公式为Gi(xi,ci)为隐含层第i神经元的输出,其函数公式为 其中xi为第i个输入样本向量,ci为隐含层第i个神经元径向基核函数的中心向量,||·||2表示向量的欧几里得距离;
步骤7:从粒子群中选择具有最小适应度函数值的粒子为全局最优粒子pgbest,个体最优粒子pbest与初始化时粒子的位置相同;
步骤8:通过K近邻算法计算局部粒子群优化算法中各粒子的邻域最优粒子plbest;
所述步骤8又包括:
子步骤801:根据k近邻算法(k-nearest neighbor,k-NN)和粒子群中粒子各维的值构建kd树(k-dimensional tree);
子步骤802:根据kd树搜索原理,找到每个粒子的k个最近邻粒子即top(k)个粒子;
子步骤803:根据搜索得到的k个最近邻粒子的适应度函数值,确定每个粒子的邻域最优粒子plbest;
子步骤804:k=k+1,即下一次迭代时各粒子的邻域扩大一个粒子的范围,直到最后k的值等于粒子群的规模,k=Nl-swarm;
步骤9:根据公式
步骤10:根据公式更新粒子的位置,η是调节系数,从[0,1]之间取随机数;
步骤11:判断局部粒子群优化算法是否达到最大迭代次数tl-max或预先设定的精度ρlpso,即t>tl-max或p<plpso两者是否有一个成立,如果两者有一个成立则转到步骤12,否则返回步骤6;
步骤12:从粒子群中选择适应度函数值最小的粒子,该粒子的位置参数即作为神经网络隐含层到输出层的权值矩阵W,
W=[-2.33,2.94,-1.18,-0.97,7.16,-2.55,-0.97,0.18,17.96,,2.04,-0.03,];
步骤13:RBF神经网络模型的建立,根据得到的模型参数建立RBF神经网络模型,模型参数包括通过二元粒子群优化算法得到的隐含层神经元的数目H=11、隐含层径向基核函数的中心和通过局部粒子群优化算法得到的隐含层到输出层的权值矩阵W;
步骤14:利用RBF神经网络模型进行数据预测,用测试样本集作为RBF神经网络模型的输入样本,利用建立好的RBF神经网络模型,用于对未知的数据进行预测,RBF网络模型隐含层采用径向基核函数,径向基核函数公式为xi表示输入样本,ci表示隐含层第i个神经元核函数的中心,σ表示核函数的宽度,利用公式 计算RBF神经网络模型的预测输出值,即为未来PM2.5的浓度值的预测值。在图2中,左图为基于传统RBF神经网络模型的PM2.5浓度值的预测结果与实际的PM2.5浓度值,右图为实施例4的PM2.5浓度值的预测结果与实际的PM2.5浓度值,通过图2可知,基于传统RBF神经网络模型和实施例4对测试样本集的拟合程度都有较好的曲线拟合,但是左图对曲线的拟合程度明显不如右图对曲线的拟合程度,即实施例4所述方法对PM2.5浓度值的曲线拟合效果(预测效果)优于基于传统RBF神经网络模型曲线拟合效果。在图3中,左图为基于传统RBF神经网络模型的PM2.5浓度值预测偏差,右图为实施例4的PM2.5浓度值预测偏差,横轴表示数据样本的下标,纵轴表示两种方法对数据进行预测的误差大小,通过图3可知,实施例4对数据的预测误差明显小于基于传统RBF神经网络模型的预测误差,而且预测误差抖动性小,说明了实施例4所述方法对数据预测的有效性,即说明实施例4所述方法能够提高数据预测的精确度。表1为基于传统RBF神经网络模型(传统模型)的PM2.5浓度值预测中训练集与测试集中的平均绝对百分误差(MAPE)、标准误差(RMSE)和隐含层神经元数目(Hidden nodes)与实施例4(本发明模型)中PM2.5浓度值预测中训练集与测试集中的平均绝对百分误差(MAPE)、标准误差(RMSE)和隐含层神经元数目(Hidden nodes),由表1可知,采用实施例4所述方法对PM2.5浓度值进行预测时,其各个参数指标在训练样本集和测试样本集上都有相比于传统RBF神经网络模型更小的误差值,而且隐含层神经元的节点数相比之下也更少,模型冗余度降低,改善了RBF神经网络性能。
实施例5:采用本发明所述的基于粒子群优化算法改进的神经网络模型用于数据预测方法对网络传输时延进行预测,本实施例以2013年8月11号到2013年8月24号期间北京市某服务器与位于香港的某服务器之间的往返时延对未来的网络传输时延进行预测,
步骤1:数据样本的表示,在本实施例中用连续11个检测值表示当前时段的时延值,样本的表示用一个11维的向量表示,这里仅列出前3个样本;
步骤2:数据预处理,将收集到的样本数据分成两部分,包括:训练样本集Xtrain和测试样本集Xtest,Xtrain的样本数为500,Xtest的样本数为500;
步骤3:RBF神经网络参数初始化,根据训练样本集的维数M=11,可以确定输入层神经元的数目Ninput=11,根据待预测的指标值的数目确定输出层神经元的数目Noutput=1;
步骤4:利用二元粒子群优化算法确定隐含层神经元的数目H和隐含层径向基核函数
步骤4又包括:
子步骤401:二元粒子群优化算法参数初始化,初始化粒子群的数目Nswarm=80;随机初始化粒子群的位置,
子步骤402:选取二元粒子群中的最优粒子,用该粒子表示的神经元数目k,根据K-Means算法进行聚类。二元粒子群优化算法第一次迭代时随机选取一个粒子作为最优粒子,二元粒子群优化算法从第二次开始根据适应度函数的值选取全局最优粒子;
所述K-Means算法包括:
子步骤40201:根据二元粒子表示的神经元节点的数目k,初始化聚类中心,用 表示第j个聚类中心;
子步骤40202:根据公式计算每个数据样本到聚类中心的距离,选取距离该数据样本最近的聚类中心,并数据样本归为该类,其中ci表示第xi样本所属的类,μj表示第j个聚类中心;
子步骤40203:根据公式计算新的聚类中心;
子步骤40204:返回子步骤40201,循环迭代,直到收敛,即聚类中心不再变化,返回误差平方和函数的值及聚类得到的k个聚类中心,误差平方和函数用SEE表示, 误差平方和函数是度量聚类效果的指标;
子步骤403:根据公式fitness=γ(m/mmax)+μ·SSE计算二元粒子群各粒子适应度函数的值,其中:γ,μ∈[0,1],m表示当前神经元的数目,mmax表示隐含层神经元的最大数目500;
子步骤404:根据各个粒子的适应度函数值,选择适应度函数值最小的粒子作为全局最优粒子pgbest,并更新各粒子的历史最优值plbest;
子步骤405:根据公式计算下一次迭代时粒子的速度,其中:ω表示惯性系数,c1和c2表示认知系数,c1和c2取值为2,r1,r2表示随机系数, 表示粒子的历史最优位置值,表示当前最优位置,表示的是粒子位置前后变化的汉明距离,表示粒子的全局最优位置,表示当前位置,表示全局最优粒子的位置和当前位置的汉明距离;
子步骤406:计算下一次迭代时粒子的位置,计算的值,并判断条件 是否成立,当条件成立时,则当条件不成立时,则其中:r是[0,1]之间的随机数;
子步骤407:判断二元粒子群优化算法是否达到了最大迭代次数或达到设定的收敛精度值ξ,即t>tmax是否成立或fitness<ξ是否成立,如果条件之一成立则执行步骤5,否则返回步骤402,通过二元粒子群优化算法和K-Means算法
得到了RBF隐含层神经元的最佳数目K为29,聚类中心矩阵为29×11的矩阵;
步骤5:初始化局部粒子群优化算法的各个参数,包括粒子群数目,Nl-swarm=200;随机初始化粒子群的位置随机初始化粒子群的速度最大迭代次数tl-max=300;适应度函数精度ρlpso=0.01;K近邻算法中K的初始值K=1;
步骤6:根据适应度函数计算各粒子的适应度值,其中:N=500;β是控制系数,取[0,1]之间的随机数;wj表示隐含层和输出层的权值;yi表示第i个样本对应的期望输出值;f(xi)表示第i个样本对应的模型实际实际输出值,其函数公式为Gi(xi,ci)为隐含层第i神经元的输出,其函数公式为 其中xi为第i个输入样本向量,ci为隐含层第i个神经元径向基核函数的中心向量,||·||2表示向量的欧几里得距离;
步骤7:从粒子群中选择具有最小适应度函数值的粒子为全局最优粒子pgbest,个体最优粒子pbest与初始化时粒子的位置相同;
步骤8:通过k近邻算法计算局部粒子群优化算法中各粒子的邻域最优粒子plbest;
所述步骤8又包括:
子步骤801:根据k近邻算法(k-nearest neighbor,k-NN)和粒子群中粒子各维的值构建kd树(k-dimensional tree);
子步骤802:根据kd树搜索原理,找到每个粒子的k个最近邻粒子即top(k)个粒子;
子步骤803:根据搜索得到的k个最近邻粒子的适应度函数值,确定每个粒子的邻域最优粒子plbest;
子步骤804:k=k+1,即下一次迭代时各粒子的邻域扩大一个粒子的范围,直到最后k的值等于粒子群的规模,k=Nl-swarm;
步骤9:根据公式
步骤10:根据公式更新粒子的位置,η是调节系数,从[0,1]之间取随机数;
步骤11:判断局部粒子群优化算法是否达到最大迭代次数tl-max或预先设定的精度ρlpso,即t>tl-max或p<plpso两者是否有一个成立,如果两者有一个成立则转到步骤12,否则返回步骤6;
步骤12:从粒子群中选择适应度函数值最小的粒子,该粒子的位置参数即作为神经网络隐含层到输出层的权值矩阵W;
W=[52.064,55.692,100.0,100.0,18.906,…,61.592,-10.0,100.0,49.329]
步骤13:RBF神经网络模型的建立,根据得到的模型参数建立RBF神经网络模型,模型参数包括通过二元粒子群优化算法得到的隐含层神经元的数目H=29、隐含层径向基核函数的中心和通过局部粒子群优化算法得到的隐含层到输出层的权值矩阵W;
步骤14:利用RBF神经网络模型进行数据预测,用测试样本集作为RBF神经网络模型的输入样本,利用建立好的RBF神经网络模型,用于对未知的数据进行预测,RBF网络模型隐含层采用径向基核函数,径向基核函数公式为xi表示输入样本,ci表示隐含层第i个神经元核函数的中心,σ表示核函数的宽度,利用 公式计算RBF神经网络模型的预测输出值,即为未来Internet时延值的预测值。由图4可知,在凌晨时间段,网络负载少,拥塞程度低,网络几乎没有拥塞,在这种情况下,网络时延大多在40ms附近波动,且波动范围较小,基本稳定在40ms左右,但是在白天,网络时延序列的第6000个时延数据开始,网络时延呈上升趋势,说明随着人们对网络的利用,网络负载增多,时延也逐渐增大,到了晚上时间段达到最大值150ms左右,且时延抖动明显,说明时延序列是有一定的规律性的,即网络时延与网络的拥塞状况成一定的正比关系。在图5中,左图为基于传统RBF神经网络模型的时延预测结果,右图为实施例5的时延预测结果,通过左图可知,基于传统RBF神经网络模型的时延预测结果图虽然在一定程度上可以跟踪网络时延的变化规律,但是时延预测误差比较大,而通过右图可知,实施例5获得的时延预测结果的精度较高,即说明采用实施例5所述方法能够提高时延预测的精确度。在图6中,左图为基于传统RBF神经网络模型的时延预测偏差,右图为实施例5的时延预测偏差,通过图6可知,基于传统RBF神经网络模型的时延预测偏差大于实施例5的时延预测偏差,说明采用实施例5所述方法能够提高时延预测的精确度。表2为基于传统RBF神经网络模型(传统模型)的时延预测中训练集与测试集中的平均绝对百分误差(MAPE)、标准误差(RMSE)和隐含层神经元数目(Hidden nodes)与实施例5(本发明模型)中时延预测中训练集与测试集中的平均绝对百分误差(MAPE)、标准误差(RMSE)和隐含层神经元数目(Hidden nodes),由表2可知,基于传统RBF神经网络模型,在时延预测上,需要更多的神经元才能达到较好的预测效果,训练集的MAPE小于测试集的MAPE,训练集的RMSE小于测试集的RMSE,说明传统的RBF神经网络模型在训练集上的训练效果要比在测试集上的效果好很多;而实施例5中的RBF神经网络模型,相对于传统的RBF神经网络模型而言,需要更少的神经元,却达到了更好的预测效果,并且在训练集和测试集上的效果都很好,说明了实施例5中的RBF神经网络模型在扩展性方面得到了提升。
综上所述,本发明所述的基于粒子群优化算法改进的神经网络模型用于数据预测方法能够易于确定RBF神经网络模型隐含层神经元的数目,从而改善了RBF神经网络性能,提高了数据预测的精确度,同时,本发明中的基于粒子群优化算法改进的神经网络模型具有模型复杂度低,鲁棒性强,可扩展性好的特点。
以上技术特征构成了本发明的实施例,其具有较强的适应性和实施效果,可根据实际需要增减非必要的技术特征,来满足不同情况的需求。
表1
表2
机译: 基于异构图神经网络模型的预测方法和系统
机译: 基于回归分析的预测算法改进的卡尔曼滤波算法对波高数据进行算术运算的波高测量装置
机译: 一种用于创建神经网络模型的方法和计算设备,该模型输出基于EEG数据的大脑年龄预测信息