GAN-TM:一种基于生成对抗网络的流量矩阵推断机制

2022-03-16 03:58章乐贵邢长友
计算机技术与发展 2022年2期
关键词:卷积矩阵损失

章乐贵,邢长友,余 航,郑 鹏

(陆军工程大学 指挥控制工程学院,江苏 南京 210007)

0 引 言

流量矩阵(traffic matrix,TM)是网络内源(origin)节点和目的(destination)节点对之间流量的具体描述,矩阵中的每个元素都表示某一源和目的对之间的流量大小。作为网络态势的一种重要表现形式,流量矩阵能够给网络管理员提供许多关于当前网络状态有价值的全局信息,是解决网络中很多问题不可或缺的组成部分,如网络规划、流量计费、流量工程、负载均衡、异常检测和网络性能分析等。由于流量矩阵在解决网络问题中的极端重要性,近二十年来,关于流量矩阵的研究受到了国内外学者的高度关注,各类流量矩阵测量与推断技术不断发展。

虽然准确获取流量矩阵对网络运营者来说至关重要,各类研究人员也对如何准确获取流量矩阵提出了许多不同的方法,包括统计方法、最优化方法和时间序列方法等,但现实条件下想要准确获取流量矩阵始终存在困难。现有的流量矩阵测量方法主要可分为直接测量法和估计推断法。由于当前计算机网络快速发展,网络规模不断扩张,网络结构日趋复杂,通过部署大量节点直接进行测量的方法既受限于缺乏有效的测量框架,又因测量耗费无法承受逐渐失去了其现实意义。而对于现有的利用流量矩阵其内在联系进行分析计算的推断法而言,又因流量矩阵推断问题在线性求解上固有的高度病态特性难以有效解决而时常陷入困难。

1 背 景

目前在相关领域已经有学者做出了相当有创新性的一些工作,如Luong等人提出了一种基于监控链路流量吞吐量的解决方案和一种针对控制平面的新转发算法。它基于SDN控制器的两个模块,吞吐量监控器模块着重于穿过交换机的数据包和字节数,分组转发模块实现转发算法, 吞吐量监控器模块提供的统计信息可供任何监控应用程序使用。Silv等人提出了OFQuality,一种基于OVSDB协议的QoS配置模块,该模块得益于TM的生成来管理OF交换机上的QoS策略。Y. Tian等提出了一个新的基于SDN的IP网络中TM估计的框架。该项工作表明,如果流量的流量可以从网络中的其他流量中获取,则为此流量添加新条目以进行流量测量不会提供有关TM的新信息。除此之外,胡煜雪也同样基于SDN网络进行了相关研究,提出了基于压缩感知的流量估计算法,该算法的有效实现需要满足RIP原则以及稀疏信号的前提条件。同样使用压缩感知方法的还有M. Malboubi等人,通过建立iStamp机制,使用压缩好的聚集流量测量结果和

K

个最有用的流量来推断TM。其中,iStamp将流表分为两部分:第一部分用于汇总测量,第二部分用于对选定流进行逐流监视。使用这两个不同的部分,iStamp可以估算流量矩阵。同时,D Jiang等人开发了一种算法,可以从采样的流量跟踪中以细粒度的时间估计和恢复网络流量矩阵。他们的算法基于分形插值,三次样条插值和加权几何平均算法。王昌钰从矩阵本身出发,使用欧氏距离作为最优化度量,解决了流量矩阵中的病态性问题,但并未考虑网络流量矩阵本身的时间性和空间性。此外,Azzouni和Pujolle提出了NeuTM,它是基于长期短期记忆递归神经网络的TM预测框架。实验证明,NeuTM可以使用历史数据来训练神经网络以预测未来的TM。在机器学习领域,Choudhury等人描述了机器学习在SDN赋能的IP /光网络中用于TM预测的应用。在他们的工作中,使用机器学习来对流量矩阵的所有元素进行短期和长期预测是一未来的趋势。2014年Ian Goodfellow等人提出了生成对抗网络(generative adversarial networks,GAN),给出了生成对抗网络的框架及理论收敛性分析。生成对抗网络是一种无监督机器学习的人工智能算法,通过两个神经网络在二人零和博弈中相互竞争实现。生成对抗网络包括两个子网络模型,一个是生成网络,也叫生成器(generator,

G

),它的作用是使生成的数据尽可能与真实数据的分布尽可能一致;另一个是判别网络,也叫判别器(discriminator,

D

),它的作用是在生成的数据与真实的样本数据之间能够做出正确判断,可以理解为一个二分类器。GAN的训练过程可以理解为一个极小极大化博弈过程,生成器的模仿能力与判别器的鉴别能力二者相互促进、共同进步,最终达到一个纳什均衡,使得生成器对原数据分布的模拟近乎逼真。

根据GAN网络对于数据分布强大的学习能力,已经有许多基于GAN进行数据恢复的研究取得了重大进展,因此该文针对如何将GAN用于流量矩阵推断进行了研究。

考虑到流量矩阵的低秩性,其内部存在大量的冗余,一些研究将流量矩阵估计推断问题转化成压缩感知问题来进行解决。除了这些技术之外,基于张量的方法,在多维空间的矩阵推断中,已被证明是一种用来估算缺失数据更有效的工具。但是,这些完成方法并未明确说明异常值,并且可能在数据严重损坏的情况下导致性能显著下降。另一方面,由于流量矩阵内部各元素之间存在强相关性,为了尽可能地挖掘、利用流量矩阵内部这一空间特性,该文使用了卷积神经网络对生成器、判别器两大神经网络进行了改进。根据相关研究表明,理论上深度神经网络能够实现任意功能的函数。为了使模型具有更强的学习能力,尽可能模拟出真实数据的分布,该文使用深度卷积网络作为GAN结构中生成器和判别器的架构。通过设置大小不同的卷积核,获取不同大小范围感受野的特征,可以更好地学习到数据分布。使用深度卷积神经网络的另一个优势在于能有效利用流量矩阵的低秩特性,减少中间变量和参数的设置,进一步优化网络结构。

尽管GAN有着许多优秀的特性,但是与此同时也陷入了和其他机器学习方法相同的问题——完整数据依赖性。原生GAN在训练过程中需要包含完整数据的数据集进行辅助,这意味着需要预先获取大量整个目标流量矩阵——包括矩阵中每个位置上元素的历史数据,以此完成对损失函数的构建,而构建合理的损失函数是对模型参数进行训练优化的基础,这样一来,就使得GAN一旦离开了完整的数据集将无法工作。事实上,对于现代大型网络而言,想要获取完整的流量矩阵数据是一件几乎不可能的事情,包括该文所研究的流量矩阵推断问题,同样也是为了更好地获得流量矩阵数据。完整流量矩阵数据的缺乏,成为了研究推进的瓶颈。为了消除模型的完整数据依赖,该文引入了掩码矩阵作为构建损失函数的依据,并以此为依据获得了优化函数。这种做法有效地避开了完整数据依赖问题,使得模型可以在没有任何完整数据的前提下解决流量矩阵推断的机器学习解法,降低了问题解决的门槛和耗费。

2 方法建模

生成对抗网络(GAN)的数学模型描述如下:

V

(

G

,

D

)=

E

[log

D

(

x

)]+

E

[log(1-

D

(

x

))]

(1)

其中,

x

表示输入判别器的向量,

E

表示期望值,

P

表示真实数据的分布,

P

表示

G

生成数据的分布。这个式子的好处在于,固定生成器(

G

)之后,max

V

(

G

,

D

)就表示

P

P

之间的差异,只需要找到一个参数最“完美”的

G

,使得它的最大值最小化,也就是

P

P

两个分布之间差异最小,即收敛在:

(2)

假设目标网络有

m

个节点,则该网络中共有

m

个OD流,它的流量矩阵应该是一个

m

×

m

的方阵,因此假设

A

是该网络中第

i

个节点到第

j

个节点之间的OD流,目标网络的流量矩阵就可以表示为:=(

A

)×

(3)

接下来引入掩码矩阵(mask matrix,MM)的概念。文中掩码矩阵的作用是标明矩阵中各个位置元素是否有真实值的一个01矩阵,掩码矩阵的规模与对应的流量矩阵一致,文中掩码矩阵同样也是一个

m

×

m

的方阵。其中,如果

A

的数据是真实测得的数据,那么对应的

M

=1;否则如果

A

的数据是缺失的,那么相应的

M

=0,即:

(4)

模型的基本架构如图1所示。

图1 模型基本架构

在图1所示的模型中,

G

D

分别是生成器和判别器。为只含有部分测量数据信息的缺失矩阵,根据矩阵,由公式(4)可以获得该流量矩阵对应的掩码矩阵,二者共同作为生成器的输入。生成器

G

利用已知的和作为输入,输出作为对原矩阵的一个推断结果。是一个提示矩阵,由生成,含有部分信息。作为一个辅助输入,用于辅助判别器

D

判别其主输入中各个元素是否是原始数据,是原始输入的打个标记“1”,不是的打个标记“0”,从而获得一个对的估计。

G

的能力越强,生成的就越接近于真实情况,

D

的判别结果就越容易判为全真(即

M

为全1矩阵),这显然是在相对条件下弱化了

D

,因此与

D

努力判别出

M

真实情况构成博弈,在训练过程中正是利用了这一点使得两者的能力都不断得到强化,最终到达平衡时获得一个强大的生成器

G

G

能够对原数据中缺失的部分以较高的准确率推断出来。

图1中的G_loss和D_loss分别是生成器和判别器的损失函数,通常被用于优化模型参数,同时也被用于检验生成器/判别器能力强弱。

通过训练

D

来最大化正确预测的概率,训练

G

来最小化

D

预测的概率。定义要量化的

V

(

D

,

G

)为:

V

(

D

,

G

)=

E

,,[log

D

(,)+(1-)log(1-

D

(,))]

(5)

根据Goodfellow在原始GAN中的推导,目标函数可以写成:

(6)

2.1 生成器

生成器的作用是利用所有已知的信息,学习含有缺失的流量矩阵的数据分布,根据学习成果对原矩阵缺失的数据进行填充,使得输出的流量矩阵接近于真实网络中的情况。在该文所构建的模型中,生成器的输入为原流量矩阵及其对应的掩码矩阵。但并不是直接进入生成器中开展运算的,需要经过一个填充过程,将其缺失部分元素用随机噪声进行填充,即:=⊙+⊙(1-)

(7)

其中,为规模和一致的随机生成的噪声。图2中,“G_”表示模型参数,在本模型中共设置了三个卷积层,“G_w2”,“G_w3”,“G_w4”分别为相对应的三个卷积核,卷积核大小分别为 “7×7”,“5×5”和 “3×3”。“G_b1”,“G_b2”,“G_b3”,“G_b4”分别表示各层的偏置。将最后一个卷积层输出的结果矩阵命名为,为保证原有数据不被更改,以免引入新的误差,在最后的输出层将原始数据重新赋回,即:

图2 生成器(G)结构

=⊙+⊙(1-)

(8)

最终输出的就是对原数据的一个推断结果。

2.2 判别器

判别器的作用是利用输入数据(,)所提供的信息,判断矩阵中哪些元素是矩阵中原本就有的真实数据,哪些是由生成器生成的,判断的结果用一个掩码矩阵

M

来表示,因此也可以认为是对掩码矩阵中位置部分的推断。图3中,“D_”表示模型参数,在本模型中共设置了三个卷积层,“D _w2”,“D _w3”,“D _w4”分别为相对应的三个卷积核,卷积核大小分别为 “7×7”,“5×5”和 “3×3”。“D _b1”,“D _b2”,“D _b3”,“D _b4”分别表示各层的偏置。将最后一个卷积层输出的结果矩阵命名为

M

,即判别器的输出。

图3 判别器(D)结构

2.3 模型训练

在信息论中,香农(Shannon)提出使用交叉熵(cross entropy)来度量两个分布之间的差异程度,给出

x

,

y

间的交叉熵公式:

F

(

x

,

y

)=∑[

x

log

y

+(1-

x

)log(1-

y

)]

(9)

该文使用交叉熵函数来计算损失函数,结合公式(5)和公式(6),可以得到判别器的损失函数:

D

=

E

[

F

(,)]

(10)

考虑生成器的损失函数时,急需要使生成器最后一次卷积得到的结果中原数据保留位置的元素尽可能保持不变,又要使生成器生成的部分不被判别器判别出来。

对于原有数据而言,在图2中,经过生成器

G

处理之后输出的应该尽可能使原始数据保持不变,和之间的差异带来的损失可以用均方差来体现,这个损失同时也是衡量整个模型准确率的关键指标:

(11)

从博弈的角度出发,

G

要尽量使

D

不能判别出来哪些数据是由

G

生成的,因此这部分的损失可以由图3中和的交叉熵来表示:

G

2=∑(1-)log(1-)

(12)

将关于

G

的两个误差加权和作为生成器的损失函数:

G

=∑(1-)log(1-)+

(13)

其中,

λ

是一个正常数,用于平衡生成器损失函数所考虑的两个方面损失相互之间的重要性。

3 实验与分析

实验所使用的数据集来源于美国Abilene骨干网络上的真实数据,为了便于计算分析,实验中所使用的数据均已做归一化处理。在Abilene骨干网络中,共有12个IP网络节点,因此对应的流量矩阵规模为“12×12”(即

m

=12)。为了正确测试模型的泛化性能,从数据集中随机抽取10%作为验证集,剩余90%作为训练集。为验证模型在流量矩阵推断上的表现,在实验中对模型参数配置如下:将数据缺失率设为20%;每轮训练128个样本,即mini_batch = 128,每训练完10个mini_batch计算一次误差和损失函数;训练过程中学习率设为3×10;计算G_loss1所用的权值

λ

=10;掩码矩阵对提示矩阵的提示率为0.9。图4显示了在2 000轮次训练过程中本模型进行流量矩阵推断的误差,即公式(11)计算的

G

_loss1。图4表明,在整个训练过程中,

G

_loss1在训练开始阶段下降明显,在500轮训练后逐渐趋于平稳,约1 000轮次的训练后

G

_loss1达到约0.10,随后开始围绕均衡点震荡。由此可见,模型在无完整数据的条件下,对于缺失流量矩阵的推断仍然能够保证较高的准确率。

图4 训练过程中模型对流量矩阵推断误差曲线

图5显示了整个训练阶段中判别器和生成器的损失函数变化情况。根据图5可以看到,在训练开始阶段(0~250轮),判别器和生成器的损失都在不断减小,

图5 训练过程中判别器(D)/生成器(G)损失曲线

这表明两者的能力都在不断增强。而后判别器的损失继续下降,但生成器的损失开始上升,这是由于生成器在计算损失时同时考虑了流量矩阵和掩码矩阵两个方面的损失所产生的,到模型最后阶段,两个损失函数都趋于稳定,模型训练完成。

图6显示了在其他参数保持不变的情况下,在1 000轮次的训练过程中,当缺失率取不同的值时的模型误差曲线(G_loss1)。根据图6可以得出结论,测量得到的流量矩阵数据信息越多,模型的误差就越小,反之则误差越大,这与主观经验是完全一致的。如图6所示,当缺失率低于30%时,模型都能够以较高的准确率(

G

_loss1≈0

.

10)得到推断结果。当缺失率高于50%时,模型的推断结果开始逐渐变差,当缺失率达到90%时,模型的推断功能将彻底失效,无法再起到任何作用。

图6 不同缺失率下的推断误差

根据实验验证可以得出结论,本模型具备在缺少完整数据的情况下,仅仅利用缺失的流量矩阵数据就能以较低的误差水平推断得到完整的流量矩阵。并且本模型在缺失率低于50%的条件下都能有较好的表现,在缺失率低于90%的条件下也能起到一定的效果,但无法保证较低的误差水平。

4 结束语

该文研究了如何在缺少完整流量矩阵数据集的条件下,解决流量矩阵推断问题,并结合Goodfellow教授提出的生成对抗网络技术,给出了一种新的推断方法,建立了基于掩码矩阵评估的卷积生成对抗网络(BM-DCGAN)模型。通过利用深度卷积神经网络强大的建模功能,实现了在不使用完整流量矩阵数据的前提下,仅利用测量获取的部分流量矩阵数据,在模型的辅助下将位置部分的流量矩阵数据推断出来。该模型可以实现在容忍低于30%数据缺失的情况下,以0.10左右的误差将缺失的流量矩阵还原。

与以前的方法相比,该方法具有以下优势:

(1)无需大量的完整数据用于训练,减少了测量耗费,降低了网络测量成本,从而降低了问题解决的代价,使模型更具有实际意义;

(2)使用卷积神经网络,利用卷积特性,有效捕捉了流量矩阵的空间特征;

(3)模型收敛速度快,推断误差小,实现了高效使用的目的。

猜你喜欢
卷积矩阵损失
洪涝造成孟加拉损失25.4万吨大米
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
基于深度卷积网络与空洞卷积融合的人群计数
两败俱伤
多项式理论在矩阵求逆中的应用
卷积神经网络概述
矩阵
矩阵
矩阵