1. 引言
如今互联网飞速发展,网络规模不断扩大,网络结构更加复杂,用户数量不断增加,如何有效、合理地分配网络资源面临着巨大挑战。因此,对网络流量的预测就变得越来越重要。准确的网络流量预测对网络安全防护、拥塞控制、带宽资源分配等具有关键作用。
研究表明,网络流量数据具有混沌性,非线性性和自拟合性等特点 [1]。对于混沌性,使用相空间重构法可有效的提高预测的准确率。而对于非线性性,基于传统的线性预测并不能对其进行准确预测,如线性回归分析,马尔科夫模型等无法适应现代大规模网络流量数据的建模与预测,这些线性回归模型无法有效地提取网络流量的特征,需要提高预测精度。近年来学者们使用基于自相似流量的预测模型,有Volterra滤波器模型,BP神经网络模型,RBF神经网络模型,小波神经网络模型,支持向量机模型和极限学习机模型,得到了一些预测结果 [2] - [14]。然而单一的预测往往无法将时间序列的特征最大限度的提取出来,存在一定的局限性。为了不丢失其中有用的信息片段,本文提出对网络流量进行非线性组合预测 [15] [16]。结果显示,该组合预测各项评价指标均优于各子模型,可为网络流量的预测提供一个较好的参考。
2. 基于ELM的非线性组合预测模型构建
设网络流量时间序列为
,采用m种预测模型对其进行预测,得到预测结果
,其平均值为
,然后根据某种组合规则确定一个非线性映射函数
,则组合预测结果为:
(1)
不同的非线性映射函数所能提取的子模型信息具有很大的差异,因此选择一个能够综合利用各子模型有效信息的非线性映射函数对于网络流量预测具有重要意义,由于极限学习机具有优异的泛化性能,且能在保证学习精度的前提下比神经网络速度更快,所以本文使用极限学习机来确定该非线性映射函数,构建的非线性组合预测模型如图1所示。
极限学习机(ELM)是一种基于前馈神经网络的快速学习算法 [17],其主要特点是输入层与内隐层之间的连接权重和内隐层的阈值可以随机生成,而且在训练过程中不用对其进行调整,隐藏层和输出层之间的连接权重不需要迭代更新,而是通过解方程组方式一次性确定。对于一个具有L个内隐层节点的单层隐层神经网络,存在
和
,使得输出误差最小,即
(2)
式中
为激活函数,本文选用sigmoid函数,
为输入权重,
为输出权重,
为第i个隐层单元的偏差。该算法中,一旦随机确定了隐藏层的输入权重
和偏差
,就相应地确定了隐藏层的输出矩阵,输出权重
即可通过求解一个方程
得到,因此具有较快的学习速度。其具体步骤为:
Step 1:对于一列原始网络流量时间序列,本文先对其进行数据预处理,利用Q-Q图及标准化残差找出并替换掉其中的异常值。
Step 2:然后对其进行归一化处理,利用C-C法求出嵌入维数m和延迟时间
,并在相位空间中对原始数据进行了重构,得到各子模型的训练样本集和测试样本集。
Step 3:然后分别使用Volterra自适应滤波器预测模型、BP神经网络预测模型、RBF神经网络预测模型、小波神经网络预测模型、支持向量机预测模型以及极限学习机预测模型进行独立预测,反复训练网络10次,并取其平均值,得到6个子模型预测结果。
Step 4:将以上6个子模型预测结果及其平均值作为组合极限学习机的输入,反复训练网络10次,并取平均值得到最终的预测结果。

Figure 1. Nonlinear combined forecasting model
图1. 非线性组合预测模型
3. 相空间重构
现实生活中所测得的网络流量往往只是一列随时间变化的具有某种意义的观测值,它是众多因素综合作用的结果,具有一定的混沌性,相空间重构理论指出 [1] [18]:对于混沌系统,任何组件的演化都是由与之交互的其他变量决定的,因此,每个分量的发展过程中都包含了该系统相关分量的所有信息。对于一个一维网络流量时间序列
,n为时间序列样本数,通过延迟坐标法可以构造
个m维相空间矢量:
(3)
于是重构的相空间为:
(4)
式中m表示网络流量的嵌入维数,
表示网络流量的延迟时间,S为
维矩阵。
依据Takens嵌入定理 [19],对于一个维数为D的吸引子,当嵌入维数
时,重构的吸引子能保持原来吸引子的拓扑特性,即重构的相空间与原始网络流量时间序列是拓扑等价的。因此,在相空间重构中,选择适合的嵌入维数m和延迟时间
是非常重要的。当嵌入维数
时,重构的相空间将不能恢复原始奇异吸引子的特性,过大时,重构的相空间将引起过多的噪声,从而使得预测精度下降;当延迟时间
过小时,相邻的两点相关性太强而产生大量的冗余,使得预测精度下降,过大时,重构的相空间将丢失大量原始时间序列的特性。同时本文认为嵌入维数和延迟时间是相关的,因此采用C-C方法,通过计算嵌入窗宽
来求得嵌入维数和延迟时间。
4. 预测子模型构建
4.1. Volterra自适应滤波器预测模型
Volterra是一种非线性自适应FIR滤波器 [20]。由于网络流量的混沌和非线性,Volterra非线性系统函数能够利用本身的高阶矩信息,实现对网络流量的准确预测,本文利用Volterra级数展开公式,建立了网络流量的非线性预测模型,同时由于无穷级数在实际中的实现较为困难,因此本文采用二次截断m次求和,其预测模型为:
(5)
式中
为k阶Volterra核,其可用归一化最小均方自适应算法求解。
4.2. BP神经网络预测模型
BP神经网络是一种反向传递并且能够修正误差的多层映射函数,它解决了多层网络中隐含单元学习权的学习问题,能够以任意精度拟合任何连续非线性函数。本文采用三层网络结构:输入层、隐藏层和输出层。其算法主要思想分为信息正向传递和误差反向传播两大过程。本文使用的BP神经网络预测模型 [21] 为:
(6)
式中
为预测值,p为隐藏层节点数,
为隐藏层至输出层的连接权重,
为输出层的阈值。
4.3. RBF神经网络预测模型
RBF神经网络是一种具有多层前向网络类似结构且带有单隐藏层的三层前馈网络 [13] [22],它可以任意精度地逼近任意连续函数。构建RBF网络的关键在于构造从输入层到隐藏层
的非线性映射:
(7)
式中
为第i个隐藏层高斯函数的中心矢量,其与输入向量X维数相同,
为第i个隐藏层高斯函数的宽度,
为欧式范数,m为隐藏层中的节点数。以及从隐藏层到输出层
的线性映射:
(8)
式中
为隐藏层与输出层之间的连接权重,Y即为预测值。
4.4. 小波神经网络预测模型
小波神经网络是小波分析和BP神经网络相结合的产物 [14],它既包含了神经网络良好的训练能力和泛化能力,也具有小波函数良好的时频特性。其网络结构与BP神经网络结构相一致,由输入层、隐层和输出层组成,只是将BP神经网络中隐藏层的激励函数Sigmoid换成了小波函数,本文所选择的小波函数为Morlet函数:
(9)
其中隐藏层每个节点的输出为:
(10)
式中
为小波函数的缩放因子,
为小波函数的平移因子,p为隐藏层的节点数。其预测模型为:
(11)
式中
为隐藏层到输出层的连接权重。
4.5. 支持向量机预测模型
用支持向量机来进行预测,与回归函数估计问题类似,不同的是支持向量机要找一个超平面
使得支持向量到超平面的距离尽可能大,为解决线性不可分问题,需构造一个从低维空间到高维空间的映射,从而使得样本点在高维空间中线性可分,同时引入核函数,可以将高维空间中的复杂点积运算转化为低维空间的核函数计算。本文选择RBF核函数
(12)
最后所得的回归函数为:
(13)
式中nsv为支持向量的个数,
为对应支持向量的系数,可以通过引入Lagrange函数求解一个二次规划问题求出,b为阈值,可以通过其中两个支持向量求出。SVM的输出是中心节点的线性组合,每个中心节点对应一个支持向量。
5. 模型评价标准
本文选用绝对误差Err,平均绝对百分误差MAPE和相对误差Perr作为预测精度的评测标准,其定义分别为:
(14)
(15)
(16)
式中,
表示训练数据集个数,
表示真实值,
表示预测值。
6. 实证分析
6.1. 实验环境及数据来源
本文的实验数据如图2所示,其来源于kaggle的网络流量预测比赛,该数据表示维基百科某文章在连续的803天内的页面点击量。本文的实验环境为spss v21.0以及matlab 2013a,先使用spss对网络流量进行预分析,找出并替换其中的异常值,然后采用matlab语言编写算法计算程序,并应用matlab构建了6个子预测模型,分别是Volterra滤波器模型、BP神经网络模型、RBF神经网络模型、小波神经网络模型、支持向量机模型以及极限学习机,将其预测结果作为组合ELM的输入构建组合预测模型,并对该网络流量时间序列进行预测对比实验。
6.2. 数据预处理
从图2中可以明显看出,有一些点已经远离数据主体,这些离群点可能会成为强影响点,使得模型训练结果会偏向这些数据点,因此为了使得该预测更加准确可行,应该找出这些异常值并删除或替换。根据正态分布的
原则,当标准化残差Z大于3或小于−3时,说明该值为异常值,本文用该异常值左右最近的两个非异常值的平均值替代该异常值。

Figure 2. Network traffic data (comparison of original data before processing and data after processing)
图2. 网络流量数据(处理前原始数据和处理后数据对比)
6.3. 预测结果及分析
本文首先将这些数据归一化处理为均值为0,方差为1的时间序列,其具体操作为:
(17)
式中
表示原始值,
表示归一化值。然后利用C-C法确定了最优的延迟时间
为4,嵌入维数m为2,对网络流量进行相空间重构,建立起预测模型的训练样本和实验样本。
6.3.1. 组合预测结果
本文的预测方式分为单一预测,子预测以及组合预测3类。首先将数据集的前750个数据作为6个子模型的训练集,后53个作为测试集,经各子模型训练得到各模型的单一预测结果,然后将数据集的前560个数据作为6个子模型的训练集,后243个作为测试集,经各子模型训练得到6个子预测结果,将这6个子预测结果及其平均值作为组合ELM的输入,前190个用作训练集,最后53个用作测试集,真实值作为组合ELM的输出,经组合ELM训练得到组合预测结果,然后对比分析组合预测以及6个子模型单一预测。同时由于各预测模型网络训练时的随机性,使得每次训练结果有所差异,为使得预测结果更有说服力,因此本文将各模型训练10次,10次预测结果的平均值作为各模型的最终预测结果。其中图3表示各单一预测和组合预测的结果对比,图4表示组合预测的结果及误差。

Figure 3. Comparison between single forecast and combined forecast
图3. 单一预测与组合预测对比

Figure 4. Combined prediction results and errors
图4. 组合预测结果及误差
6.3.2. 结果分析
通过对上述仿真结果的分析,可以得出以下结论:
1) 从图3可以看出,6种子模型都具有较高的预测精度,均有预测值与真实值相等的情况存在,能够很好地反映网络流量变化的趋势和规律,而且预测误差也在比较小的误差范围内,从表1可以看出,6种子模型的均方百分误差分别为8.31%,9.46%,8.37%,8.42%,7.86%,7.88%都满足小于10%的预测精度,说明了子模型对网络流量时间序列信息的捕捉比较全面,具有很好的非线性拟合能力,同时进一步说明了这些子模型的有效性与优越性,这也为组合预测打好了良好的基础。
2) 从图4可以看出,组合预测结果已经基本与真实值走势吻合,其预测均方百分误差为5.51%,小于各子模型的误差,说明了本文的组合策略能够较好的综合各子模型所捕捉的序列信息,使得各子模型优势互补,因而得到一个更为精确的预测结果,也说明了本文的组合策略的有效性与可行性,可以为网络流量的预测提供一个较好的参考。

Table 1. Error comparison of prediction results
表1. 预测结果误差对比
基金项目
海南省自然科学基金高层次人才项目(2019RC168)和海南省科协青年科技英才创新计划(QCXM201806)资助。
NOTES
*通讯作者。