基于深度学习的网络故障诊断
2020-07-29赵明谢萍赵志军武孟
赵明 谢萍 赵志军 武孟
摘要:针对故障具有层次性、传播性、相关性和不确定性导致的故障诊断和检测难的问题,基于卷积神经网络对网络运行过程中的日志数据进行数据预处理、特征提取、参数约简和分类训练,作为网络故障诊断研究的训练与测试数据集,对其进行预处理和特征提取。通过卷积神经网络进行训练得到故障诊断模型,进而对网络诊断原始数据进行诊断与故障定位。附实例进行验证,实现了特定网络环境下基于单一故障样本的故障诊断。
关键词:卷积神经网络;故障诊断;特征提取;根源故障;样本集
中图分类号:TP393文献标志码:A文章编号:1008-1739(2020)09-64-4
0引言
通信网络上运行的业务越来越多样化,对业务质量的要求也越来越高,与此同时网络出现故障的概率也随之增加,网络故障的检测和处理效率直接影响网络是否能正常运行及业务服务质量。故障诊断是网络运维管理中非常重要且难度极大的研究课题之一,大数据及人工智能等新技术的发展也为故障诊断和预测提供了技术支撑。
传统的网络故障诊断大多依赖于网络设备的主动告警上报,网络复杂性的增加和所承载的业务的多样化,导致越来越多的网络故障现象与故障发生的根源差异很大,并且网络故障影响范围越來越大且对业务质量造成影响,需要依靠专业运维人员进行故障排查和关联分析,时效性差,无法进行故障的事前预测,因此将人工智能应用到网络故障的检测预测具有重大意义。
本文在基于机器学习[1-3]的智能故障诊断等研究成果的基础上,针对原始的人工神经网络模型存在学习时间长和网络规模大的缺点进行改进,构建基于深度神经网络的智能故障诊断架构。
1深度学习在故障检测中的应用
1.1故障诊断难点
故障诊断是根据呈现的故障现象进行分析和定位故障发生的根本原因,一般包括故障检测、故障定位和故障确认测试3个步骤。故障检测是根据所采集故障现象初步判断网络位置以及原因;故障定位根据初步判断的故障位置和原因结合历史告警数据,基于深度学习模型,分析该故障的根源故障、关联关系以及影响范围;故障确认测试也被称为故障确认,是对故障定位和原因基于多种手段进行精准定位和影响范围的精准确定。
故障具有以下特点:
①层次性:通信网络的7层分层架构和复杂拓扑连接关系,导致网络故障发生位置和影响范围也具有层次性。
②传播性:故障具有纵向和横向传播性。纵向传播是指网络的分层,即物理层的故障可能会触发或引起数据链路层、网络层和应用层发生故障;横向传播是指故障在链路层由一点故障引发相关联的链路故障。
③相关性:故障可能呈现多种故障现象,故障现象也可能对应多个故障位置或故障根源。
④不确定性:网络故障的发生是随时、随地和不确定的,具有随机性、模糊性和某些信息的不确定性。
故障的上述特点导致网络故障数据模糊和标注困难,而对于机器学习来说,数据决定一切。因此故障预测的最大的难点是需要大数量、高质量的网络运行数据。
1.2基于深度学习的故障诊断原理
针对故障的特点及故障检测的最大难点,深度学习为网络故障诊断技术提供了新思路,基于深度学习的网络故障诊断方法将深度神经网络模型引入到故障诊断系统中,深度神经网络模型对已知的数据信号和异常模式进行训练,得出数据信号与异常模式之间蕴含的关系,并对网络诊断原始数据进行处理与故障定位。当整体系统发生变化,神经网络模型也通过继续训练自适应调整参数。
基于深度学习[4]的网络故障诊断方法能够从网络状态数据中自动输出潜在的故障现象与特定故障之间的映射,不需要过多的人为干预,因此可以应用到复杂网络的故障诊断。当网络环境拓扑或网络环境参数发生变化时,可以改变神经网络模型中的对象参数进行训练或在线学习,以便于完成故障诊断的更新和同步。当训练和测试结束后,模型自动输出故障诊断结果。
2基于深度卷积神经网络的故障诊断
2.1卷积神经网络模型
卷积神经网络[5-7]通过模拟生物自然视觉认知机制进行数据分析,主要包括输入层、卷积层、池化层和全连接层。数据预处理后输入层得到词向量,词向量达到卷积层后,经过卷积运算完成局部特征的提取;卷积层的输入由前一层的局部区域与权重决定,每一层的输出作为下一层神经元的输入,多层卷积运算将每一层的卷积运算结果进行非线性变换;池化层对卷积层的输出进行二次抽样,以减小输出特征的总量并筛选出最具有代表性的特征;经过输入层、卷积层和池化层的训练和提取后,全连接层完成故障分析和诊断,输出故障诊断结果。
①输入层:将预处理的数据进行字符化操作转换,经过Skip-gram型训练,输入层输出词向量。假设构造的故障样本中包含个词,是样本中的第个词所对应的词向量,卷积神经网络的输入层是由个维向量组合而成的二维数据矩阵。如果预处理的数据样本长度小于,需要对数据向量补零操作,使其长度达到规定的要求。
③池化层:主要对卷积层输出的局部特征图进行最大池化操作,选取卷积层抽取的若干个特征值中最大的,即对网络故障诊断结果影响最大的因素值作为池化层的特征值,最大特征值的提取也会减少或增加输入参数的数量,使得模型的适应性更强。
④全连接层:将卷积层中得到的特征图,经过池化层的最大池化操作后,提取出对故障诊断影响最大的若干个局部最优特征,再通过全连接层映射到类别维度的大小,并通过Softmax归一化得到每个类别的概率,从而能够综合考虑提取出的所有局部特征,完成网络故障诊断。
2.2卷积神经网络的故障诊断流程
对收集的原始数据进行预处理和清洗等操作,输入卷积神经网络模型进行故障诊断测试,步骤如图1所示。
①数据预处理:搜索数据中的空字符、重复字符、格式错误数据及非法标注字符等不符合要求的“脏数据”,为数据分析和特征提取做准备。
②特征提取:对清洗去重后的数据样本进行分词,扫描数据样本中出现的所有单词字符,根据字符特征形成词典。
③向量转换和特征提取:使用矢量方法将词典中的每一个单词转换为向量形式,即将普通字典单词转换为向量字符。模型实际训练时,神经网络层的训练与卷积神经网络训练同时进行,属于非人工参与的特征自提取。
④故障预测:进行时间维度和空间维度数据训练,将训练结果输入分类模型进行进一步训练,最后输出故障检测结果。
3实例验证
以运维管理系统采集的承载网络故障数据为基础试验数据,进行基于卷积神经网络的故障诊断,并对所设计的诊断模型即深度学习神经网络进行验证性实验。从仿真试验环境及试验步骤和结果两方面进行验证。根源故障如表1所示。
(1)仿真驗证环境
①平台软件参数:ubuntu16.04,python3.6,keras,tensorflow,numpy,pandas。
②实验仿真参数:观测时间窗口=20 min,预测时间窗口为1 min。
(2)试验步骤和结果
①数据预处理:一个样本是一组故障告警的合集。因独热编码相加后不失去原本语义的特点,将一个样本中的所有故障告警的独热编码相加。所生成的新的向量,包含原本各个独立的故障告警信息。通过上述方法,将样本处理成神经网络可接受的输入向量。将输入向量输入到神经网络中,与每个神经元的权重向量做内积,取其中内积最大者为获胜神经元。
选取3个已知故障类型的样本Z1,Z2,Z3。3个样本都只含有一种故障,分别是F1,F3,F5。除这3种故障外,3个样本均不含有F6故障。将3份样本输入已经训练完毕的算法程序中,输出结果如表2所示。
从表2中可以看出,样本Z1,Z2中与对应故障(F1,F3)相对的值远低于其他3项,而Z3对应故障虽为最小值,但与其他故障相差并不明显。对样本Z3的输入数据进行分析发现,Z3的样本中含有F1故障作为噪音导致的。同样可以看到,3个样本对于故障F6的值都是最大的,从这方面可以看出F6确实不包含在Z1,Z2,Z3中。而输出值这么大的可能原因是F6的故障特征与F1,F3,F5的区别较大。
换取不同样本,分别对根源故障F1(Z4,Z5,Z6,Z7),故障F3(Z8,Z9,Z10,Z11),故障F5(Z12,Z13,Z14,Z15)与F6进行对比实验,结果如表3所示。
对于同一个根源告警的4次实验,输入的噪音逐步增多。可以从表中看到,随着噪音的增大,对应根源告警的故障评价指数也随之变大。对于噪音最大的Z7,Z11,Z15的情况,可以看到其取值已经大过0.2,但是程序仍能鉴别出单独故障,证明本算法对于单故障的诊断有较好的效果。
将输入样本Z1~Z15输入到SOM神经网络实验算法中,其统计结果如表4所示。
从统计结果可以看出,算法可以很好地完成单根源故障诊断的任务。
4结束语
故障定位和诊断一直是网络运维管理系统所致力于解决的问题之一,但是由于被管对象复杂、收集的故障样本少、故障现象和原因定位困难及缺乏数据分析等原因,导致故障定位和诊断困难,文章通过将已有的故障数据进行预处理,并基于卷积神经网络模型进行训练测试,实现了基于已有数据的初步故障定位和粗略预测,研究成果可以应用于运维管理的故障定位分析,将会提升运维管理的故障处理能力,使得故障处理更加及时和准确。
参考文献
[1]肖增良,乐晓波,周辉.基于与或依赖图的多Agent系统任务分解算法[J].计算机工程与设计,2009,30(2):426-428.
[2]刘晓明,黄传河,江贝.一种基于移动Agent技术的网络管理模型[J].计算机应用研究,2000(12):52-53,69.
[3] LENNSELIUS B,RYDSTROM L.Software Fault Content and Reliability Estimations for Telecommunication Systems[J]. IEEE Journal on Selected Areas in Communications,1990,8(2):262-272.
[4]朱淼良,邱瑜.移动代理系统综述[J].计算机研究与发展, 2001(1):16-25.
[5]刘波,李伟,罗军舟,等.网络管理中多agent的半在线调度算法[J].计算机研究与发展,2006(4):571-578.
[6]王媛媛,谭献海.移动代理系统———IBM的Aglets[J].微计算机信息,2006(9):275-277,136.
[7]金黎黎,孔令富.协同设计环境中任务分解与调度的研究[J].计算机工程与设计,2009,30(22):5291-5293.