丁 智
(蚌埠学院 计算机工程学院,安徽 蚌埠 233030)
光纤网络作为一种可以实现智能化设备功能的载体,可准确获取光纤设备的跳闸信息、开关状态信息等.网络的可靠性对光纤设备安全运行具有重要现实意义[1].光纤网络在运行过程中面临多种链路故障,加上光纤网络链路的交叉复杂性,很难实现精确维护.因此,诊断和定位光纤网络链路故障至关重要.国外对光纤网络链路故障研究较早,其从神经网络和人工智能领域中探析新的诊断方法,为光纤网络链路故障诊断提供了新的方法.还将数据挖掘技术应用到光纤网络链路故障的定位中,为光纤网络链路故障的诊断和定位提供了一定理论支持[2];国内光纤网络发展晚于国外,导致国内在光纤网络链路故障诊断上也比较落后,但随着科技的发展,国内光纤网络链路故障的诊断能力也在逐渐提升,但仍需不断改进诊断方法[3].
陈军[4]等人针对传统故障诊断与定位方法存在的问题,梳理了智能变电站保护控制的信息集合,建立保护控制功能模型的同时,并且建立了Petri子网,通过Petri网在报文时获取到的故障信息状态,对Petri网智能变电站进行故障诊断与定位,得到结果可以反映智能变电站逻辑功能的缺陷,通过实例证明了该方法在Petri网智能变电站保护控制过程中,具有良好的故障诊断效果和定位精度,但该方法操作过程复杂,对故障诊断的耗时较长,仍需继续改进;孙宇嫣[5]等人以提高智能变电站中通信网络的运维效率为目的,从智能变电站通信网络故障的冗余监测出发,分析通信网络故障的特征信息,结合深度学习算法,建立了通信网络故障诊断模型,实现通信网络故障的分析处理,该方法可以提高故障诊断的精确性,具有较好的容错性能,但该方法对网络中存在的其他干扰因素考虑甚少,导致故障定位的效果欠佳.
针对以上背景,本文将深度学习应用到了光纤网络链路故障诊断中,提高了光纤网络链路故障诊断与定位的精度.
为了实现光纤网络链路故障诊断与定位,首选构建链路故障诊断网络.将存在因果关系的故障节点,通过有向边进行连接,将变量之间关系通过图形进行表达.链路故障诊断网络中全部故障节点在诊断过程中要给出条件概率,不具备父节点的故障节点需要先给出先验概率[6].而条件概率可通过故障节点样本数据统计得到,还可以通过有关专家根据以往的经验得到.在没有足够故障节点样本数据可以使用情况下,针对链路故障诊断网络中的故障节点变量,计算出条件概率信息较难[7].
为了简化链路故障诊断网络的建立过程,先按照链路故障诊断方向对光纤网络链路故障进行估计,如果估计得到的结果与专家的诊断思维吻合,则便于条件概率的推理[8].图1给出了链路故障的诊断网络结构.
图1 光纤网络链路故障诊断网络
图1中,链路故障的诊断的条件概率s为1,将其划分为F1=0.2、F2=0.8,其中,F1=F11+F12,F2=F12+F22,根据不同的条件概率划分判断链路故障.根据链路故障的因果关系建立诊断模型,在光纤网络链路故障诊断过程中,通过计算条件概率,实现最终链路故障诊断.
在上述构建的链路故障诊断网络基础上,设计光纤网络链路故障诊断模型.本文引入深度学习算法构建光纤网络链路故障诊断模型.深度学习算法被广泛应用于各个领域中,其在光纤网络链路故障诊断中不仅可以处理光纤网络的高维输入量,还可以确定输入量与输出量之间的非线性关系.因此,本文采用深度学习理论构建光纤网络链路故障诊断模型.
深度学习理论增设了无监督学习的预训练过程,将深度学习的能量函数定义为
(1)
式中,E(v,h∣θ)表示深度学习的能量函数,该值为一个函数,vi表示深度学习可视层的学习状态,hj表示深度学习隐藏层的学习状态,θ={cj,bi,wij}表示深度学习参数,cj表示深度学习隐藏层的偏置值,bi表示深度学习可视层的偏置值,wij表示可视层i与隐藏层j的连接权重,nv表示可视层的故障数量,nh表示隐藏层的故障数量.
根据公式(1)的深度学习理论定义,可以得到深度学习的联合概率分布为
(2)
式中,P(v,h∣θ)代表深度学习的联合概率分布,Z代表二维随机变量,-E代表无穷矩形域内概率分布.
对光纤网络链路故障进行正向输入层和反向输入层的重构,分别表示为
(3)
(4)
根据重构结果与实际结果之间的误差,对光纤网络的参数进行更新处理,处理步骤如公式(5)~公式(7)
wij=wij+ε[P(h0j=1∣v0)vi0-P(h1j=1∣v1)vi1],
(5)
bi=bi+ε(vi0-vi1),
(6)
cj=cj+ε[P(h0j=1∣v0)-P(h1j=1∣v1)],
(7)
式中,ε表示学习率,h0j代表深度学习隐藏层的初始学习状态,vi0表示深度学习可视层的初始学习状态.通过深度学习的训练样本[9],计算光纤网络输出层与目标输出层间的均方误差和梯度值,将其作为模型的输入和输出值,确定光纤网络链路故障结果.通过朝相反方向调整光纤网络参数值θ实现结果的输出,即
(8)
θ=θ-ε·∇θJ(θ),
(9)
在建立链路故障诊断网络基础上,定义深度学习的能量函数,结合深度学习的联合概率分布,对光纤网络链路故障进行重构,通过计算光纤网络输出层与目标输出层之间的均方误差和梯度值,实现光纤网络链路故障诊断.
在设计光纤网络链路故障诊断模型后,需要对光纤网络链路故障进行筛选.在光纤网络链路故障筛选中,学习定位模块得到的最大光纤网络链路故障集具有非常大的冗余度,以降低链路故障集合的冗余度为目的,减小冗余链路故障对故障判定时的影响,尽量将故障集合中冗余故障剔除,筛选出可能性较大的链路故障.将光纤网络链路故障看作信号,将信号的覆盖范围作为光纤网络链路故障的信号强度,将链路故障筛选问题转化为一种信号的处理方法.深度学习方法可以作为一种信号处理方法,实现光纤网络链路故障的筛选.深度学习流程如图2所示.
图2 深度学习流程
假设光纤网络链路故障的信号强度阈值为αSI,设计一个深度学习矩阵,保留光纤网络链路故障的原始信号x=(x1,x2,…,xn)中强度大于阈值的链路故障信号.其中,αSI可以根据公式(10)计算得出,μ表示尺度因子,取值范围在0~1之间,可以灵活控制αSI的大小,即
αSI=μ·Max{x1,x2,…,xn}.
(10)
由于对角矩阵乘以目标矩阵可实现目标矩阵内光纤网络链路故障大小的伸缩.引入对角矩阵A=diag(a1,a2,…,an)作为光纤网络链路故障原始信号的学习矩阵Φ.对角矩阵的链路故障值通过公式(11)计算得出.根据学习矩阵[10],可以得出链路故障原始信号的观测向量为
(11)
在重构之后链路故障信号中,将非零元素对应的链路故障集合作为筛选后的链路故障集合HS.采用HS的真实故障覆盖率和冗余度衡量光纤网络链路故障的筛选性能.覆盖率和冗余度的计算公式为
(12)
(13)
式中,HRS表示链路故障集合中冗余链路故障集合,FOS表示链路故障集合中真实链路故障集合.
真实故障覆盖率η(HS)的值越大,说明筛选后的链路故障集合HS保留了原有链路故障集合HMax的重要信息越多.当η(HS)=1时,说明筛选后的链路故障集合HS保留了HMax中所有重要信息;相反,R(HS)的值越小,说明筛选后的链路故障集合HS中含有的冗余故障越少,说明光纤网络链路故障的筛选性能越好.
根据光纤网络链路故障筛选结果,结合物理拓扑划分,将光纤网络链路拆分为两棵不同子树,对子树递归调用链路故障进行定位算法的设计,实现链路故障的定位.光纤网络链路故障定位算法设计步骤如下:
Step1:根据物理拓扑划分,判断子树的根节点队列是否为空集,如果不是空集则让根节点出列,判断出列的根节点是否存在链路故障,如果存在链路故障,直接返回到故障节点的位置,结束链路故障定位;
Step2:如果当前根节点没有链路故障,则判断其是否存在子节点,如果存在子节点,判断当前根节点与子节点相连的光纤网络是否存在故障,如果存在链路故障,将该链路故障定位当前光纤网络中,结束链路故障的定位;
Step3:如果根节点与子节点相连的光纤网络未发现故障,继续判断子节点是否是光纤网络链路上的末端节点,如果是末端节点,只需判断末端节点是否存在故障,并定位到故障位置即可;
Step4:如果子节点不是末端节点,将此子节点纳入到子树根节点的队列中,将该子节点作为新的根节点,继续重复操作上述三个步骤,直到遍历光纤网络中的所有节点为止.
通过筛选光纤网络链路故障,设计光纤网络链路故障定位算法,实现光纤网络链路故障的定位.
本文采用光纤网络真实交换机网络作为仿真实验的网络拓扑,共包含54条链路和44台交换机设备.通过模拟链路故障情景,得到链路故障数据.假设光纤网络中链路故障和交换机设备都服从泊松分布;再令光纤网络及时获取链路故障告警信息,并且分辨每一条告警信息对应的链路故障.泊松分布的控制参数λ模拟光纤网络链路故障的规模大小,记录产生链路故障的根源和告警信息,作为光纤网络链路故障诊断和定位的训练以及验证数据集.
设置光纤网络链路故障样本总数分别为400个、800个、1600个和3200个,选取所有训练样本的10%作为实验的测试集,验证本文方法的有效性.实验参数设置情况如表1所示.
表1 实验参数设置情况
在实验参数设置基础上,分别采用本文诊断与定位方法、文献[4]诊断与定位方法及文献[5]诊断与定位方法,检测光纤网络链路故障,得到光纤网络链路故障误检率对比结果,如表2所示.
表2 光纤网络链路故障误检率对比(%)
数据可以看出,采用基于深度学习的光纤网络链路故障诊断与定位方法检测光纤网络链路故障时,由于该方法在诊断故障之前先建立了诊断网络,使链路故障的检测更加有序,而且在定位之前,又筛选了冗余故障,使链路故障随着样本数的增加,误检率控制在40 %以内,采用文献[4]的方法检测链路故障时,由于该方法在定位链路故障时,存在很多冗余故障,造成链路故障的误检率始终较高,采用文献[5]的方法检测链路故障时,由于该方法在检测过程中无法有序识别故障样本数,导致链路故障的误检率始终较高.相比之下所提方法的误检率较低,具有一定可行性.
为进一步验证所提方法,分别采用本文方法、文献[4]方法及文献[5]方法,检测光纤网络链路故障,得到光纤网络链路故障检测率对比结果,如图3所示.
图3 光纤网络链路故障检测率对比结果
从图3的实验结果可以看出,三种方法的故障检测率存在一定差距.当故障样本数为600时,三种方法的链路故障的检测率分别约为95 %、72 %以及78 %,当故障样本数为1000时,三种方法的链路故障的检测率分别约为99 %、75 %和77 %.相比之下,所提方法的样本故障检测率相对较高.这是由于该方法在定位链路故障时排除了冗余故障的影响,使链路故障的检测率逐渐变大,而且筛选了光纤网络链路故障,对光纤网络链路故障进行有效定位,进而提升了方法检测的效率.
本文提出基于深度学习的光纤网络链路故障诊断与定位方法,该方法通过结合深度学习的联合概率分布,重构光纤网络链路故障,获取光纤网络输出层与目标输出层之间的均方误差和梯度值,筛选光纤网络链路故障,完成了光纤网络链路故障诊断与定位.与传统方法相比本文方法检测光纤网络链路故障的误检率始终低于40%,且链路故障的检测率较高,可以提高光纤网络链路故障的检测精度.在今后研究中,还要深入解决链路故障在定位中的误判和漏判问题,解决链路故障在告警过程中的无用信息干扰.