BGAD:Explicit Boundary Guided Semi-Push-Pull Contrastive Learning for Supervised Anomaly Detection

张开发
2026/4/10 2:04:19 15 分钟阅读

分享文章

BGAD:Explicit Boundary Guided Semi-Push-Pull Contrastive Learning for Supervised Anomaly Detection
《BGAD: Explicit Boundary Guided Semi-Push-Pull Contrastive Learning for Supervised Anomaly Detection》核心研究内容如下核心问题与目标本文旨在解决监督式异常检测中的两个核心且相互冲突的挑战判别性不足传统无监督方法仅使用正常样本导致决策边界模糊。偏差问题利用少量已知异常进行训练时模型容易过拟合这些已知异常从而无法泛化到未见过的异常类型。核心目标设计一种新方法既能有效利用少量已知异常来提高模型判别力又能避免模型对已知异常产生偏见保持对未知异常的泛化能力。核心创新与研究方法BGAD模型作者提出了边界引导异常检测BGAD模型其核心在于通过两个阶段构建一个“显式且紧凑”的决策边界。第一阶段显式边界生成技术手段使用条件归一化流CNFlow仅对正常样本的特征分布进行精确建模。关键产出基于学习到的正常特征分布通过设定超参数β百分位数和τ边缘阈值自动生成一个显式的正常边界 bnbn​和异常边界 baba​。该边界完全由正常数据决定与异常样本无关从根本上避免了已知异常对决策边界的扭曲。第二阶段边界引导的半推-半拉优化技术手段提出边界引导的半推-半拉BG-SPP损失函数。核心机制半拉Semi-Pull仅将对数似然值低于正常边界 bnbn​ 的正常特征拉向更紧凑的区域而忽略已经位于正确区域的正常特征。半推Semi-Push仅将对数似然值高于异常边界 baba​ 的异常特征推离正常边界 bnbn​ 至少一个边缘距离 ττ而不要求它们无限远离。效果这种方法在正常和异常分布之间创造了一个明确的“边缘区域”使得决策边界更清晰、更具判别性同时避免了过度惩罚已知异常导致的模型偏见。辅助策略基于RandAugment的伪异常生成RPAG目的解决异常样本数量稀少的问题。方法利用少量真实异常样本通过随机增强、前景掩码定位、裁剪和粘贴等步骤在正常样本上合成大量、多样且语义合理的伪异常样本以丰富训练数据。主要实验与结论性能表现在MVTecAD、BTAD等多个工业缺陷检测和医学图像基准数据集上BGAD取得了最先进的SOTA结果。例如在MVTecAD上图像级AUROC达到99.3%像素级AUROC达到99.2%。泛化能力在“单类别设置”训练时仅使用一类异常测试时检测其他未见过的异常下BGAD显著优于其他监督式AD方法如DevNet, DRA证明了其对未知异常强大的泛化能力。消融研究与不包含异常监督的变体BGAD w/o相比完整的BGAD模型性能显著提升验证了利用少量异常的有效性。与使用传统对比损失完全推远的变体BGAD†相比BGAD的“半推-半拉”机制有效避免了过拟合和性能下降验证了其缓解偏见的关键作用。RPAG策略和不对称加权策略均被证明能有效提升模型性能。总而言之论文提出了一种新颖的显式边界引导的监督式异常检测框架BGAD。其核心贡献在于通过归一化流构建与异常无关的显式边界并设计半推-半拉损失函数巧妙地平衡了“利用已知异常提升判别力”与“避免对已知异常产生偏见以保持泛化力”这两个目标从而在多个标准数据集上取得了超越现有方法的优异性能。这里是自己的论文阅读记录感兴趣的话可以参考一下如果需要阅读原文的话可以看这里如下所示项目地址在这里如下所示摘要大多数异常检测AD模型仅使用正常样本以无监督方式学习这可能导致决策边界模糊且判别性不足。事实上在实际应用中通常可以获得少量异常样本这些已知异常的宝贵知识也应被有效利用。然而在训练期间使用少量已知异常可能会导致另一个问题即模型可能因这些已知异常而产生偏差无法泛化到未见过的异常。在本文中我们研究监督式异常检测即我们使用少量可获得的异常来学习AD模型目标是同时检测已见和未见异常。我们提出了一种新颖的显式边界引导的半推-半拉对比学习机制该机制可以在减轻偏差问题的同时增强模型的判别能力。我们的方法基于两个核心设计首先我们找到一个显式且紧凑的分离边界作为进一步特征学习的指导。由于该边界仅依赖于正常特征分布由少量已知异常引起的偏差问题可以得到缓解。其次我们开发了一种边界引导的半推-半拉损失函数仅将正常特征拉拢在一起同时将异常特征从分离边界推开超过一个特定的边缘区域。通过这种方式我们的模型可以形成一个更显式且更具判别性的决策边界从而更有效地区分已知和未见异常与正常样本。1. 引言异常检测AD在众多领域受到广泛关注例如工业缺陷检测[4,8,10,50]和医学病变检测[12,38]。以往的大多数异常检测方法[1,3,5,6,8,10,15,30,33,47,50-52]都是无监督的它们更多地关注正常样本而不经意间忽略了异常因为收集足够多且全面的异常是困难的。然而仅从正常样本学习可能会限制AD模型的判别能力[12, 24]。如图1(a)所示在没有异常的情况下决策边界通常是隐式的且判别性不足。判别性不足问题是无监督异常检测中一个常见问题因为缺乏关于异常的知识。事实上在实际应用中通常可以获得少量异常这些异常可以被有效利用来解决或缓解这个问题。最近一些可被称为半监督AD[27,34,36]或带有异常暴露的AD[16,17]的方法开始关注这些可获得的异常。这些方法尝试通过将异常作为负样本的单类分类[34, 36]、监督二分类[16,17]或利用偏差损失优化一个异常评分网络[27]来从异常中学习知识。它们展示了一个事实即使只有少量异常检测性能也能显著提升。然而已知异常并不能代表所有类型的异常。这些方法可能会因已知异常而产生偏差无法泛化到未见过的异常见图5。因此为了解决上述两个问题我们研究监督式异常检测[12]其中可以有效利用少量已知异常来训练判别性AD模型目标是提高对已知异常的检测性能并良好地泛化到未见异常。与无监督AD相比监督式AD对于实际应用中的AD更有意义因为检测到的异常可以用于进一步提高模型的判别性和泛化性。为此我们提出了一种新颖的边界引导异常检测Boundary Guided Anomaly Detection, BGAD模型它具有两个核心设计如图1所示显式边界生成和边界引导优化。显式边界生成。我们首先采用归一化流[14]来学习归一化的正常特征分布并获得一个显式的分离边界该边界靠近正常特征分布的边缘并由一个超参数 ββ 控制即图1(b)中的正常边界。获得的显式分离边界仅依赖于正常分布与异常样本无关因此可以缓解由已知异常不足引起的偏差问题。边界引导优化。获得显式分离边界后我们接着提出一个边界引导的半推-半拉BG-SPP损失函数以利用异常来学习更具判别性的特征。通过BG-SPP损失只有对数似然小于边界的正常特征被拉拢在一起形成更紧凑的正常特征分布半拉而对数似然大于边界的异常特征则被从边界推开超过一个特定的边缘区域半推。通过这种方式我们的模型可以形成一个更显式、更具判别性的分离边界以及一个可靠的边缘区域从而更有效地区分异常见图1(c)、图6。此外异常样本的稀有性是一个关键问题可能导致特征学习效率低下。因此我们提出了基于RandAugment的伪异常生成方法通过在正常样本中创建局部不规则性来模拟异常以应对稀有性挑战。总之我们做出了以下主要贡献我们提出了一种新颖的显式边界引导的监督式AD建模方法其中通过精心设计的显式边界生成和边界引导优化有效利用了正常和异常样本。通过所提出的AD方法可以同时实现更高的判别性和更低的偏差风险。为了有效利用少量已知异常我们提出了一个BG-SPP损失函数将正常特征拉拢在一起同时将异常特征从分离边界推开从而可以学习到更具判别性的特征。我们在广泛使用的MVTecAD基准上达到了SOTA结果图像级别AUROC达到 99.3%像素级别AUROC达到 99.2%。2. 相关工作无监督方法。大多数异常检测方法是无监督的仅从正常样本学习例如自编码器[6, 26, 49]、生成对抗网络[1, 29, 37, 39, 40, 53]和基于单类分类OCC的方法[35,42,46,50]。最近最先进的方法大多利用预训练的深度模型例如DeepKNN [3]、GaussianAD [31]、SPADE [8]、PaDiM [10]和PatchCore [32]。也有一些基于知识蒸馏[5, 38, 47]、特征重建[48]和归一化流[15, 33, 51, 55]的异常检测方法。我们的方法与这些工作[15, 33, 51, 55]在以下三个方面显著不同(1)新动机我们的工作旨在从少量异常中学习知识以解决判别性不足的问题并缓解偏差问题。(2)新方法我们仅使用归一化流模型作为基本的似然估计网络并且是首个提出显式分离边界和BG-SPP损失以实现更高判别性和更低偏差的方法。(3)不同任务[55]关注分布外检测[15, 33, 51]关注无监督异常检测而我们的工作关注监督式异常检测。监督方法。目前有一些现有工作与我们的相似即带有异常暴露的AD [16, 17]和深度半监督AD [24, 34, 36]。在[16]中Hendrycks等人将来自大规模数据集的、可能不正常的随机自然图像称为异常暴露并探索如何利用这些数据来改进无监督AD。[17]中提出的方法利用数千个异常暴露样本在标准图像AD基准上取得了最先进的结果。DeepSAD [36]是首个通过将无监督DeepSVDD [35]方法推广到半监督AD设置来利用少量异常的深度模型。在[34]中Ruff等人进一步基于集中正常样本的交叉熵分类修改了DeepSAD这一修改显著提高了DeepSAD的性能。FCDD [24]扩展了[34]中的伪Huber损失构建了一个半监督的异常定位框架。一些工作[27, 28]利用偏差损失来优化异常评分网络其中正常样本的异常评分被强制近似于从先验分布中抽取的标量分数而异常样本的评分则被强制与这些正常分数有显著偏差。然而这些方法简单地将异常特征尽可能远地推开正常模式这可能导致模型对已知异常产生偏差。最近的工作DRA [12]与我们的最相似它也考虑了模型对未见异常的泛化能力。DRA模型可以学习异常的解开表示以实现可泛化的检测。3. 我们提出的方法3.1. 通过归一化流学习正常特征分布为了找到一个与异常无关的分离边界首先应该学习一个简化的正常特征分布。我们的方法采用归一化流[13, 14]来学习正常特征分布。3.3. 通过边界引导的半推-半拉损失学习更具判别性的特征3.4. 对未见异常的泛化能力以往的监督式AD方法通常被建模为二分类任务将异常视为正样本。然而这些模型严重依赖于已知异常。因此这些模型可能过拟合已知异常无法泛化到未见异常。我们的方法能够缓解严重的偏差问题原因有三1). 获得的显式分离边界仅依赖于正常特征分布与异常样本无关这意味着最终的决策边界主要取决于正常分布而不是受到异常的很大影响见表4。2). 我们的方法仍然使用正常分布来确定异常并且我们的方法可以形成更紧凑、更具判别性的正常特征分布这也有利于检测未见异常而不是在正常和已知异常之间形成决策边界见图5。3). 我们方法中的半推-半拉机制并不强制异常尽可能远地偏离正常分布这可能导致模型对已知异常过拟合而是仅将异常推到边缘区域之外见表6中的消融实验。3.5. 基于RandAugment的伪异常生成异常通常远少于正常样本这可能导致特征学习效率低下。因此我们提出了一种基于RandAugment的伪异常生成RPAG策略该策略通过随机创建局部不规则性来模拟异常以提高不规则模式的数量和多样性。整个过程如附录图8所示并总结如下4. 实验4.1. 数据集与评估指标数据集。在这项工作中我们关注实际应用中的异常例如工业缺陷检测和医学病变检测。具体来说我们评估了六个真实世界的异常检测数据集包括四个工业缺陷检测数据集MVTecAD [4]、BTAD [25]、AITEX [43]和ELPV [11]以及两个用于检测不同器官病变的医学图像数据集BrainMRI [38]和HeadCT [38]。附录中提供了对这些数据集的更详细介绍。评估指标。对于评估我们使用了异常检测中的标准指标——AUROC [4, 6, 40]。图像级别的AUROC用于异常检测像素级别的AUROC用于评估异常定位。为了平等地加权不同大小的真实异常区域我们还采用了[5]中提出的每区域重叠PRO曲线指标。4.2. 实验设置多类别设置旨在评估AD模型检测已知异常类别的性能。在此设置中已知异常是从测试集中现有的异常类别中随机抽取的少量异常样本。然后在测试期间我们小心地将这些添加的异常样本从测试集中排除。单类别设置旨在评估AD模型检测未见异常类别的泛化能力。在此设置中已知异常仅从一个异常类别中随机采样并且该异常类别的所有样本都从测试集中移除以确保测试集仅包含未见过的异常类别。由于异常通常是稀少的我们的BGAD默认每个类别使用十个随机异常样本进行训练我们还会基于这些已知异常通过RPAG生成一些伪异常用于训练。在移除已知异常后我们设置中的测试集与原始测试集不同。因此为了公平比较我们使用公开的实现在与我们的BGAD相同的实验设置下重新运行了所有比较的无监督和监督式AD方法。其他实现细节可以在附录中找到。4.3. 多类别设置下的结果MVTecAD。我们将我们的BGAD与最先进的AD方法进行比较包括无监督方法PaDiM [10]、DRAEM [52]、MSFD [47]、PatchCore [32]和CFA [20]和监督方法FCDD [24]、DevNet [27]和DRA [12]。所有类别的详细比较结果如表1和表2所示。我们还实现了一个变体 BGAD w/o它仅使用没有异常的BG-SPP损失的第一部分进行优化。与NFAD相比我们的BGAD w/o 可以取得更好的结果这表明我们的边界引导机制在无监督设置下也有利于提高AD性能。我们的BGAD在所有三个评估指标下都达到了最佳性能并且可以进一步超过无监督基线NFADAUROC分别提高 2.5% 和 1.3%PRO提高 3.0%。PRO的最大增益表明我们的BGAD更适合异常定位能够更好地定位异常区域见图4。与监督式AD方法相比我们的方法也显著超越了这些SOTA方法。这表明我们的边界引导机制可以更有效地利用少量已知异常来学习更具判别性的AD模型。BTAD。我们将我们的BGAD与[25]中报告的三种基线方法AE-MSE、AE-SSIM和VTADL进行比较。遵循[25]我们评估异常定位性能并报告像素级AUROC。结果如表3所示。我们的BGAD可以达到 98.6% 的平均像素级AUROC以较大幅度 (8.6%) 超越了其他方法并超过了无监督基线NFAD 0.8%。更重要的是BGAD可以达到 82.4% 的PRO超过了无监督NFAD 4.6%。其他数据集。在这里我们将我们的BGAD与[12]中报告的六种近期且密切相关的最先进方法进行比较无监督KDAD [47]以及监督方法DevNet [27]、FLOS [22]、SAOE [44]、MLEP [23]和DRA [12]。遵循[12]我们评估异常检测性能并报告图像级AUROC。与[12]相同所有模型都使用一个已知异常样本进行训练。比较结果如图3所示。我们的模型在两个工业缺陷检测数据集AITEX和ELPV上取得了最佳的AUROC性能在两个医学病变检测数据集BrainMRI和HeadCT上取得了与SOTA方法相当的结果。图3. 在AITEX、ELPV、BrainMRI和HeadCT数据集上的AUROC结果。4.4. 单类别设置下的结果单类别设置下的比较结果如表4所示更多结果见附录表10。与监督式AD方法的比较。在表4和表10中与竞争方法相比我们的方法在不同应用数据集上都是表现最好的。在平均图像级性能上与最佳竞争者相比我们的模型实现了约 3.3%−12.9% 的平均AUROC提升。这表明我们的模型在检测未见异常类别方面具有显著更好的泛化能力。与无监督基线的比较。由于监督式AD方法常常因已见异常类别而产生偏差它们在大多数数据集上的表现甚至不如无监督基线NFAD。相比之下我们的模型可以超越基线。4.5. 消融研究对未见异常的泛化能力。为了进一步验证我们模型的泛化能力我们构建了两个子集一个“简单”子集包含视觉上更容易区分的异常和一个“困难”子集包含更难区分的异常。我们使用来自“简单”子集的少量异常10个训练我们的模型并在“困难”子集上进行测试。实验结果如表5所示。可以发现即使仅使用简单异常进行训练我们的BGAD也能很好地泛化到困难异常AUROC性能提升 2.3% 和 2.2%PRO提升 6.7%。半推-半拉机制的效果。我们实现了一个BGAD的变体称为 BGAD†BGAD†它不使用BG-SPP损失而使用传统的对比损失。比较结果如表6所示更多结果见附录表11。BGAD† 的表现不如BGAD甚至比基线NFAD还差尤其对于一些复杂类别如Capsule、Screw、Transistor。原因是 BGAD† 的完全推动机制会鼓励异常特征至少偏离正常分布一个足够大的界这可能使模型更倾向于生成更大的异常分数从而导致模型更容易过拟合已知异常。因此BGAD† 可能会为正常特征生成更大的异常分数这将显著降低AUROC指标。然而我们BGAD中的半推-半拉机制仅改变模糊区域这对完整的正常和异常分布影响较小。因此BG-SPP损失不会使模型倾向于生成更大的异常分数更有利于缓解模型对已知异常的过拟合。4.6. 定性结果我们在图4中使用MVTecAD数据集可视化了一些异常定位结果。我们的BGAD可以生成更准确的异常定位图见图4的第 {1,3,4,5,6} 列甚至生成比真实标注更好的异常图见图4的第 {2}{2} 列。为了更直观地说明我们方法的有效性我们在图5和图6中可视化了正常和异常的特征分布以及对数似然分布。从图5可以看出监督式DevNet [27]会因已知异常而产生偏差无法区分未见异常与正常数据。但我们的方法可以有效缓解这个问题并生成比无监督MSFD [47]更具判别性的特征。从图6可以看出模糊的对数似然区域可以被我们的BGAD消除。图4. 定性结果。显示了MSFD、\(\mathrm{BGAD}^{w / o}\) 和BGAD生成的异常定位结果进行比较。在第一行中红线内的区域是真实标注。图5. 无监督MSFD [47]、监督DevNet [27]和我们的BGAD学习到的特征分布。图6. (a) tile 和 (b) transistor 类别的对数似然直方图。左侧是没有异常样本的对数似然直方图右侧是包含异常样本的对数似然直方图。5. 结论我们提出了一种新颖且更具判别性的AD模型称为BGAD以同时解决判别性不足问题和偏差问题。与无监督AD模型相比我们的模型可以通过有效利用少量异常来学习更具判别性的特征以区分异常。与监督式AD方法相比我们的方法通过显式分离边界和半推-半拉机制缓解了偏差问题。我们希望我们的边界引导机制能够启发后续的监督式AD研究。

更多文章