基于IF-EMD-LSTM的CPU负载趋势预测方法与流程

文档序号:23499867发布日期:2021-01-01 18:03阅读:195来源:国知局
基于IF-EMD-LSTM的CPU负载趋势预测方法与流程
本发明属于民航信息处理
技术领域
,特别是涉及一种基于if-emd-lstm的cpu负载趋势预测方法。
背景技术
:2016年12月,英国国家航空服务公司(nats)由于两条系统航班服务器通道均发生故障,导致数百架航班无法起飞,此次故障共造成120架航班被取消,500架航班被延误超45分钟,共影响约10000万名旅客。2016年8月8日凌晨2点,达美航空公司在亚特兰大的主数据中心发生故障,导致全球电脑和运营系统停顿。超过650各航班被取消,数千旅客滞留全球各机场,航班延误严重,损失数百万美金。一个典型的数据中心服务器可以运行成百上千资源不断变化的作业,然而现有系统并不能适应日益增长的调度复杂性。主要原因是管理系统将工作任务低效地分配给服务器,不能在安排工作任务之前充分考虑服务器状态。因此,高效管理数据中心资源,提高服务器负载预测精确度,优化服务器资源调度至关重要。现如今,许多科研机构和企业正尝试通过数据趋势提前预测服务器资源利用情况。常见方法有三类,一、传统预测方法,如holter–winter,差分整合移动平均自回归模型(arima)和3sigma算法,结合历史数据进行趋势预测。人工智能方法,文献重点研究谷歌数据中心服务器cpu时间序列预测,使用长短期记忆网络(lstm)并与应用广泛的arima预测结果进行对比。结果表明,lstm模型预测结果准确率更高,学习非线性数据的能力比arima模型表现更优异。文献指出组合模型通过将两个或多个单一模型结合起来,综合单一模型的优点,克服了单一模型的缺点,提高了混合模型的整体预测精度。文献研究发现农业时间序列既包含线性部分又包含非线性部分,线性部分使用arima建模,非线性部分使用lstm建模。最后,得到了两种模型的混合预测结果。文献提出了eemd-arima的混合预测模型。经验模态分解(emd)和综合经验模式用于将黄河上游长期径流预测的水文时间序列分解为不同频率的imf组件进行预测。技术实现要素:技术问题为降低了服务器管理系统对cpu资源负载的实时预测误差,关键两点:1)原始时间序列数据处理。原始数据存在非平稳,周期性,非线性,异常点多的问题,首先需要对原始数据进行处理,填补空缺值,剔除异常点。2)传统时间序列预测方法可变参数较少,对于非线性,非平稳,信噪比高的数据预测结果准确率不高,很难适应多变的时间序列预测。人工智能方法容易陷入局部最优、易发生过拟合,模型参数不易精确获得,导致预测精度不高。基于以上两点分析,本发明提出了一种基于if-emd-lstm的cpu负载趋势预测方法。技术方案本发明的第一目的是提供一种基于if-emd-lstm的cpu负载趋势预测方法,包括如下步骤:s1、数据预处理:采用孤立森林算法对数据中的高异常点进行剔除并提高信噪比。s2、数据分解:为了进一步提高预测精度,采用emd算法将输入数据分解为不同频率的imf组件和残差。s3、优化神经网络:利用ba算法优化lstm初始权值和阈值,利用优化的值构造ba-lstm模型,减少人为主观选择参数对网络性能的影响。s4、神经网络训练:对每组imf组件执行优化后的lstm网络训练,并通过单独的优化后的lstm神经网络预测每个imf和残差,并从每个预测值中重建预测值。孤立森林算法孤立森林是基于集合的快速异常线性时间复杂度高的检测方法。这是一种异常检测算法满足大数据处理的要求。孤立森林适合用于连续数据的异常检测,并且异常被定义为“孤立的容易隔离的点,可以理解作为一个稀疏分布且远离的点密集的人群。偏远的森林需要使用集成方法得到一个收敛值(蒙特卡罗方法),也就是说,从头开始反复切割,然后平均每次切割的结果。孤立的森林需要使用整体方法为了得到一个收敛值(蒙特卡罗方法),也就是说,从一开始就反复地剪平均每一次切割的结果。孤立森林组成的每一棵树结构实现方式如下:1.随机选择一个属性a。2.随机选择此属性值的值。3.根据a对每条记录进行分类;将小于a的记录放在左边的子树上,并将大于或等于value的记录放在右边的子树上。4.构造左,右子树使用递归方式,直到满足以下条件:(1)传入数据集仅具有一个或多个相同记录,并且(2)树的高度达到高度阈值。对于有4个样本的测试数据1、23、29、100遍历一棵孤立树,样本100最先被孤立出来,所以最有可能是异常数据。经验模态分解emd分解可以将非平稳信号自适应地分解为一系列imf信号和残差。imf满足两点:第一,极端点的数目和零交叉点的数目必须相等或相差不超过一。其次,在任何一点上,包络都是由局部最大值和局部极小值点形成的。极小值点形成的包络的平均值为零。对于给定信号,执行emd分解的步骤如下:求出x(t)的上极点和下极点;使用插值方法形成上下包络并计算初始值m1;提取细节:h1=x(t)-m1(1)确定h1是否满足imf条件。如果满足,则h1是x(t)的第一个成分,记录为c1=h1,并终止分解。如果不满意,请对k重复以上步骤k次以获得h1k=h1(k-1)-m1k(2)其中h1k是imf,则c1k=h1k是第一个imf信号x(t)的分量;在上述迭代满足术语标准标准偏差(sd)之前,标准偏差通常为(0.2–0.3);将c1与x(t)合并得到:r1=x(t)-c1(3)分解c1,c2,...,cn并重复进行:组件包含不同的分量频率段从高到低。总而言之,原始信号的分解是蝙蝠算法蝙蝠算法是xin-sbeyang等在2010年研发的高效生物启发式的算法。蝙蝠的回声定位的行为可以通过与待优化的目标函数相关联的方式进行表达,即将蝙蝠寻找最优位置的过程替换为寻找目标函数fitness和目标变量x=(x1,x2,x3,…,xd)t的最优值问题。蝙蝠算法的具体运行过程如下:步骤一:设置蝙蝠的个数n,维度d,迭代次数r,脉冲响度a,脉冲频率r,脉冲频率范围[qmin,qmax],位置范围[xmin,xmax]以及适应度函数fitness。步骤二:根据公式(13)至(15)更新第i=1,2,3,…,n只蝙蝠在t时刻的位置速度以及第i只蝙蝠的搜索脉冲频率qi,其中γ∈[0,1]qi=qmin+(qmax-qmin)*γ(5)随机产生一个数rand,比较rand与脉冲频率r的大小关系,如果rand大于r,则通过公式(16)对当前最优解xbest进行随机干扰。如果rand比r小则直接利用公式(17)引进行越界处理,具体公式如下所示:式(16)中,ρ∈[-1,1]的随机值,avt是t时刻蝙蝠群体脉冲n向度的平均值。步骤四:对新位置xt;求适应度函数值fnew。生产随机数rand,若rand小于脉冲响度a并且fnew小于目前位置适应度函数值fitness,则把fnew赋值给fitness。步骤五:比较fnew与当前最优的目标函数值儿fmin的大小。若fnew较小,则将fmin替换成fnew,将赋值给xbest,然后改变脉冲响度a和脉冲频率r,公式如下:其中α∈(0,1),ε>0,这两个数均为常数。且当步骤六:重复步骤二至步骤五,直至达到最大法代次数或者最优适应度函数值小于设定值。长短时记忆网络在阈值神经网络中,lstm网络最为著名。存储器是用来判断的信息是否有用。与传统时间序列预测模型相比,lstm模型解决长期依赖问题并充分考虑时间序列数据的特点。lstm包含四个非常关键的元素输入门,输出门,遗忘门,和内存单元。下面对lstm中各部分进行描述:输入门it=δ(wi·[ht-1,xt]+bi)(13)式中,wt表示输入门的权重矩阵,bt为偏置,δ为sigmoid函数输出门ot=δ(wo·[ht-1,xt]+bo)(15)式中,w0表示输出门的权重矩阵,b0为偏置。遗忘门ft=δ(wf·[ht-1,,xt]+bf)(16)式中,wf是遗忘门的权重矩阵,bf为偏置,δ为sigmoid。内存单元ct=tanh(wc·[ht-1,xt]+bc)(17)ct=ft·ct-1+it·ct(18)式中,wc为存储单元的权重矩阵,bc为记忆单元的偏差项,tanh函数表达式为:lstm的最终输出由输出门和单元状态决定ht=ottanh(ct)(20)其中初始化时,c0=0,h0=0,lstm的输入单元为x(t),输出单元代表h(t)。ba-lstm模型构建流程步骤一:首先根据本文第三部分静态确定lstm参数,除初始权值和其阈值;步骤二:准备数据:利用wt和if进行数据预处理,emd进行数据分解;步骤三:ba参数初设和训练:首先根据公式(22)求出ba算法的维度,其中,j,k,l表示lstm中输入层,隐含层和输出层的个数;d=4*j*k+4*k+j*k*l(22)ba与lstm目标函数相同:其中:o是指蝙蝠中的第o个;p是指第p条数据;oip和tip是第o只蝙蝠确定模型lstm样本数据p下的输出值和真实值;m是指样本总数。步骤四:将步骤三得到的最优值等于lstm的初始权值和阈值,训练ba-lstm模型。本专利的第二发明目的是提供一种基于if-emd-lstm的cpu负载趋势预测系统,包括:数据预处理模块,采用孤立森林算法对数据中的高异常点进行剔除并提高信噪比;数据分解模块,采用emd算法将输入数据分解为不同频率的imf组件和残差;优化神经网络模块,利用ba算法优化lstm初始权值和阈值,利用优化的值构造ba-lstm模型;神经网络训练模块,对每组imf组件执行优化后的lstm网络训练,并通过单独优化后的lstm神经网络预测每个imf和残差,并从每个预测值中重建预测值。本专利的第三发明目的是提供一种实现上述基于if-emd-lstm的cpu负载趋势预测方法的计算机程序。本专利的第四发明目的是提供一种实现上述基于if-emd-lstm的cpu负载趋势预测方法的信息数据处理终端。本专利的第五发明目的是提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述的基于if-emd-lstm的cpu负载趋势预测方法。本发明的优点及积极效果为:通过采用上述技术方案,本发明具有如下的技术效果:本发明第一次使用if(孤立森林)处理服务器cpu负载数据的异常点,为了解决原始数据不平稳问题,引入emd(经验模态分解算法)将原始数据分解为不同阶imf和残差。再使用ba算法消除了lstm算法人为主观确定初始权值和阈值对网络性能的影响。最终提出了一种基于if-emd-lstm的数据中心服务器负载预测混合方法。提高了预测精度。为之后根据负载预测结果迁移数据服务器上的数据和任务提供了精确地数据准备,确保了服务器的正常和高效的工作状态。附图说明图1为本发明优选实例的流程图;图2为本发明优选实例的测试样例图;图3为本发明优选实例的lstm原理图;图4为本发明优选实例中cpu负载数据图;图5为本发明优选实例中孤立森林原始数据异常点去除图;图6为本发明优选实例中emd分解后数据曲线图;图7为本发明优选实例中lstm模型预测结果图;图8为本发明优选实例中arima模型预测结果图;图9为本发明优选实例中if-emd-lstm模型预测结果图。具体实施方式为能进一步了解本发明的
发明内容、特点及功效,兹例举以下实施例,并配合附图详细说明如下。本发明针对预测数据中心服务器的cpu使用率,提出了一种基于if-emd-lstm的cpu负载趋势预测方法。首先,单独的时间序列详细信息,服务器cpu使用率是从google集群数据集中提取的。之后,进行时间序列特点分析并分析各方法的适用性,一方面使用if能够去除数据中的异常点并提高原始数据信噪比;另一方面lstm的结构设计比传统预测模型arima更适合该时间序列预测,使用ba算法优化lstm模型,构建ba-lstm模型,减小lstm参数人为主观选择对网络性能造成的影响。并与差分整合移动平均自回归模型(arima),lstm模型进行对比实验。本发明降低了服务器管理系统对cpu资源负载的实时预测误差。请参阅图1-至图9,具体方案为:一种基于if-emd-lstm的cpu负载趋势预测方法,包括如下步骤:s1、数据预处理,采用孤立森林算法对数据中的高异常点进行剔除并提高信噪比;s2、数据分解,采用emd算法将输入数据分解为不同频率的imf组件和残差;s3、优化神经网络,利用ba算法优化lstm初始权值和阈值,利用优化的值构造ba-lstm模型;s4、神经网络训练,对每组imf组件执行优化后的lstm网络训练,并通过单独优化后的lstm神经网络预测每个imf和残差,并从每个预测值中重建预测值。一种基于if-emd-lstm的cpu负载趋势预测系统,包括:数据预处理模块,采用孤立森林算法对数据中的高异常点进行剔除并提高信噪比;数据分解模块,采用emd算法将输入数据分解为不同频率的imf组件和残差;优化神经网络模块,利用ba算法优化lstm初始权值和阈值,利用优化的值构造ba-lstm模型;神经网络训练模块,对每组imf组件执行优化后的lstm网络训练,并通过单独优化后的lstm神经网络预测每个imf和残差,并从每个预测值中重建预测值。一种实现上述基于if-emd-lstm的cpu负载趋势预测方法的计算机程序。一种实现上述基于if-emd-lstm的cpu负载趋势预测方法的信息数据处理终端。一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述的基于if-emd-lstm的cpu负载趋势预测方法。实验环境及数据本发明的实验环境是:intel(r)core(tm)i5-4590cpu,8gb内存,操作系统为windows7旗舰版,在matlab环境下进行实验。实验需要keras深度学习框架下的lstm库,sklearn机器学习库,pandas,numpy,matplotlib科学计算库和绘图库。本发明实验数据皆来自google集群数据集。特征提取本文采用某航空公司服务器集群数据集,该数据集详细记录了300+服务器从2018年11月1日至2018年11月15日,总计15天资源使用的详细情况。然而手动为300+服务器建立资源负载预测模型不合理。因此,只为其中一台服务器(机器id:193)建立时间序列分析,建模和预测方法。其余服务器也是同样的建立方法。之所以选择数据集最活跃的机器进行研究,是因为该机器空缺值最少。以下id为193的服务器被称为机器a。为了提取服务器每个时间窗的工作cpu负载,我们考虑到某些任务只部分运行5分钟时间窗这一事实。因此,将每相隔5分钟时间窗任务的所有cpu读数相加。并且观察到一些机器不活动时期cpu读数为0。使用线性插值方法来填充空缺值,使用空缺值的相邻值进行填充,保持序列的连续性。共计4120条数据,选取前70%的数据作为训练集,20%,的数据作为单步测试集,10%剩余数据用于验证模型的泛化能力。提取机器acpu负载时间序列数据”cpu_load_data.csv”文件,数据格式为{time,cpuloaddata},其中time代表时间,cpuloaddata代表cpu负载数据,具体负载数据如图4所示。实验过程首先本文设置lstm除初始值和阈值之外的数,通过构造每层256个神经元的两层lstm,可以更改历史序列长度,batch_size和训练回合,以找到最适合该参数的值。平均绝对误差用作模型的评估指标:将训练回合编号设置为50;batch_size为20;历史序列长度为5、10、15、20、25。预测结果如表1所示。其中,当历史序列长度为20时mape最小。表1不同历史序列下的预测结果将历史记录序列的长度设置为10;训练数回合为50;表2中显示了预测结果。batch_size为52时,误差最小。表2不同batch_size下的预测结果将历史记录序列的长度设置为10;batch_size为20时;训练回合的数量分别为30、50、80、100,300和1000。预测结果如表3所示。其中,当训练轮回合为80时,误差最小。表3不同训练回合下的预测结果表lstm除初始权值和阈值外最优参数设置,如表4所示:表4lstm参数设置表分别使用arima,lstm和if-emd-lstm混合模型进行预测。图5显示了孤立森林对异常点去除情况的展示。从图中可以看出,一些高爆炸异常数据已被消除。图6显示了使用emd算法对数据进行分解的结果,将数据分解为不同频率的imf组件和残差。图8显示了使用arima模型预测,图7显示了使用lstm预测模型的曲线预测结果。图9显示了使用if-emd-lstm混合算法总体预测结果,为了更好地展示该混合算法的预测情况,只展示部分数据预测情况如图6所示。实验结果分析三个预测算法使用mape和rmse做为评价标准,预测结果对比如表5所示。从表中可以看出mape和rmse优于arima和lstm预测模型。表5三种预测算法评价指标的比较arimalstmwt-if-emd-ba-lstmmape21.47%11.46%`2.75%rmse0.05110.03006.74e-05在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。以上所述仅是对本发明的较佳实施例而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施例所做的任何简单修改,等同变化与修饰,均属于本发明技术方案的范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1