冯尚聪,杨保华,黄 冬
(1.北京机电工程研究所,北京 100074;2.奔牛机场,江苏 常州 213000)
导弹装备研制、生产、使用等寿命周期内产生、积累大量的数据信息,这些数据信息是工程应用的基础,能够为机器学习模型提供可靠的数据集,对于装备故障预测、质量判别、寿命预测等技术研究至关重要。由于在数据采集过程中测量精度、测量方法等因素引起的误差、数据变异、错误信息等,导致数据信息含有不同程度的异常数据,为数据精准应用带来困扰;数据预处理包括数据清理、数据集成、变换以及数据规约3个部分,其中过滤掉奇异点、错误干扰项、噪音数据、不一致数据等,获得高质量的数据是数据清理的一项重要任务。针对导弹测试数据的预处理研究,空军勤务学院王茜教授基于某型导弹测试流程,提出了测试数据奇异项和趋势项的方法,设计数据预处理模块并进行了仿真验证。海军航空大学周璐等人为了研究基于测试数据的导弹质量评估工作,将测试数据进行筛选并调整测试模块数据权重,最后进行归一化处理。中国船舶工业综合技术经济研究院吴立金等人在研究基于深度学习的装备故障预测技术时,对数据处理提出通过故障数据特点分析进行数据的参数化研究,形成训练样本和识别样本,从而删除原始数据中的伪信息。
武器系统的测试数据异常域包括异常点、异常曲线和异常簇等,当前对异常数据的常见识别与处理方法主要包括统计模型方法、距离/密度检测方法、聚类方法等,对异常数据点的检测通常采用均方差、盒图模型、曲线拟合等统计模型的方法,对异常数据曲线的检测采用距离模型、深度学习模型等方法,对异常数据簇的检测采用ITree(隔离树)、聚类模型等深度学习方法。对于数据奇异点的算法研究,燕山大学张宁等人分别对基于统计、距离、密度、偏移等离群点检测算法进行了归纳综述,分析了其中的优缺点。晋中学院信息技术与工程学院的李俊丽等人研究了高维数据的离群点检测算法,描述了不确定数据和数据流离群检测算法,提出了离群组合技术用于解决高维数据的关联性。广州珠江职业技术学院黄富平等人对现有的异常数据检测逻辑进行改进,利用 Hadoop平台作为异常数据检测组的运行平台,提出利用动态反馈模组对运算后输出结果数据进行数据异常检测,能够对隐性异常数据进行深度检测。本文针对装备数据异常域检测方法能否适用于导弹装备的测试数据进行详细探讨,充分吸收各算法优势,围绕导弹测试数据的特点分类提出异常域检测模型,满足导弹测试数据在多场景工程应用中的需求。
IQR
)将数据分为3个点和4个区间,表征第3个四分位数和第一个四分位数的差 (IQR
=Q
-Q
),异常点被定义为低于箱形图下限(或Q
-1.
5x
IQR
)或高于箱形图上限(或Q
+1.
5x
IQR
)的观测值,考虑把上下限作为数据分布的边界,任何高于上限或低于下限的数据点判定为异常点;任意一组数据集或观测值都可以根据数据的值以及它们与整个数据集的比较情况被划分为4个确定的间隔,如图2所示。最小二乘法将数据集或观测数据拟合成曲线,根据最小二乘原理,将实际值与利用曲线拟合计算值的离差的平方和最小为优化判据,回归的关联式不可能全部通过每个回归数据点,借助相关系数“R”,剩余标准偏差“S”进行判断;将“R”越偏离于 1且“S”越偏离于 0的值判定为异常点,算法原理如图3所示。图1 标准差法异常点检测原理图
图2 盒图模型异常点检测原理图
图3 最小二乘法异常点检测原理图
k
的取值较为依赖,如果k
的取值太小,则少量的相邻异常点容易计算出较低的临近性度量值;如果k
的取值太大,而数据集点数偏少,则k
的簇中全部的数据点都有可能成为异常点,在工程实施过程中,通常取k
个最近邻的平均距离作为邻近性度量的基准,在计算过程中能够规避上述问题。基于密度的异常检测方法核心思想可以理解为将距离偏离度映射至异常点的密度分布区域,即异常点在低密度区域的分布,因此基于密度的异常点检测与邻近度的关系密切相关,通常定义邻域密度为到k
个最近邻的平均距离的倒数,如果该距离小,则邻域密度高,偏离度亦小。基于密度的异常点检测方法在定义密度概念的时候可根据数据属性进行变换,可定义为一个数据对象周围的密度等于该数据对象指定距离d
内对象的个数,该方法依赖于d
值的选取,如果d
取值太小,则许多正常数据对象可能具有较低密度,从而具有很高的异常点度量值;如果d
取值太大,则许多异常点可能具有与正常数据对象类似的密度值,因此,d
值的选取影响异常点检测的准确度;为了正确的识别数据集对象中的异常点,需要充分利用数据集邻域相关的密度概念,通过定义点x
的密度与它的最近邻y
的平均密度比值作为相对密度进行度量邻域异常状态,使用相对密度的异常点检测步骤如下。步骤1:对于指定的近邻个数k
,基于数据集的最近邻计算对象的密度d
(x
,k
);步骤2:依据d
(x
,k
)计算每个对象的异常点度量值;步骤3:计算点的邻近平均密度和平均相对密度。相对密度指示点是否在比它的近邻更稠密或更稀疏的邻域内,并取作点的异常点度量比。
基于密度的检测方法最具代表性的是局部离群因子检测方法(LOF,local outlier factor),在LOF方法中,为每个数据点都分配一个依赖于邻域密度的离群因子 LOF,判断该数据点是否为离群点。判别规则为若LOF远大于1,则该数据点为异常点;若 LOF 接近于 1,则该数据点为正常数据点,LOF值计算如公式(1)~(3)所示。
d
(o
,p
)=max{d
(o
,p
),d
(o
)}(1)
(2)
(3)
其中:K
为距离邻域中的样本点数,d
(o
,p
)表示数据点o
到数据点p
的第k
可达距离;p
(o
)表示数据点p
的第k
局部可达密度,LOF
(p
)表示数据点p
的第k
局部离群因子。基于隔离树(iTree)模型检测方法是一种通过隔离实现异常检测的方法,算法原理为用一个随机平面来分区数据空间,一次可以生成两个数据子空间,再继续用一个随机平面来分区每个数据子空间,循环分区直到每个数据子空间里面只有一个数据点为止,能够发现那些密度很高的簇被随机平面分区很多次是可以停止分区的,但是那些密度很低的点很容易被分割停到一个子空间中,从而实现将一个异类数据点从其他数据实例中隔离出来的效果。由于异常数据“少而不同”,因此这些异常数据更容易被检测,隔离树模型对异常产生明显的较短路径,因为异常的实例越少,导致分区数量越少,树结构中的路径越短;具有可区分属性值的实例容易在早期分区中被分离。因此,当一个隔离树对某些特定点产生较短的路径长度时,这些点存在很大的异常可能性。
隔离树的表示方法为设T
为隔离树的一个节点,T
要么是没有子节点的外部节点,要么是有一个测试和两个子节点(T
,T
)的内部节点,一个测试由一个属性q
和一个分割值p
组成,这样测试就可以将数据点划分为T
和T
。如给定来自某变量分布的N
个实例的数据样本X
={X
,…X
},在构建隔离树的过程中,通过随机选择属性q
和分割值p
递归地划分X
,直到满足:树达到高度极限、路径为1或X
中的所有数据都具有相同的值。隔离树隶属于二叉树,其中树中的每个节点为零或两个子节点。假设所有实例都是不同的,当一个隔离树完全增长时,每个实例都被孤立到一个外部节点,在这种情况下,外部节点的数量为N
,内部节点的数量为N
-1;全部隔离树的节点总数为2N
-1;异常检测的任务是提供一个反映异常程度的排序,因此,可根据数据点的路径长度或异常分数对数据点进行排序,并由此可以看出异常域是排在列表顶部的区域。基于隔离树模型检测异常的实现步骤如下。步骤1:隔离树模型训练。
①构建一个孤立树,选择N
个数据集对象作为样本集,放入树的根节点;②设定树的生长高度,随机指定一个属性,在当前节点数据集范围内,随机产生一个切割点P
;切割点满足在当前节点属性数据中的最大值与最小值范围内;③切割点P
的选取生成了一个平面分割逻辑,将当前节点数据空间切分为二个可度量子空间:把当前所选属性下小于P
的点放在节点的左分支,把大于等于P
的点放在节点的右分支;④在节点的左分支和右分支节点递归步骤②、③,不断构造新的叶子节点,直到叶子节点上只有一个数据点或孤立树已经生长到了所设定的高度。
步骤2:隔离树模型检测。
由步骤1获得t
个隔离树,将全部隔离树统一起来形成隔离树集,即孤立森林(iForest),然后可以用生成的孤立森林来评估测试数据了。对于一组训练数据X
,我们令其遍历每一棵孤立树,计算X
在孤立树中的高度值(X
从根节点穿过隔离树的边数来衡量,直到遍历在外部节点结束),并可以计算得出X
在每棵孤立树中的高度平均值。获得每个测试数据的高度平均值后,设置一个阈值,高度平均值低于此阈值的测试数据即为异常,说明异常点在这些树中只有很短的平均高度。对于每个样本X
,需要对其综合计算每棵树的结果,通过公式(4)计算测试数据的异常分数:S
(X
,n
)=2-(())()(4)
其中:E
(h
(x
)) 为隔离树集合中的高度h
(x
)的平均值,c
(n
) 为给定样本数n
的路径长度的平均值,用来对样本x
的路径长度h
(x
) 进行标准化处理。由公式(2)可以得出当E
(h
(x
))→c
(n
),异常得分接近 0.
5,认为样本中可能不存在异常点;当E
(h
(x
))→0,异常得分接近 1,认为x
为异常点;以及当E
(h
(x
))→n
-1,异常得分s
远小于0.
5,认为x
为非异常点。K
个簇,让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。层次聚类把每个样本值都视为一个类,计算各类之间的距离,选取最相近的两个类,并为一个类;新类加入进样本继续计算距离,再合并最近的两个类,循环归类。DBSCAN是一种基于密度的聚类算法,通过从数据样本集中随机选择核心点,以一个核心点为圆心,做半径为r
的圆,选择圆内圈入点的数满足密度阈值的核心点,且将圈内的点形成一个簇,其中核心点直接密度可达周围的其他实心原点,合并相互重合的簇区分类别。设输入为样本集为D
={X
,X
,…X
},聚类簇数为k
,最大迭代次数N
;输出聚类簇为C
={C
,C
,…C
},则k-means聚类算法步骤如下:①从数据集D
中随机选择k
个样本作为初始的k
个中心向量:μ
={μ
,μ
,…μ
};②初始化簇分类C
=φ
(1≤t
≤k
);⑤循环步骤③、④如果中心向量不发生变化,则输出C
={C
,C
,…,C
}。设输入为样本集为D
={X
,X
,…,X
},聚类簇距离度量函数为d
,聚类簇数为k
;层次聚类可用树图表示聚类过程,其算法流程为:①计算类与类之间的距离,用邻近度矩阵表示;
②将距离最近的两个类合并为一个新的类;
③根据新的类,更新邻近度矩阵;
④重复步骤②、③,至剩下满足K条件的类为止;层次聚类过程如图4所示。
图4 邻近度矩阵表示层次聚类过程示意图
设输入为样本集为D
={X
,X
,…,X
},邻域半径r
,邻域中数据样本数目阈值t
,邻域半径r
内样本点的数量大于等于t
的点叫做核心点,不属于核心点但在某个核心点的邻域内的点叫做边界点,既不是核心点也不是边界点的是噪声点。样本距离度量方式d
,可选用欧式距离计算;输出聚类簇为C
={C
,C
,…,C
};则DBSCAN聚类算法步骤如下:①从样本集中任意选取一个数据样本点p
,计算出其它样本点到P
的距离;②根据每个样本点到p
的距离,计算出p
的r
邻域;如果邻域内样本数目大于t
,则对于参数r
和t
,所选取的数据样本点p
为核心点,可找出所有从p
密度可达的数据对象点,形成一个簇;③如果选取的数据样本点p
是边缘点,继续选取另一个数据样本点;④重复步骤②、③,直到所有样本点被处理,输出聚类簇。
通过k-means聚类、层次聚类、DBSCAN聚类等聚类方法获取数据样本的聚类簇后,根据数据特点进一步处理,将远离数据簇中心数据样本、与平均中心距离值偏差较大的数据样本或簇密度低下的数据进行异常识别和判断,以达到检测异常的目的。
装备测试数据包含系统、分系统及部件的测试数据,某种程度上能够反映装备的故障情况或健康状态,在装备使用过程中,部件或分系统的测试数据能够通过装备的分系统单元测试获取,根据不同装备的测试性设计要求,在全部的测试项目中每项测试信号异常均能表征装备的若干故障模式;当测试信号数据值在技术指标范围内时,其与技术指标标准中心值之间的偏离程度在数据量可信的情况下可以度量状态的健康状态,甚至可以预测装备的故障发生趋势。测试项目为数字量信号的,其异常值一目了然,无需过多解读,本文以测试信号模拟量为研究对象,针对装备对测试数据不同依赖需求下的异常域进行分析,将分系统或部件的测试数据异常域分为如下3类:
1)某特征参数x
在测试序列中的异常点分布情况,即X
={X
,X
,…,X
},其中X
表示第i
次测试所产生的特征参数值,从数据序列中区分出异常点是一件较为容易的事,基于统计模型的方法、基于密度的检测方法、基于聚类的检测方法等均能检测异常点分布,其中基于统计模型的方法在测试序列异常点的检测中较为简洁且常用的方法;此需求场景多为判断分系统或部件中某特性参量在试验或长期服役后是否仍满足使用要求。2)某特征参数X
在一次测试过程中随单元测试时间变化的异常曲线分布情况,即X
=f
(t
),如某参数在每次测试中均满足区间内指数分布或线性分布,用f
(t
)=wt
-或f
(t
)=wt
+b
表示,则会出现在某测试过程中随着时序变化某测试时刻出现曲线异常情况,在样本量充足的前提下基于曲线间距离偏移度、神经网络模型等均可以快速检测异常曲线,其中基于曲线间距离偏离度的方法较为常用;表1 参数原始测试数据
此需求满足特定器件、电路特定参数随通电时间相关性较大的性能变化趋势分析。
根据装备测试数据特性及异常点的判别方法论述,在工程应用中具体的实现步骤可参考如下:①利用自动测试系统进行进行测试特征参数值采集;②采集的特征参数值进行数据处理并进行在线比对分析,直观判别超差参数;③在参数无明显超差的情况下,进行测试特征数据一致性分析,寻找特征参数、参数序列之间的关系或变化规律,确认参数是否符合某种分布;④基于特征参数的规律特性选择合适的异常点检测方法,评估与预测装备的状态。可结合装备的信息化管理,建设装备参数模型库、异常域检测算法模型库,模型库嵌入测试系统软件或装备信息管理系统软件,将测试结果数据分别进行自动数据处理、自主数据融合、自适应模型判别、自生成辅助决策,提升装备在大数据条件下的智能化自诊断水平。
对于复杂的导弹装备,判断其异常域往往涉及较多分系统,如结构、动力、制导、控制、雷达、电气等,而表征各分系统的性能参数无论是参数数量、度量单位、技术指标均存在较大差异,提取各分系统特征参数综合形成一个较大的特征参数满足整体导弹装备的性能需求,特征参数构成的异常域属于高维数据,进而演变成关于高维数据中异常点的挖掘研究,通过高维异常域的检测判别装备的性能状态存在较大的难度,因此当前对于装备异常域的检测仍集中于分系统及部件参数,通过各分系统的异常域的检测及分布情况,结合分系统在导弹装备中的综合权重,度量整个导弹装备的测试数据异常域分布,进而评估导弹装备的健康状态或故障发生趋势。
x
,y
分别为两项测试信号,测试信号序列表征该分系统某部件当前工作状态,从表中可以看出该数据序列每个参数项数据较为平滑,分别应用局部离群因子检测方法及DBSCAN检测方法检测数据序列{x
,y
}中的异常簇,检测结果如图5所示,均能将数据序列异常簇检测隔离。图5 局部离群因子与DBSCAN方法异常域检测图
本文详细描述了导弹装备在使用过程中的测试数据异常域分布及检测需求,分析了基于统计模型、基于密度模型、基于隔离树模型以及基于聚类模型等算法检测异常域的基本原理与实现步骤,模拟了部分算法在检测某测试序列异常簇的应用,验证了文中所描述异常域检测方法在导弹装备测试数据处理中的应用;但由于各类算法在收敛性、调参情况、复杂度、样本数据量需求等方面各不相同,以及模拟数据与实际数据之间的差异性,算法并不完全适用于多种条件下的数据异常域检测,因此在导弹装备更多复杂数据异常域检测的应用中,算法的实际运用效果仍需进一步探讨与工程应用。