为了精准预测网络流量的短期走向,本文针对网络流量具有混沌性以及非线性性的变化特征,提出了一种基于ELM的非线性组合算法用于网络流量的预测方法。首先对原始数据进行预处理,相空间重构,然后建立Volterra滤波器自适应预测模型,BP神经网络预测模型,RBF神经网络预测模型,小波神经网络预测模型,SVM预测模型以及极限学习机预测模型对流量时间序列进行预测分析,再将其预测结果作为组合ELM的输入,构建起非线性组合预测模型。结果显示,该组合预测均方百分误差为5.51%,其各项评价指标均优于各子模型,验证了该组合策略的有效性与优越性,可为网络流量的预测提供一个较好的参考。 In order to accurately and reliably predict the short-term trend of network traffic, this paper proposes a nonlinear combination algorithm based on ELM for network traffic prediction based on the chaotic and non-linear characteristics of network traffic. Firstly, the original data are preprocessed, phase space reconstruction, and then Volterra filter adaptive prediction model, BP neural network prediction model, RBF neural network prediction model, wavelet neural network prediction model, SVM prediction model and extreme learning machine prediction model are established. The traffic time series is predicted and analyzed, and then the prediction result is used as the input of the combined ELM to construct a nonlinear combined prediction model. The results show that the mean squared error of the combined forecast is 5.51%, and its evaluation indexes are better than the sub-models. The validity and superiority of the combined strategy are verified, which can provide a better reference for network traffic prediction.
俞雪华1,熊相真2,王志刚1*
1海南大学理学院,海南 海口
2江苏大学计算机科学与通信工程学院,江苏 镇江
收稿日期:2020年5月1日;录用日期:2020年5月19日;发布日期:2020年5月26日
为了精准预测网络流量的短期走向,本文针对网络流量具有混沌性以及非线性性的变化特征,提出了一种基于ELM的非线性组合算法用于网络流量的预测方法。首先对原始数据进行预处理,相空间重构,然后建立Volterra滤波器自适应预测模型,BP神经网络预测模型,RBF神经网络预测模型,小波神经网络预测模型,SVM预测模型以及极限学习机预测模型对流量时间序列进行预测分析,再将其预测结果作为组合ELM的输入,构建起非线性组合预测模型。结果显示,该组合预测均方百分误差为5.51%,其各项评价指标均优于各子模型,验证了该组合策略的有效性与优越性,可为网络流量的预测提供一个较好的参考。
关键词 :网络流量,相空间重构,神经网络,组合预测,极限学习机
Copyright © 2020 by author(s) and Hans Publishers Inc.
This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).
http://creativecommons.org/licenses/by/4.0/
如今互联网飞速发展,网络规模不断扩大,网络结构更加复杂,用户数量不断增加,如何有效、合理地分配网络资源面临着巨大挑战。因此,对网络流量的预测就变得越来越重要。准确的网络流量预测对网络安全防护、拥塞控制、带宽资源分配等具有关键作用。
研究表明,网络流量数据具有混沌性,非线性性和自拟合性等特点 [
设网络流量时间序列为 x i , i = 1 , 2 , ⋯ , n ,采用m种预测模型对其进行预测,得到预测结果 y j , j = 1 , 2 , ⋯ , m ,其平均值为 y ¯ ,然后根据某种组合规则确定一个非线性映射函数 Φ ( ⋅ ) ,则组合预测结果为:
y = Φ ( y 1 , y 2 , ⋯ , y m , y ¯ ) (1)
不同的非线性映射函数所能提取的子模型信息具有很大的差异,因此选择一个能够综合利用各子模型有效信息的非线性映射函数对于网络流量预测具有重要意义,由于极限学习机具有优异的泛化性能,且能在保证学习精度的前提下比神经网络速度更快,所以本文使用极限学习机来确定该非线性映射函数,构建的非线性组合预测模型如图1所示。
极限学习机(ELM)是一种基于前馈神经网络的快速学习算法 [
∑ j = 1 L β i g ( W i ⋅ X j + b j ) = t j , j = 1 , 2 , ⋯ , N (2)
式中 g ( x ) 为激活函数,本文选用sigmoid函数, W i 为输入权重, β i 为输出权重, b i 为第i个隐层单元的偏差。该算法中,一旦随机确定了隐藏层的输入权重 W i 和偏差 b i ,就相应地确定了隐藏层的输出矩阵,输出权重 β 即可通过求解一个方程 H β = T 得到,因此具有较快的学习速度。其具体步骤为:
Step 1:对于一列原始网络流量时间序列,本文先对其进行数据预处理,利用Q-Q图及标准化残差找出并替换掉其中的异常值。
Step 2:然后对其进行归一化处理,利用C-C法求出嵌入维数m和延迟时间 τ ,并在相位空间中对原始数据进行了重构,得到各子模型的训练样本集和测试样本集。
Step 3:然后分别使用Volterra自适应滤波器预测模型、BP神经网络预测模型、RBF神经网络预测模型、小波神经网络预测模型、支持向量机预测模型以及极限学习机预测模型进行独立预测,反复训练网络10次,并取其平均值,得到6个子模型预测结果。
Step 4:将以上6个子模型预测结果及其平均值作为组合极限学习机的输入,反复训练网络10次,并取平均值得到最终的预测结果。
图1. 非线性组合预测模型
现实生活中所测得的网络流量往往只是一列随时间变化的具有某种意义的观测值,它是众多因素综合作用的结果,具有一定的混沌性,相空间重构理论指出 [
S j = ( s ( t j ) , s ( t j + τ ) , ⋯ , s ( t j + ( m − 1 ) τ ) ) , ( j = 1 , 2 , ⋯ , M ) (3)
于是重构的相空间为:
S = [ S 1 , S 2 , ⋯ , S n ] T (4)
式中m表示网络流量的嵌入维数, τ 表示网络流量的延迟时间,S为 M × m 维矩阵。
依据Takens嵌入定理 [
Volterra是一种非线性自适应FIR滤波器 [
x ( n + 1 ) = h 0 + ∑ i 1 = 0 m − 1 h 1 ( i 1 ) x ( n − i 1 τ ) + ∑ i 1 = 0 m − 1 ∑ i 2 = 0 m − 1 h k ( i 1 , i 2 ) x ( n − i 1 τ ) x ( n − i 2 τ ) (5)
式中 h k ( i 1 ) , h k ( i 1 , i 2 ) 为k阶Volterra核,其可用归一化最小均方自适应算法求解。
BP神经网络是一种反向传递并且能够修正误差的多层映射函数,它解决了多层网络中隐含单元学习权的学习问题,能够以任意精度拟合任何连续非线性函数。本文采用三层网络结构:输入层、隐藏层和输出层。其算法主要思想分为信息正向传递和误差反向传播两大过程。本文使用的BP神经网络预测模型 [
s i + 1 = 1 1 + exp ( − ∑ j = 1 p v j b j + γ ) (6)
式中 s i + 1 为预测值,p为隐藏层节点数, v j 为隐藏层至输出层的连接权重, γ 为输出层的阈值。
RBF神经网络是一种具有多层前向网络类似结构且带有单隐藏层的三层前馈网络 [
ϕ i ( X ) = exp ( ‖ X − c i ‖ 2 − 2 σ i 2 ) , ( i = 1 , 2 , ⋯ , m ) (7)
式中 c i 为第i个隐藏层高斯函数的中心矢量,其与输入向量X维数相同, σ i 为第i个隐藏层高斯函数的宽度, ‖ ⋅ ‖ 为欧式范数,m为隐藏层中的节点数。以及从隐藏层到输出层 ϕ i ( X ) → Y 的线性映射:
Y = ∑ i = 1 m ω i ϕ i ( X ) (8)
式中 ω i 为隐藏层与输出层之间的连接权重,Y即为预测值。
小波神经网络是小波分析和BP神经网络相结合的产物 [
f ( x ) = exp ( − x 2 2 ) × cos ( 1.75 x ) (9)
其中隐藏层每个节点的输出为:
ϕ ( x i ) = f i ( ∑ i = 1 m ω i j x i − b j a j ) , j = 1 , 2 , ⋯ , p (10)
式中 a j 为小波函数的缩放因子, b j 为小波函数的平移因子,p为隐藏层的节点数。其预测模型为:
y = ∑ i = 1 p ω i ϕ ( x i ) (11)
式中 ω i 为隐藏层到输出层的连接权重。
用支持向量机来进行预测,与回归函数估计问题类似,不同的是支持向量机要找一个超平面 x ω + b = 0 使得支持向量到超平面的距离尽可能大,为解决线性不可分问题,需构造一个从低维空间到高维空间的映射,从而使得样本点在高维空间中线性可分,同时引入核函数,可以将高维空间中的复杂点积运算转化为低维空间的核函数计算。本文选择RBF核函数
K ( x , y ) = exp ( − γ ‖ x − y ‖ 2 ) (12)
最后所得的回归函数为:
f ( x ) = ∑ i = 1 n s v ( α i − α i * ) K ( x i , y j ) + b (13)
式中nsv为支持向量的个数, ( α i − α i * ) 为对应支持向量的系数,可以通过引入Lagrange函数求解一个二次规划问题求出,b为阈值,可以通过其中两个支持向量求出。SVM的输出是中心节点的线性组合,每个中心节点对应一个支持向量。
本文选用绝对误差Err,平均绝对百分误差MAPE和相对误差Perr作为预测精度的评测标准,其定义分别为:
E r r = x ( n ) − x p ( n ) (14)
M A P E = 1 N p ∑ n = 1 N P | x ( n ) − x p ( n ) x ( n ) | (15)
P e r r = ∑ n = 1 N p ( x ( n ) − x p ( n ) ) 2 ∑ n = 1 N p x 2 ( n ) (16)
式中, N p 表示训练数据集个数, x(n) 表示真实值, x p ( n ) 表示预测值。
本文的实验数据如图2所示,其来源于kaggle的网络流量预测比赛,该数据表示维基百科某文章在连续的803天内的页面点击量。本文的实验环境为spss v21.0以及matlab 2013a,先使用spss对网络流量进行预分析,找出并替换其中的异常值,然后采用matlab语言编写算法计算程序,并应用matlab构建了6个子预测模型,分别是Volterra滤波器模型、BP神经网络模型、RBF神经网络模型、小波神经网络模型、支持向量机模型以及极限学习机,将其预测结果作为组合ELM的输入构建组合预测模型,并对该网络流量时间序列进行预测对比实验。
从图2中可以明显看出,有一些点已经远离数据主体,这些离群点可能会成为强影响点,使得模型训练结果会偏向这些数据点,因此为了使得该预测更加准确可行,应该找出这些异常值并删除或替换。根据正态分布的 3 σ 原则,当标准化残差Z大于3或小于−3时,说明该值为异常值,本文用该异常值左右最近的两个非异常值的平均值替代该异常值。
图2. 网络流量数据(处理前原始数据和处理后数据对比)
本文首先将这些数据归一化处理为均值为0,方差为1的时间序列,其具体操作为:
x ′ ( i ) = x ( i ) − min ( x ( i ) ) max ( x ( i ) ) − min ( x ( i ) ) (17)
式中 x ( i ) 表示原始值, x ′ ( n ) 表示归一化值。然后利用C-C法确定了最优的延迟时间 τ 为4,嵌入维数m为2,对网络流量进行相空间重构,建立起预测模型的训练样本和实验样本。
本文的预测方式分为单一预测,子预测以及组合预测3类。首先将数据集的前750个数据作为6个子模型的训练集,后53个作为测试集,经各子模型训练得到各模型的单一预测结果,然后将数据集的前560个数据作为6个子模型的训练集,后243个作为测试集,经各子模型训练得到6个子预测结果,将这6个子预测结果及其平均值作为组合ELM的输入,前190个用作训练集,最后53个用作测试集,真实值作为组合ELM的输出,经组合ELM训练得到组合预测结果,然后对比分析组合预测以及6个子模型单一预测。同时由于各预测模型网络训练时的随机性,使得每次训练结果有所差异,为使得预测结果更有说服力,因此本文将各模型训练10次,10次预测结果的平均值作为各模型的最终预测结果。其中图3表示各单一预测和组合预测的结果对比,图4表示组合预测的结果及误差。
图3. 单一预测与组合预测对比
图4. 组合预测结果及误差
通过对上述仿真结果的分析,可以得出以下结论:
1) 从图3可以看出,6种子模型都具有较高的预测精度,均有预测值与真实值相等的情况存在,能够很好地反映网络流量变化的趋势和规律,而且预测误差也在比较小的误差范围内,从表1可以看出,6种子模型的均方百分误差分别为8.31%,9.46%,8.37%,8.42%,7.86%,7.88%都满足小于10%的预测精度,说明了子模型对网络流量时间序列信息的捕捉比较全面,具有很好的非线性拟合能力,同时进一步说明了这些子模型的有效性与优越性,这也为组合预测打好了良好的基础。
2) 从图4可以看出,组合预测结果已经基本与真实值走势吻合,其预测均方百分误差为5.51%,小于各子模型的误差,说明了本文的组合策略能够较好的综合各子模型所捕捉的序列信息,使得各子模型优势互补,因而得到一个更为精确的预测结果,也说明了本文的组合策略的有效性与可行性,可以为网络流量的预测提供一个较好的参考。
Volterra | BP | RBF | WNN | SVM | ELM | 组合ELM | |
---|---|---|---|---|---|---|---|
MAPE | 8.31% | 9.46% | 8.37% | 8.42% | 7.86% | 7.88% | 5.51% |
Perr | 0.0076 | 0.0101 | 0.0099 | 0.0081 | 0.0080 | 0.0075 | 0.0066 |
表1. 预测结果误差对比
海南省自然科学基金高层次人才项目(2019RC168)和海南省科协青年科技英才创新计划(QCXM201806)资助。
俞雪华,熊相真,王志刚. 基于ELM的非线性组合网络流量预测研究Research on Nonlinear Combined Network Traffic Prediction Based on ELM[J]. 应用数学进展, 2020, 09(05): 782-790. https://doi.org/10.12677/AAM.2020.95093