写在前面:
文章中涉及到的一些术语的解释
有监督学习与无监督学习_有监督学习和无监督学习_Briwisdom的博客-CSDN博客
Bo Shen & Zhenyu (James) Kong (2023): Active defect discovery: A humanin-the-loop learning method, IISE Transactions, DOI: 10.1080/24725854.2023.2224854
Abstract
无监督缺陷检测方法通过生成基于缺陷分数的排名列表应用于未标记的数据集。不幸的是,许多由无监督算法排名靠前的实例并不是缺陷,这导致了很高的误报率。
主动缺陷发现(ADD)是为了克服这一缺陷而提出的,它顺序地选择实例来获得标记信息(缺陷或非缺陷)。然而,贴标签往往是昂贵的。因此,平衡检测精度和贴标成本至关重要。
注:根据这篇文章
流浪地球2彩蛋里的『人在回路学习』是什么? - 知乎 (zhihu.com)
主动学习(active learning)就是一种实现人在回路的方法。因此本文的“human-in-the-loop”体现在主动缺陷发现(ADD)。
沿着这条思路,本文提出了一种新的ADD方法来实现这一目标。我们的方法是基于最先进的无监督缺陷检测方法,即隔离森林,作为基线缺陷检测器来提取特征。然后,利用提取的特征的稀疏性来调整缺陷检测器,使其能够集中在更重要的特征上进行缺陷检测。为了增强特征的稀疏性,提高检测精度,提出了一种基于在线梯度下降的稀疏近似线性缺陷发现算法(SALDD),并对其进行了理论遗憾分析。在现实世界的数据集上进行了广泛的实验,包括医疗保健、制造、安全等。实验结果表明,该算法明显优于现有的缺陷检测算法。
Introduction
几十年来,缺陷检测一直是一个活跃的研究领域,在各种应用中发挥着越来越重要的作用。
缺陷是由不同于生成“正常”数据实例的过程生成的数据实例,称为名义实例。作为一项学习任务,缺陷检测可以分为监督、半监督和无监督。
监督缺陷检测与二元分类是一样的,在名义和缺陷实例上进行训练。在半监督缺陷检测中,缺陷检测器仅在名义实例上进行训练。
在现实世界的应用程序中,标记的数据集不可用于训练,因为标记过程(即,通过测量确定实例是缺陷或标称)是耗时或昂贵的。作为一种可行的解决方案,无监督缺陷检测方法可以在一定程度上帮助解决这个问题。
无监督缺陷检测方法直接在未标记的数据集上工作,以提供缺陷评分列表,其中缺陷应该比名义实例具有更高的排名。排名靠前的实例被标识为候选缺陷。
注:异常检测的任务是给出一个反应异常程度的排序,常用的排序方法是根据样本点的路径长度或异常得分来排序,异常点就是排在最前面的那些点。
无监督缺陷检测方法通常不能很好地执行,原因有两个:(i)无监督缺陷检测方法是在没有使用任何标签信息的情况下进行训练的,即没有很好地探索缺陷模式;(ii)真实数据集的缺陷比例较低,这是缺陷检测的数据不平衡问题。因此,无监督缺陷检测方法存在假阳性率高的缺点。
ADD的目标是依次选择一个实例进行度量,然后标记(在本文中称为“查询(query)”),并在预算约束的给定度量数量下最大化检测到的缺陷的数量。
GLDD已被证明是大规模缺陷检测的最佳方法之一。尽管GLDD的作者(Siddiqui等人,2018)指出,对于任何特定的例子,特征集都是非常稀疏的,但他们没有进一步探索稀疏性。在本文中,从理论上证明了特征函数是稀疏的,并通过经验进行了验证。然后我们假设,由于两个原因,加强模型权重的稀疏性可以改进GLDD算法。因此,提出了一种基于梯度下降的新算法,即稀疏近似线性缺陷发现(SALDD)来更新权重。
2 Related research
2.1 Defect detection and statistical process control
缺陷检测可以分为三种模式(Chandola et al, 2009)。监督缺陷检测与二元分类相同,其中标称和缺陷实例的标签在训练过程中都是可用的。在半监督缺陷检测中,缺陷检测器仅在名义实例上进行训练。无监督缺陷检测方法直接在未标记的数据集上工作(即,模型在不知道缺陷与否的情况下对所有数据实例进行训练)。
本文提出的缺陷检测方法不同于以往。我们提出的方法从无监督缺陷检测(隔离森林)开始。通过我们的标记方法查询(query)更多的实例来更新缺陷检测器。利用正常和缺陷实例来提高缺陷检测器的性能。它与半监督缺陷检测不同,因为我们同时拥有正常和缺陷数据,而半监督方法只使用正常实例进行训练。它也不同于监督缺陷检测,在监督缺陷检测中,所有的实例都带有用于训练的标签,而我们的方法选择哪些实例用于训练。与无监督缺陷检测相比,我们的方法利用实例中的标签信息来构建模型。
值得一提的是,统计过程控制(SPC)是一种广泛应用于工业的缺陷检测的基本方法。多元控制图(Multivariate control charts)的发展是为了检测过程平均向量的漂移(to detect a shift in process mean vector),即过程的失控信号。我们的方法不同于SPC,它是一种无监督的方法来检测时间序列数据的平均漂移(mean shift)。
2.2 Theoretical background of isolation forest
在本节中,将介绍Liu等人提出的隔离森林作为我们的基线缺陷检测器。在无监督缺陷检测的文献中,隔离森林已被证明是最鲁棒的方法之一,对于具有不同大小和特征空间的不同数据集,它是表现最好的。
考虑含有个数据的数据集
每个实例 含有个特征
隔离森林基于以下前提:异常点很少,并且与特征空间中的标称实例集群良好分离(defect instances are few and well-separated from clusters of nominal instances in the feature space)。
一个隔离森林是个树的集合,记为
其中 是森立中的第棵树。隔离林中的每一棵树就是特征空间的一个分割,树中给定数据实例从根节点到终端节点的路径长度表示该数据实例与其余数据实例的隔离程度。具体来说,每棵树都是基于整个数据集的子样本以随机方式构建的。因此,整体个树提高了算法的准确性和效率。
注1:每棵树都是一个分割,总共棵树就表示对样本进行了次分割,相当于进行了多次实验,因而保证了准确性。
注2:样本数较多会降低孤立森林孤立异常点的能力,因为正常样本会干扰隔离的过程,降低隔离异常的能力,子采样就是在这种情况下被提出的。
下图阐述了一棵隔离树的产生过程。
图2.1 一棵隔离树
缺陷实例(如图2.1中的红圈所示)非常快速地通过随机分割到达叶节点,另一方面,形成密集集群的标称实例(如图2.1中的绿圈所示)需要更多的步骤才能最终到达叶节点。因此,对于缺陷实例,平均而言,实例从根节点到叶所遍历的边数(也称为隔离深度(isolation depth))比标称实例短。实例的缺陷分数(defect score)是林中棵树的平均隔离深度。
算法1概述了树的构建过程。
- Step1 (Line2-3): 子样本集被用于构建一棵隔离树,是下标集合,子样本大小为,子样本是通过随机采样产生的,每个数据点被选到的概率相等。
- Step2 (Line7-11): 设为当前节点上实例的索引集。中的数据实例是通过均匀随机地选择特征和阈值来划分的。在中等概率随机选择