一种基于粒子群优化与自编码器的混沌时间序列预测方法与流程

文档序号:20955806发布日期:2020-06-02 20:24阅读:249来源:国知局
一种基于粒子群优化与自编码器的混沌时间序列预测方法与流程
本发明属于复杂系统的混沌时间序列建模分析领域,特别是涉及一种基于粒子群优化与自编码器的混沌时间序列预测方法。
背景技术
:时间序列是由分析动态系统的研究人员按照一定的规则间隔t采样得到的一些有序观测数据x(t)。时间序列预测是依据过去的信息建立适当的模型,并对未来一定时期的趋势进行定量预测。混沌是指确定性动力学系统因对初值敏感而表现出的长期不可预测的、类似随机性的运动。混沌时间序列是一类具有混沌特性的时间序列,混沌时间序列对初始条件敏感,运动轨道仅限于有限区域,且轨道不重复,短期可预测,长期不可预测。现实世界的时间序列大多具有混沌特征。分析时间序列的规律并用它来预测它们未来的行为是非常有用的,如气象预报、灾害预警、金融趋势分析和交通流预测。传统的时间序列建模方法,如自回归综合移动平均模型、支持向量回归、回声状态网络等,已经在科学界和工业界得到了广泛的应用。传统的预测模型虽然取得了显著的效果,但同时仍然存在一些问题,特别是如何训练模型的权值。梯度下降法是训练神经网络权值的常用方法。然而,基于梯度的方法需要满足严格的数学条件,在高维空间中很容易陷入鞍点区域。因此,研究人员也在寻找其他的训练模式。近年来,一些专家将智能优化算法应用到时间序列预测的建模过程中。这些算法原理简单、操作简捷、易于并行化,引起了不同背景研究者的广泛关注。智能优化算法是一种启发式技术。受社会群体活动或自然现象的启发,人类发明了大量的智能优化算法来解决复杂的优化问题,包括遗传算法、差分进化算法和粒子群优化算法(particleswarmoptimization,简称pso)。智能优化算法不要求目标函数具有特殊的数学性质,如凸性、可微性等,因而被广泛应用于建模优化中。结合优化算法和机器学习模型对连接权值进行训练,取得了一定的效果。pso算法已经研究了几十年,最早由russelleberhart和jameskennedy于1995年提出,最初用于模拟鸟群的运动。pso算法由于其结构简单、实现简单、灵活性强等特点,在解决各种优化问题中得到了广泛的应用和关注。随着数据采集技术和数据科学的发展,研究人员对动态系统的复杂性也有了很大的提高。例如,气象系统受降雨、温度、湿度、风速、日照强度等多种因素的影响,具有大量的随机相关成分和高度非线性特征。混沌时间序列的复杂特征明显增加了建立合适的模型和分析数据的难度。空气污染物序列是一种典型的混沌时间序列。随着城市化和工业化的快速发展,交通规模和能源需求不断扩大。大量污染物,越来越多地释放到大气中,这导致严重的空气污染问题。近年来,空气污染逐渐从单一城市蔓延到邻近地区,呈现出明显的区域特征,以pm2.5为代表的大气复合污染在中国中东部地区日益严重。pm2.5是指大气中直径小于或等于2.5微米的颗粒物,常被称为可入肺颗粒物。空气中的这些悬浮颗粒会损害人体的呼吸系统和心血管系统,可能进一步导致其他疾病。对于大气污染尤其是颗粒物pm2.5的准确预报,能让人们及时采取预防措施,保护身体健康。同时也能告诫人类大气污染日益严峻,应及时采取环境保护措施,控制空气污染和促进人类社会可持续发展。有效预测pm2.5浓度等空气污染物对于有效治理空气污染、节能减排等具有重要的意义。本发明由国家自然基金项目(61773087)资助。技术实现要素:本发明的目的在于克服传统时间序列预测模型的不足,提供基于堆栈自编码神经网络(stackedautoencoderneuralnetwork,简称sae)结合改进粒子群优化算法(modifiedparticleswarmoptimization,简称mpso)的混沌时间序列预测模型,可实混沌时间序列预测,提高预测精度的一种基于mpso算法与sae的混沌时间序列预测方法。本发明解决上述问题的技术方案如下:一种基于粒子群优化与自编码器的混沌时间序列预测方法,包括以下步骤:步骤1:加载混沌时间序列原始数据集xi(t),i=1,2,…,d,t=1,2,…,n,数据维数为d,样本数为n。步骤2:选定嵌入维数m=(m1,m2,…,md)和延迟时间τ=(τ1,τ2,…,τd)为相空间重构参数,其中,m1,m2,…,md分别表示原始时间序列第1维,第2维,…,第d维数据的嵌入维数,τ1,τ2,…,τd分别表示第1维,第2维,…,第d维数据的延迟时间。步骤3:利用相空间重构理论进行数据预处理。用时间延迟的方法构造高维相空间矢量x(t)=[x1(t),x1(t+τ),…,x1(p),…,xd(t),xd(t+τ),…,xd(q)],表示重构后的数据,表示重构后数据维数,x1(p),p=t+(m1-1)τ1表示将原始数据第1维序列中的第p个样本重构为数据x中第p维序列的第t个样本,xd(q),q=t+(md-1)τd表示将原始数据第d维序列中的第q个样本重构为数据x中第di维序列的第t个样本。步骤4:将重构后的时间序列x划分为训练数据和测试数据,其中数据的前75%作为训练数据,总计ts组训练数据,数据的后25%作为测试数据,总计ss组测试数据。训练数据用来训练整个模型,测试数据用来验证训练好的模型。步骤5:预设sae模型的参数,选取的网络由2层自动编码器堆叠形成,输入参数包括权重衰减参数、稀疏惩罚项的权重、隐藏单元平均激活率等。步骤6:将训练数据作为堆栈自编码神经网络sae的输入数据进行特征提取。首先将训练数据作为第一层自编码器的输入进行第一次特征提取,再将第一层自编码器的输出特征li(t),i=1,…,s作为第二层自编码器的输入进行第二次特征提取,得到输出特征zi(t),i=1,…,k,其中s和k分别表示第一层和第二层自编码器的输出特征维数;步骤7:提高预测模型的泛化性能,克服过拟合问题,采用前馈神经网络作为整个模型的输出,即两次特征提取后的输出特征zi(t)作为前馈神经网络的输入,利用改进粒子群优化算法mpso优化前馈神经网络的输出权值。所述的前馈神经网络输入权值和隐含层偏置随机产生。隐含层输出矩阵g的计算方法如下:其中z(t)表示第二层自动编码器的输出特征,αi,(i=1,…,r)表示前馈神经网络的第i个隐含层节点与输入层节点之间的连接权值,bi,(i=1,…,r)表示第i个隐含层节点的偏置,r表示隐含层中的节点个数,ts为数据个数,g(·)表示激活函数;步骤8:采用改进的mpso算法迭代更新粒子信息,计算新的输出权值,通过不断迭代寻找使mpso算法的目标函数最小的输出权值。所述的目标函数设置为损失函数的l2范数与输出权值的l1范数的加权和:其中w表示网络的输出权值,在pso算法中表示粒子;t表示期望输出向量,||||2表示l2范数,||||1表示l1范数,λ是正则项系数;具体步骤如下:8.1:初始化改进的粒子群优化算法,设置其参数:种群规模为np,最大迭代次数为maxit,搜索空间维数即为w的维数r;8.2:利用logistic混沌映射进行粒子位置初始化:pi=μpi(1-pi),i=0,1,2,…(3)其中μ是控制参数,取μ=4。当0≤p0≤1时,系统处于混沌状态。给定任意初始值p0∈[0,1],就可以迭代出一个确定的序列。使用logistic混沌映射生成一组序列,然后选择序列中的连续np个点作为粒子的初始位置;8.3:通过计算目标函数值评估所有的粒子;8.4:选择所有粒子中目标函数值最小粒子的位置信息为当前的种群历史最优位置ygbset;8.5:设定当前所有粒子的位置信息为当前的个体历史最优位置8.6:在迭代过程中,惯性权重ω、学习因子c1和c2按如下方式自适应计算:ω=ωmax-(ωmax-ωmin)*(t/maxit)(4)c1=(c12-c11)*(t/tmaxit)+c11(5)c2=(c22-c21)*(t/tmaxit)+c21(6)其中t表示当前迭代次数,ωmax和ωmin分别为ω的最大值和最小值。通常,c11和c22设置为2.5,c12和c21设置为0.5。在迭代过程中ω值不断减小,从而提高了算法的局部搜索性能。该方法在c1减小而c2增大的情况下,可以得到比原始pso更好的性能;8.7:基于速度和位置更新公式更新粒子信息:yi(t)=yi(t-1)+vi(t)(8)其中,惯性权重ω并可用于控制算法的探索和收敛能力,学习因子c1和c2是反映粒子间信息交换的学习因子,r1和r2为区间[0,1]上服从均匀分布的随机数;8.8:应用突变策略。随着迭代次数的增加,变异概率随着迭代次数的增加而增大,防止粒子陷入局部最优或过早收敛,粒子的正常收敛在早期不会受到影响,在后期可以防止种群陷入局部最优。一旦触发变异策略,粒子的信息被复制,新粒子的位置将会重置。如果新粒子的目标值小于突变前的粒子的目标值,新粒子将取代突变前的粒子。否则,仍将使用以前的粒子;8.9:将所有的粒子的速度信息和位置信息限制在给定的范围内;如果速度值超出给定区间,则将速度调整为该区间内的随机数。如果位置超出给定区间,立即将速度方向;8.10:再次通过计算目标函数值评估所有的粒子;8.11:更新粒子的个体历史最优位置和种群历史最优位置ygbset;选择粒子目前的位置信息和选择具有更小目标函数值的位置为该粒子新的个体历史最优位置将当前的ygbset与种群中的每一个粒子位置信息带入目标函数中,若ygbset的目标函数值更小,则ygbset仍保持原值;若当前参与比较的粒子位置的目标函数值更小,则更新ygbset为该粒子的目标函数值,并用更新后的ygbset进行后续的比较,直到当代种群中所有粒子均进行一次比较;8.12:当达到最大迭代次数maxit时,优化过程完成。此时的历史最优位置向量ygbset即为预测模型的输出权值,此时便完成整个预测模型的训练,得到mpso-sae模型;步骤9:利用测试数据对训练好的模型进行验证,便可进行混沌时间序列预测,得到模型的输出值下面对mpso算法的主要改进进行详细介绍:(1)在原始pso算法中,粒子的初始位置是随机产生的,这种方法很难保证初始粒子在决策空间中的均匀分布,而且初始和迭代的随机性会导致迭代过程中出现早熟现象。由于混沌序列的随机性和遍历性,logistic序列可以初始化每个粒子的位置向量。通过迭代,基于当前群体历史最优位置ygbset创建logistic序列,然后使用序列中的一个解随机替换当前总体中一个粒子的位置。该策略在pso算法中加入混沌映射,可以在迭代过程中产生多个局部最优解的邻域点,从而增强快速寻找全局最优解的能力,防止算法陷入局部最优;(2)突变策略最早是在遗传算法中提出的,常用于亲子进化中。原始pso算法在迭代开始时收敛迅速。在迭代过程中,收敛速度变得更慢,更稳定。也可以在pso算法的迭代过程中加入突变策略,因此我们设计了一种pso算法的变异策略。随着迭代次数的增加,粒子容易陷入局部最优或过早收敛,因此变异概率随着迭代次数的增加而增大。因此,粒子的正常收敛在早期不会受到影响,在后期可以防止种群陷入局部最优。一旦触发变异策略,粒子的信息被复制,新粒子的位置被重置。比较粒子,如果新粒子能达到更好的值,新粒子将取代突变前的粒子。否则,仍将使用以前的粒子。在pso算法中引入变异算子,可以提高搜索能力,避免早熟收敛,避免陷入局部最优;(3)速度调整策略。粒子的速度被限制在一定的范围内。当粒子速度超过预设的间隔时,该速度将被间隔中的随机数替换。此操作可以避免粒子在搜索过程中飞得太快,跳过最优解。速度控制粒子的移动方向和步幅,然后这些粒子被引导到有效区域。如果粒子的目标函数值在连续n代迭代中没有变化,则在给定间隔内重置粒子的速度。采用重置策略避免早熟收敛。使用以上方法做不仅可以改善pso算法,也能促使改进后的算法更好的训练预测模型权值向量,从而很好地预测混沌时间序列。本发明的有益效果如下:(1)本发明的mpso优化算法在训练网络权值时比最小二乘法训练权值的方法,泛化性能好,适定性、鲁棒性更强,预测精度更高。尤其针对具有实际意义的时间序列时,效果提升更加明显。(2)本发明首先应用混沌和相空间重构理论,将原始时间序列重构到高维空间,揭示动态系统的演化信息,其次通过sae进行多次特征提取,进行数据降维,然后通过mpso算法对前馈神经网络进行训练、最后确定网络的动态最优输出权值,使模型整体的仿真预测值与实际值达到最小误差精度。本发明解决了基于最小二乘法的训练方法不适定、泛化性能差的问题,所建立的mpso-sae预测方法泛化性能更好,更适应实际时间序列尤其空气污染时间序列的预测建模,编程计算简洁、高效、预测精度高,在混沌时间序列预测中有着广泛的应用。附图说明图1是混沌时间序列预测过程流程图。图2是mpso-sae模型结构示意图。图3是北京地区每小时aqi时间序列的单步预测曲线图。图3(a)为aqi时间序列曲线与预测曲线的对比图,图3(b)为预测曲线与真实曲线的绝对误差。具体实施方式以下实施例将结合附图对本发明作进一步的说明。一种基于粒子群优化与自编码器的混沌时间序列预测方法,该方法基于mpso算法和sae实现,预测过程流程见图1。方法主要包括相空间重构、利用堆栈自编码进行特征提取以及利用pso算法训练预测模型的输出权值。参见图2,本发明的具体实施步骤如下:步骤1:加载混沌时间序列原始数据集xi(t),t=1,2,…,43800,i=1,2,…,5,原始数据集中包括n=43800组样本,每组样本有d=5维数据变量;步骤2:选定嵌入维数m=(m1,m2,…,md)=(40,40,40,40,40)和延迟时间τ=(τ1,τ2,…,τd)=(1,1,1,1,1)为相空间重构参数,m1=m2=…=md=40分别表示时间序列第1维,第2维,…,第d维数据的嵌入维数,τ1=τ2=…=τd=1分别表示第1维,第2维,…,第d维数据的延迟时间。x1(p),p=t+(m1-1)τ1表示将原始数据第1维序列中的第p个样本重构为第p维序列中的第t个样本,xd(q),q=t+(md-1)τd表示将原始数据第d维序列中的第q个样本重构为第di维序列中的第t个样本;步骤3:利用相空间重构理论进行数据预处理。用时间延迟的方法构造高维相空间矢量x(t)=[x1(t),x1(t+τ1),…,x1(p),…,xd(t),xd(t+τd),…,xd(q)],表示重构后的数据,重构后数据包含维变量,x1(p),p=t+(m1-1)τ1=t+39表示将原始数据第1维序列中的第p个样本重构为数据x中第p维序列的第t个样本,xd(q),q=t+(md-1)τd=t+39表示将原始数据第5维序列中的第q个样本重构为数据x中第di=200维序列的第t个样本;步骤4:将重构后的时间序列x划分为训练数据和测试数据,其中数据的前75%作为训练数据,总计32850组训练数据,数据的后25%作为测试数据,总计10950组测试数据。训练数据用来训练整个模型,测试数据用来验证训练好的模型;步骤5:预设sae模型的参数,选取的网络由2层自编码器堆叠形成,输入参数包括权重衰减参数为3×10-3,稀疏惩罚项的权重为3,隐藏单元平均激活率为0.05,等;步骤6:将训练数据作为堆栈自编码神经网络sae的输入数据进行特征提取。首先将训练数据作为第一层自编码器的输入进行第一次特征提取,再将第一层自编码器的输出特征li(t),i=1,…,s,作为第二层自编码器的输入进行第二次特征提取,得到输出特征zi(t),i=1,…,k;其中第一层和第二层自编码器的输出特征维数分别为s=100和k=10;步骤7:提高预测模型的泛化性能,克服过拟合问题,采用前馈神经网络作为整个模型的输出,即两次特征提取后的输出特征zi(t),i=1,…,k作为前馈神经网络的输入,利用改进粒子群优化算法mpso优化前馈神经网络的输出权值;所述的前馈神经网络输入权值和隐含层偏置随机产生。隐含层输出矩阵g的计算方法如下:其中z(t)表示第二层自动编码器的输出特征,αi,(i=1,…,r)表示前馈神经网络的第i个隐含层节点与输入层节点之间的连接权值,bi,(i=1,…,r)表示第i个隐含层节点的偏置,隐含层中的节点个数为r=100,数据个数ts=32850,激活函数为sigmoid函数步骤8:采用改进的mpso算法迭代更新粒子信息,计算新的输出权值,通过不断迭代寻找使mpso算法的目标函数最小的输出权值。所述的目标函数设置为损失函数的l2范数与输出权值的l1范数的加权和:其中w是网络的输出权值,在pso算法中表示粒子;t表示期望输出向量,||||2表示l2范数,||||1表示l1范数,正则项系数λ=5×10-5;具体步骤如下:8.1:初始化初始化改进的粒子群优化算法,设置其参数:种群规模为40,最大迭代次数为100,搜索空间维数即为w的维数为100;8.2:利用logistic混沌映射进行粒子位置初始化:pi=μpi(1-pi),i=0,1,2,…(11)其中μ是控制参数,取μ=4。当0≤p0≤1时,系统处于混沌状态。给定任意初始值p0∈[0,1],就可以迭代出一个确定的序列。使用logistic混沌映射生成一组序列,然后选择序列中的连续40个点作为粒子的初始位置;8.3:通过计算目标函数值评估所有的粒子;8.4:选择所有粒子中目标函数值最小粒子的位置信息为当前的种群历史最优位置ygbset;8.5:设定当前所有粒子的位置信息为当前的个体历史最优位置ypbseti;8.6:在迭代过程中,惯性权重ω、学习因子c1和c2按如下方式自适应计算:ω=ωmax-(ωmax-ωmin)*(t/maxit)(12)c1=(c12-c11)*(t/tmaxit)+c11(13)c2=(c22-c21)*(t/tmaxit)+c21(14)其中t表示当前迭代次数,ωmax和ωmin分别为ω的最大值和最小值。通常,c11和c22设置为2.5,c12和c21设置为0.5。在迭代过程中ω值不断减小,从而提高了算法的局部搜索性能。该方法在c1减小而c2增大的情况下,可以得到比原始pso更好的性能;8.7:基于速度和位置更新公式更新粒子信息:yi(t)=yi(t-1)+vi(t)(16)其中,惯性权重ω并可用于控制算法的探索和收敛能力,学习因子c1和c2是反映粒子间信息交换的学习因子,r1和r2为区间[0,1]上服从均匀分布的随机数;8.8:应用突变策略。随着迭代次数的增加,变异概率随着迭代次数的增加而增大,防止粒子陷入局部最优或过早收敛,粒子的正常收敛在早期不会受到影响,在后期可以防止种群陷入局部最优。一旦触发变异策略,粒子的信息被复制,新粒子的位置将会重置。如果新粒子的目标值小于突变前的粒子的目标值,新粒子将取代突变前的粒子。否则,仍将使用以前的粒子;8.9:将所有的粒子的速度信息和位置信息限制在给定的范围内;如果速度值超出给定区间,则将速度调整为该区间内的随机数。如果位置超出给定区间,立即将速度方向;8.10:再次通过计算目标函数值评估所有的粒子;8.11:更新粒子的个体历史最优位置和种群历史最优位置ygbset;选择粒子目前的位置信息和选择具有更小目标函数值的位置为该粒子新的个体历史最优位置将当前的ygbset与种群中的每一个粒子位置信息带入目标函数中,若ygbset的目标函数值更小,则ygbset仍保持原值;若当前参与比较的粒子位置的目标函数值更小,则更新ygbset为该粒子的目标函数值,并用更新后的ygbset进行后续的比较,直到当代种群中所有粒子均进行一次比较;8.12:当达到最大迭代次数maxit时,优化过程完成。此时的历史最优位置向量ygbset即为预测模型的输出权值,此时便完成整个预测模型的训练,得到mpso-sae模型;步骤9:利用10950组测试数据对训练好的模型进行验证,便可进行混沌时间序列预测,得到模型输出值以下给出具体实施例:以北京地区空气质量指数(airqualityindex,简称aqi)时间序列为研究对象,数据来源于uci机器学习数据库。数据区间为2010年1月1日0:00至2014年12月31日23:59,共43800组样本,每组样本包括5维变量,分别为每小时采集的pm2.5浓度、露点温度、气温、气压和累积风速。将前75%的数据(32850组样本,2010年1月1日0:00至2013年9月1日17:59)作为该方法的训练样本,并用mpso算法优化前馈神经网络输出权值。如图3所示,将训练好的mpso-sae进行仿真(此时前馈神经网络已获得最优输出权值),比较仿真值与样本的拟合情况,检验本方法的泛化能力。如图3(a)所示,可知本方法取得了较好的预测效果,预测值与真实值几乎重合。用训练好的mpso-sae模型进行预测,后25%数据作为测试样本(2016年932850组样本,2013年9月1日18:00至2014年12月31日23:59),进行单步预测。对比预测值与样本,计算相关精度指标,定量化评价mpso-sae模型的预测性能。为了定量化分析mpso-sae模型预测北京地区aqi时间序列的预测效果,采用以下4种指标来评价:其中o,和分别是观测值、预测值和观测值的期望,p表示样本总数,cov(·)表示协方差,d(·)表示方差,o为观测值序列,为预测值序列。预测北京地区aqi时间序列样本对应的效果如表1所示。表1北京地区aqi混沌时间序列单步预测效果对比modelrmsenrmsesmapecrpso-sae10.78548.452e-20.88070.8012ccpso-sae5.45849.651e-37.540e-20.9154slpso-sae4.95415.920e-35.962e-20.9221cso-sae5.00287.459e-36.523e-20.9121gd2-sae4.86515.854e-35.668e-20.9208sae-fnn6.84052.466e-29.052e-20.8925fnn8.51224.254e-20.36510.8579mpso-sae4.61245.466e-35.335e-20.9378可以看到:我们所提出的mpso-sae方法在4中评估指标上都取得了最好的效果,这意味着mpso-sae融合模型非常适合aqi序列的建模和预测。最后应该说明:本说明书虽然通过具体的实施方式详细描述了本发明的具体结构,但是本领域的技术人员应该清楚,本发明并不局限于上述实施例的描述范围,在本专利的实质范围内,进行的各种修改和替换,都应属于本专利的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1