多类别异常检测的统一模型
文章链接:点这里
源码链接:点这里
研究目的
1.解决多类别异常检测的挑战
现有的异常检测方法通常需要为每个类别单独训练模型,如Figure1图(c)所示,这种方法在类别数量增加时会消耗大量资源,并且在处理具有较大类内多样性的数据时表现不佳。本文提出了一种统一的多类别异常检测模型UniAD,旨在通过一个模型处理多个类别的异常检测任务,如Figure1图(d)所示,同时避免为每个类别单独训练模型的弊端。
任务设置如Figure1图(d)所示,训练数据涵盖多个类别的正常样本,学习到的模型需要在没有任何微调的情况下完成所有这些类别的异常检测。
值得注意的是,类别信息(即类别标签)在训练和推理阶段都是不可访问的,这大大减轻了数据准备的难度。然而,解决这样的任务相当具有挑战性。
无监督异常检测的基本原理是对正常数据的分布进行建模,并找到一个紧凑的决策边界,如Figure1图(a)所示。在多类别情况下,我们希望模型能够同时捕捉所有类别的分布,以便它们可以共享同一个边界,如Figure1图(b)所示。但如果我们关注某个特定类别,比如Figure1图(b)中的绿色类别,其他类别的所有样本都应被视为异常,无论它们本身是正常的(即蓝色圆圈)还是异常的(即蓝色三角形)。从这个角度来看,如何准确建模多类别分布变得至关重要。
2.避免“ 雷同捷径 ” (identical shortcut)问题
在多类别异常检测中,传统的重建网络可能会陷入“ 雷同捷径 ”,即无论输入是正常样本还是异常样本,模型都能很好地重建,从而导致无法有效检测异常。本文通过提出新的方法改进特征重建过程,避免这一问题。
在Figure2中,构建了MLP、CNN和Transformer(带有查询嵌入)来重建由预训练骨干网络提取的特征。重建误差表示异常的可能性。可以发现,流行的重建网络在本研究的挑战性任务中表现不佳,通常会陷入“雷同捷径”,即直接复制输入内容而忽略其内容。
研究方法
针对以上问题提出本文的研究方法:
- 重新审视特征重建:分析了MLP、CNN和Transformer在多类别异常检测中的表现,发现这些方法容易陷入“雷同捷径”,即直接复制输入作为输出,导致异常检测性能下降。
- 提出UniAD框架:UniAD由邻居掩码编码器(NME)和分层查询解码器(LQD)组成。通过以下三项改进避免模型学习“雷同捷径”:
1、分层查询解码器(LQD):在每一层中引入可学习的查询嵌入,帮助模型建模多类别数据的复杂分布。
2、邻居掩码注意力(NMA):在注意力模块中掩码邻居token,防止从输入特征到重建输出的信息泄露。
3、特征抖动(FJ):向输入特征添加扰动,促使模型通过去噪任务学习正常样本的分布。
- 实验验证:在MVTec-AD和CIFAR-10数据集上进行实验,验证UniAD在异常检测和异常定位任务上的性能,并与现有方法进行对比。
UniAD框架的详细设计
- 邻居掩码注意力模块NMA
- 分层查询解码器LQD
- 特征抖动策略FJ
如Figure3所示,UniAD由邻居掩码编码器(NME)和分层查询解码器(LQD)组成。首先,由固定的预训练骨干网络提取的特征token通过NME进一步整合,生成编码器嵌入。然后,在LQD的每一层中,可学习的查询嵌入依次与编码器嵌入和前一层的输出(第一层为自融合)融合。特征融合通过邻居掩码注意力(NMA)完成。LQD的最终输出被视为重建特征。我们还提出了特征抖动(FJ)策略,向输入特征添加扰动,促使模型通过去噪任务学习正常分布。最后,通过重建差异获得异常定位和检测的结果。
在全注意力机制中,一个token可以看到自己,因此很容易通过简单复制来重建。此外,考虑到特征token是由CNN骨干网络提取的,邻居token必须共享许多相似性。因此,我们提出在计算注意力图时掩码邻居token的信息,迫使网络通过更远距离的token来理解当前点的信息,从而避免信息泄漏并提高模型的泛化能力。
主要创新点
-
提出了统一的多类别异常检测框架UniAD:通过一个模型处理多个类别的异常检测任务,避免了“一类一模型”的局限性。
-
有效避免“雷同捷径”问题:通过分层查询解码器、邻居掩码注意力和特征抖动策略,显著提高了模型在多类别异常检测中的性能,解决了传统方法在统一设置下容易陷入“雷同捷径”的问题。
讨论
在本研究中,主要处理了不同类型的对象,而没有进行区分。它没有使用可能帮助模型更好地拟合多类别数据的类别标签。如何将统一模型与类别标签结合应进一步研究。在实际使用中,正常样本也不像MVTec-AD中那样一致,通常表现出一定的多样性。