1.一种基于分布式的网络切片故障检测方法,其特征在于,该方法具体包括以下步骤:S1:构建基于联邦学习的网络切片故障检测架构;
S2:建立基于CNN‑GRU网络的无监督故障检测方法;
S3:在联邦学习参数上传时,采用top‑k梯度压缩机制进行模型压缩;
S4:采用适用联邦学习的自适应优化器进行全局模型聚合。
2.根据权利要求1所述的网络切片故障检测方法,其特征在于,步骤S1中,构建的基于联邦学习的网络切片故障检测架构,具体包括:本地训练客户端:一条提供服务的完整服务功能链(Service Function Chain,SFC)由多个虚拟网络功能(Virtual Network Functions,VNFs)有序连接组成,这些组成SFC的VNFs分别部署在多个通用物理服务器上,将这些为一条SFC中的VNFs提供资源的多个物理服务器作为参与联邦学习的本地训练客户端;在各客户端处,基于各自的本地数据集分布式的运行故障检测模型CNN‑GRU,并根据联邦学习更新机制上传各自的模型到全局参数聚合器;
全局参数聚合器:以网络切片管理器作为联邦学习的全局参数聚合器,聚集来自同一SFC中各VNFs在各物理节点上的分布训练的故障检测模型参数,并进行全局模型更新;
本地与全局模型参数的更新机制:采用联邦平均方法作为联邦学习框架的更新机制。
3.根据权利要求2所述的网络切片故障检测方法,其特征在于,步骤S1中,在全局参数聚合器处,从所有分布式客户端上聚合的全局损失函数定义为:其中,Fi(w)为单个客户端上数据样本集合的损失函数,Di为第i个客户端上对VNF性能数据采集得到的本地数据集,|Di|为第i个客户端的本地数据集大小,N为物理服务器节点的数量, 表示所有客户端数据集的总大小。
4.根据权利要求3所述的网络切片故障检测方法,其特征在于,步骤S2中,全部模型的聚合规则为:
其中,w(t)表示在第t轮全局聚合时期的全局聚合模型,wi(t)表示在第t轮本地训练过程中得到的本地模型参数;
*
在联邦学习中,模型的学习问题是找到最优的模型参数w使得全局损失函数F(w)最小,即:
5.根据权利要求1所述的网络切片故障检测方法,其特征在于,步骤S2中,建立基于CNN‑GRU网络的无监督故障检测方法,具体包括以下步骤:S21:对历史VNF的性能观测数据进行预处理,将经过预处理后的时间序列数据输入到CNN‑GRU网络进行模型训练;
S22:利用CNN提取正常时间序列数据的细粒度特征;
S23:将CNN提取的特征输入到堆叠的GRU网络中进行时间序列预测模型的训练;
S24:在正常时间序列测试集上,计算真实时间序列与CNN‑GRU网络预测时间序列之间的重构误差,构建重构误差分布;
S25:计算异常分数,预测是否发生异常,测试模型性能。
6.根据权利要求5所述的网络切片故障检测方法,其特征在于,步骤S24具体包括:通过L2范数计算CNN‑GRU预测时间序列与真实时间序列之间的重构误差,并以最小化均方重构误差为优化目标来训练本地模型;并使用正常验证集vN1序列中各点的误差向量来估计正态分布N(μ;σ)的参数μ和σ。
7.根据权利要求6所述的网络切片故障检测方法,其特征在于,步骤S25具体包括:对于任意点x(t),计算其异常分数;根据下一时间窗的实际时间序列与CNN‑GRU生成的下一时刻预测时间序列的重构误差来计算故障检测分数A,通过异常分数是否大于阈值τ,来判定预T ‑1
测时间序列是否存在故障;异常分数计算表达式为:A(t)=(e(t)‑μ)σ (e(t)‑μ),其中e(t)为时刻t处的重构误差向量;
通过将正常验证集vN2和异常验证集vA输入到训练好的CNN‑GRU时间序列重构模型中,
2 2
通过尝试不同的阈值τ,并预测数据是否异常,使得Fβ=(1+β)×P×R/(βP+R)最大化来确定最佳的异常分数阈值τ,Fβ为衡量机器学习模型性能的指标,P为精度,R为召回率,β为权衡精度P和召回率R之间重要性的参数。
8.根据权利要求1所述的网络切片故障检测方法,其特征在于,步骤S3中,采用top‑k梯度压缩机制进行模型压缩,具体包括以下步骤:S31:客户端在本地训练模型时采用梯度修剪机制;
S32:每个客户端执行梯度压缩过程以压缩梯度并将稀疏梯度即仅将绝对值大于阈值的梯度传输到全局聚合器上传到全局聚合器处;未达到阈值的本地梯度送至缓冲区累积,当本地梯度累积大于阈值时,客户端会将其缓冲区中的其余本地梯度发送服务器,并将缓冲区清零。
9.根据权利要求1所述的网络切片故障检测方法,其特征在于,步骤S4中,采用适用联邦学习的自适应优化器进行全局模型聚合,具体包括以下步骤:S41:本地训练过程中,对联邦学习框架中上传的参数进行更改,由原始的模型参数更改为上传模型参数的伪梯度;
S42:全局聚合过程中,采用自适应优化器Adam进行伪梯度的更新。