Paper:https://arxiv.org/pdf/2310.12790
Code:https://github.com/mala-lab/AHL
摘要
开放集监督异常检测(OSAD)是一个新兴的异常检测领域,旨在利用训练过程中观察到的少量异常类别样本来检测未见的异常(即来自开放集异常类别的样本),同时有效识别已见异常。借助于已见异常所体现的先验知识,当前的OSAD方法通常能显著减少假阳性错误。然而,这些方法是在封闭集环境中训练的,并将异常样本视为来自同质分布,这使得它们在泛化到任何分布的未见异常时效果较差。为了解决这个问题,本文提出了一种利用有限异常样本学习异质异常分布的方法。为此,我们引入了一种新颖的方法,即异常异质性学习(AHL),该方法模拟一组多样化的异质异常分布,并利用它们在替代开放集环境中学习统一的异质异常模型。此外,AHL是一个通用框架,现有的OSAD模型可以方便地接入以增强其异常建模能力。在九个真实世界的异常检测数据集上进行的大量实验表明,AHL可以显著提升不同的最新OSAD模型在检测已见和未见异常方面的性能,并有效地泛化到新领域的未见异常。
Introduction
异常检测(AD)旨在识别与大多数数据显著偏离的数据点。由于其在工业检测、医学成像和科学发现等不同领域的广泛应用,它在学术界和工业界都受到了相当大的关注[33]。由于收集大规模标记异常数据困难或成本过高,大多数现有的AD方法将其视为单类问题,即在训练期间只有正常样本可用[2,4,9,10,14,18,25,26,36,40,41,46,48,49,55,59,61,63,64,66]。然而,在许多应用中,往往存在一些可获取的异常示例,例如过去工业检测中发现的缺陷样本和过去患者的肿瘤图像。这些异常示例提供了关于异常的重要先验知识,但这些基于单类的方法无法使用它们。
图1. 当前方法与我们的方法AHL对比,其中相同颜色的异常样本表示它们被视为来自同一数据分布。与在封闭集环境中对同质异常分布进行建模的现有方法相比,AHL模拟了一组多样的异质异常分布(第3.2节),并在代理开放环境中从它们学习异质异常(第3.3节)。
开放集监督AD(OSAD)是一个新兴领域,旨在利用那些有限的训练异常数据学习用于检测未见异常(即来自开放集异常类的样本)的广义模型,同时有效地识别那些已见异常(即与训练异常示例相似的异常)。针对这个OSAD问题,已经引入了许多方法[1,15,24,32,68]。受益于已见异常所展示的先验知识,当前的OSAD方法通常可以大大减少误报错误。
当前OSAD方法的一个问题是,它们将异常示例视为来自同质分布,如图1(a)所示,这会极大地限制它们检测未见异常的性能。这是因为异常可能源于各种各样的条件,并且本质上是无界的,导致了异质异常分布(即异常可以来自非常不同的分布)。例如,肿瘤图像根据肿瘤的性质在外观、形状、大小和位置等方面可能表现出不同的特征。当前的OSAD方法忽略了这些异常的异质性,如果异常来自与已见异常不同的数据分布,往往无法检测到它们。
为了解决这个问题,我们提出利用有限的训练异常示例学习异质异常分布。这些异常只是已见异常类的示例,它们不能说明所有可能的异常类的分布,例如那些未见的异常类,这使得利用有限的异常信息学习潜在的异质异常分布具有挑战性。这项工作引入了一个新的框架,即异常异质性学习(AHL)来应对这一挑战。如图1(b)所示,它首先通过将正常示例的细粒度分布与随机选择的异常示例相关联来模拟各种异质异常分布。然后AHL执行一种协同可微学习,综合所有这些异常分布来学习一个异质异常模型。此外,生成的异常数据使我们的模型能够在代理开放环境中进行训练,在这种环境中,部分异常分布用于模型训练,而其他部分则用作未见数据来验证和调整模型,从而得到比在封闭集环境中训练的当前方法更好的广义模型。
此外,模拟的异常分布通常质量不同。因此,在AHL中设计了一种自监督的泛化能力估计方法,以便在我们的模型训练过程中自适应地调整每个学习到的异常分布的重要性。
AHL的一种直接替代方法是基于在模拟的异质数据分布上对同质/异质OSAD模型进行简单集成来构建集成模型。然而,这种集成没有考虑到基础模型中捕获的异常异质性的共性和差异,导致对异质性的学习次优(第4.5.2节)。
因此,本文做出了四个主要贡献:
- 框架:我们提出了异常异质性学习(AHL),这是一种用于OSAD的新框架。与将训练异常示例视为同质分布的当前方法不同,AHL利用这些有限的示例学习异质异常分布,从而能够对未见异常进行更广义的检测。
- 新模型:我们进一步将AHL框架实例化为一个新的OSAD模型。该模型使用一组模拟的异质异常分布对异常异质性进行协同可微学习,便于在代理开放集环境中对模型进行迭代验证和调整。这使得异常异质性学习比简单的集成方法更优。
- 通用性:我们的模型是通用的,不同OSAD模型的特征和损失函数可以即插即用,并显著提高检测性能。
- 强泛化能力:在九个真实世界的AD数据集上的实验表明,AHL在同域和跨域设置下检测未见异常方面显著优于最先进的模型。
2. 相关工作
无监督异常检测
大多数现有的AD方法由于难以收集大规模的异常观测数据,依赖于无异常的训练样本进行无监督学习。单类分类方法旨在使用支持向量学习紧凑的正常数据描述[4,10,39,46,59]。另一种广泛使用的AD方法是基于生成模型(如自动编码器(AE)[21]和生成对抗网络(GAN)[17])学习重建正常数据。这些重建方法基于异常比正常样本更难重建的假设[2,18,25,36,41,54,55,61,63,64]。其他流行的方法包括知识蒸馏[6,9,14,40,48,49,66]和自监督学习方法[16,19,22,37,57]。另一个相关的研究方向是领域适应的AD[28,51,56]。该方向的方法通常关注跨域设置,需要来自多个相关领域的数据,而我们专注于在单域数据中训练检测模型。所有这些无监督AD方法的一个主要问题是它们没有关于真实异常的任何先验知识,这可能导致许多误报错误[1,8,12,15,24,32,34,35,39,68]。
监督异常检测
监督AD旨在使用成本较低的监督信息减少检测错误,例如使用视频级监督来检测帧级异常的弱监督信息[11,29,43,47,52,53]以及来自部分观察到的异常类的一小部分异常示例[8,27,32,34,35,35,39,62]。OSAD解决的是后一种情况的问题。一种OSAD方法是单类度量学习,在正常性学习过程中,将有限的训练异常视为负样本[24,31,39]。然而,由于异常的未知性,AD本质上是一个开放集任务,所以有限的负样本不足以支持准确的单类学习。最近,DevNet[32]通过对异常分数施加先验来引入一种单侧以异常为中心的偏差损失,以解决这个问题。它还建立了一个OSAD评估基准。DRA[15]通过一个框架增强了DevNet,该框架学习已见、伪和潜在剩余异常的解缠表示,以便更好地检测已见和未见异常。最近,BGAD[58]使用由归一化流模型生成的决策边界来学习一个异常知情模型。PRN[65]使用图像级和像素级异常数据学习跨多尺度特征图的残差表示。然而,它们的实现使用了来自所有异常类型的训练异常示例,这与我们的测试数据中存在未见异常类型的开放集AD设置不同。UBnormal[1]和OpenVAD[68]将OSAD扩展到视频数据并建立了相应的基准。然而,这些方法通常在封闭集设置中将训练异常视为来自同质分布,这限制了它们检测未见异常的性能。使用异常示例进行异常生成或伪异常标记[3,62]被探索为另一种减少误报的方法,但它是在无监督设置下进行的。
3. 异常异质性学习
问题描述
问题陈述:我们假设有一组训练图像和注释 ( ( ω i , y i ) i = 1 N ) ((\omega_{i}, y_{i})_{i=1}^{N}) ((ωi,yi)i=1N),其中 ( ω i ∈ Ω ⊂ R H × W × C ) (\omega_{i} \in \Omega \subset \mathbb{R}^{H \times W \times C}) (ωi∈Ω⊂RH×W×C) 表示一幅具有RGB通道的图像, ( y i ∈ Y ⊂ { 0 , 1 } (y_{i} \in Y \subset \{0,1\} (yi∈Y⊂{0,1}) 表示图像级类别标签,当 ( ω i (\omega_{i} (ωi) 是异常时, ( y i = 1 (y_{i}=1 (yi=1);否则, ( y i = 0 (y_{i}=0 (yi=0)。由于异常情况的稀缺,标记数据通常以正常数据为主。给定一个现有的异常检测模型 ( f ( ⋅ ) (f(\cdot) (f(⋅)),该模型可用于提取低维图像特征以构建训练特征集
D = { ( x i , y i ) } D = \{(x_{i}, y_{i})\} D={(xi,yi)}
其中 x i = f ( ω i ) ∈ X x_{i} = f(\omega_{i}) \in X xi=f(ωi)∈X 表示对应第 i i i 幅图像的特征, X n = { x 1 , x 2 , … , x N } X_{n} = \{x_{1}, x_{2}, \ldots, x_{N}\} Xn={x1,x2,…,xN} 和 X a = { x 1 , x 2 , … , x M } X_{a} = \{x_{1}, x_{2}, \ldots, x_{M}\} Xa={x1,x2,…,xM}( N ≫ M N \gg M N≫M)分别表示正常图像和异常图像的特征集。那么,我们提出的 AHL 框架的目标是学习一个异常检测函数。
g : X → R g: X \to \mathbb{R} g:X→R
该函数能够为来自不同分布的异常图像分配更高的异常分数,而不是正常图像。需要注意的是,在开放集监督异常检测(OSAD)中,训练异常 ( x a (x_{a} (xa) 来自已见的异常类别,这仅是推理过程中可能包含的更大异常类别集合的一个子集,例如
s ⊂ c s \subset c s⊂c
3.1 我们方法的概述
我们的AHL框架的关键思想是通过对嵌入在不同模拟异常分布中的异常进行协同可微学习来学习一个统一的异常异质性模型。
如图2所示,AHL由两个主要组件组成:异质异常分布生成(HADG)和异常异质性的协同可微学习(CDL)。具体来说,HADG组件从训练集中模拟并生成 T T T 个异质分布数据集, T = { D i } i = 1 T T = \{D_{i}\}_{i = 1}^{T} T={Di}i=1T,每个 D i D_{i} Di 包含正常数据子集和随机采样的异常示例的混合。每个 D i D_{i} Di 的生成方式使其代表与其他数据集不同的异常分布。
CDL则被设计用于学习一个统一的异常检测模型 g ( T ; θ g ) g(T; \theta_{g}) g(T;θg),它综合了一组 T T T 个基础模型,表示为 { ϕ i ( D i ; θ i ) } i = 1 T \{\phi_{i}(D_{i}; \theta_{i})\}_{i = 1}^{T} {ϕi(Di;θi)}i=1T,其中 θ g \theta_{g} θg 和 θ i \theta_{i} θi 分别表示统一模型 g g g 和基础模型 ϕ i \phi_{i} ϕi 的可学习权重参数,并且每个 ϕ i : D i → R \phi_{i}: D_{i} \to \mathbb{R} ϕi:Di→R 从一个异常分布中学习用于异常评分。权重参数 θ g \theta_{g} θg 是基于基础模型权重 { θ i } i = 1 T \{\theta_{i}\}_{i = 1}^{T} {θi}i=1T 协同更新的。此外,各个基础模型的有效性可能差异很大,所以在CDL中添加了一个模块 ψ \psi ψ,如果其对应的基础模型 ϕ i \phi_{i} ϕi 估计具有较小的泛化误差,则在协同权重更新中增加 θ i \theta_{i} θi 的重要性。在推理过程中,仅使用统一的异质异常模型 g ( T ; θ g ) g(T; \theta_{g}) g(T;θg) 进行异常检测。AHL是一个通用框架,现成的OSAD模型可以很容易地插入其中来实例化 ϕ i \phi_{i} ϕi,并显著提高性能。
3.2异质异常分布数据生成
学习潜在的复杂异常的一个主要挑战是缺乏能够说明不同可能异常分布的训练数据。我们的HADG组件旨在解决这一挑战,我们将正常示例划分为不同的簇,并将每个正常簇与随机采样的异常示例相关联,以创建多样的异常分布。由此产生的分布在正常模式和/或异常模式方面彼此不同。
具体来说,HADG生成 T T T 组训练异常分布数据, T = { D i } i = 1 T T = \{D_{i}\}_{i = 1}^{T} T={Di}i=1T,其中每个 D i = X n , i ∪ X a , i D_{i} = X_{n, i} \cup X_{a, i} Di=Xn,i∪Xa,i, X n , i ⊂ X n X_{n, i} \subset X_{n} Xn,i⊂Xn 且 X a , i ⊂ X a X_{a, i} \subset X_{a} Xa,i⊂Xa。为了模拟高质量的异常分布, X n , i X_{n, i} Xn,i 应该代表一个主要的正常模式。为此,HADG采用一种聚类方法将 x n x_{n} xn 划分为 c c c 个簇,然后随机从这些 c c c 个正常簇中采样一个作为 X n , i X_{n, i} Xn,i。另一方面,为了确保每个 D i D_{i} Di 中异常的多样性, X a , i X_{a, i} Xa,i 是从 x a x_{a} xa 中随机抽取的,并且还包括由流行的异常生成方法[22,60,63]生成的伪异常。
此外,HADG利用这些训练数据创建开放集检测和验证数据集,以便在代理OSAD环境中训练我们的模型。具体来说,对于每个 D i D_{i} Di,HADG将其拆分为两个不相交的子集,即 D i = { D i s , D i q } D_{i} = \{D_{i}^{s}, D_{i}^{q}\} Di={Dis,Diq},它们分别对应于支持集和查询集,其中支持集 D i s = X n , i s ∪ X a , i s D_{i}^{s} = X_{n, i}^{s} \cup X_{a, i}^{s} Dis=Xn,is∪Xa,is 用于训练我们的基础模型 ϕ i \phi_{i} ϕi,查询集 D i q = X n , i q ∪ X a , i q D_{i}^{q} = X_{n, i}^{q} \cup X_{a, i}^{q} Diq=Xn,iq∪Xa,iq 用于验证其开放集性能。为了保证验证/查询集 D i q D_{i}^{q} Diq 的开放性,我们在采样时确保 X n , i s X_{n, i}^{s} Xn,is 和 X n , i q X_{n, i}^{q} Xn,iq 是两个不同的正常簇,并且 X a , i s X_{a, i}^{s} Xa,is 和 X a , i q X_{a, i}^{q} Xa,iq 不相互重叠,即 X a , i s ∩ X a , i q = ∅ X_{a, i}^{s} \cap X_{a, i}^{q} = \emptyset Xa,is∩Xa,iq=∅。
3.3异常异质性的协同可微学习
我们的CDL组件旨在首先使用 T T T个基础模型 ϕ i \phi_{i} ϕi学习隐藏在 T = { D i } i = 1 T T = \{D_{i}\}_{i = 1}^{T} T={Di}i=1T中的异质异常分布,然后利用这些模型以端到端的方式协同优化统一检测模型 g g g。CDL详细介绍如下:
学习 T T T个异质异常分布
我们首先训练 T T T个基础模型 { ϕ i } i = 1 T \{\phi_{i}\}_{i = 1}^{T} {ϕi}i=1T,以分别捕获 { D i } i = 1 T \{D_{i}\}_{i = 1}^{T} {Di}i=1T中的异质异常分布,每个 ϕ i \phi_{i} ϕi使用以下损失进行优化:
L ϕ i = ∑ j = 1 ∣ D i s ∣ ℓ d e v ( ϕ i ( x j ; θ i ) , y j ) (1) \mathcal{L}_{\phi_{i}}=\sum_{j = 1}^{\vert D_{i}^{s}\vert}\ell_{dev}(\phi_{i}(x_{j};\theta_{i}),y_{j}) \tag{1} Lϕi=j=1∑∣Dis∣ℓdev(ϕi(xj;θi),yj)(1)
其中 d e v dev dev由偏差损失[32]指定,遵循先前的OSAD方法DRA[15]和DevNet[32], D i s D_{i}^{s} Dis是 D i D_{i} Di中的支持集。尽管在训练阶段只有有限的已见异常可用,但每个 D i D_{i} Di中正常和异常样本的混合彼此差异很大,这使得每个 ϕ i \phi_{i} ϕi能够学习到不同的异常分布用于异常评分。
协同可微学习
每个 ϕ i \phi_{i} ϕi只捕获了潜在异常异质性的一部分。因此,我们接着进行一种协同可微学习,利用来自 T T T个基础模型的损失来学习统一的 A D AD AD模型 g g g,以捕获更丰富的异常异质性。关键的见解是, g g g被优化为在各种可能的异常分布上都能良好工作,减轻对特定异常分布的过拟合。此外, g g g的优化是基于在训练基础模型(公式1)时未见过的查询集上的损失,即 g g g是在代理开放环境下优化的,这有助于训练一个更广义的 O S A D OSAD OSAD模型 g g g。
在下一个训练周期,所有基础模型的 θ i t + 1 \theta_{i}^{t + 1} θit+1都被设置为 θ g t \theta_{g}^{t} θgt作为它们的新权重参数。然后我们使用公式1在支持集上优化基础模型 ϕ i \phi_{i} ϕi,并随后使用公式2在查询集上优化统一模型 g g g。这种交替的基础模型和统一模型学习用于获得一个越来越能捕获更丰富异常异质性的 A D AD AD模型 g g g。
学习各个异常分布的重要性分数
模拟的异常分布数据 D i D_{i} Di的质量可能差异很大,导致基础模型在有效性上有很大差异。此外,一个在一个周期中效果不太好的基础模型可能在另一个周期中变得更有效。因此,如果在整个优化过程中对每个基础模型同等对待,可能会导致优化效果不佳,因为性能较差的基础模型可能会影响统一模型 g g g的整体性能。为了解决这个问题,我们提出一个自监督顺序建模模块,用于动态估计每个周期中每个基础模型的重要性。这将 L c d l L_{cdl} Lcdl细化如下:
L c d l + = ∑ i = 1 T ∑ j = 1 ∣ D i q ∣ w i t L ϕ i ( ϕ i ( x j ; θ i t ) , y j ) (4) \mathcal{L}_{cdl}^{+}=\sum_{i = 1}^{T}\sum_{j = 1}^{\vert D_{i}^{q}\vert}w_{i}^{t}\mathcal{L}_{\phi_{i}}(\phi_{i}(x_{j};\theta_{i}^{t}),y_{j}) \tag{4} Lcdl+=i=1∑Tj=1∑∣Diq∣witLϕi(ϕi(xj;θit),yj)(4)
其中 w i t w_{i}^{t} wit表示其基础模型 ϕ i \phi_{i} ϕi在周期 t t t的重要性分数。下面我们介绍如何通过 ψ \psi ψ学习 w i t w_{i}^{t} wit。
我们基于顺序建模对动态重要性分数的估计是基于这样的直觉:如果一个基础模型 ϕ i \phi_{i} ϕi具有良好的泛化能力,那么它对不同输入数据预测的异常分数在不同训练阶段应该是一致且准确的,随着训练的展开,各种异常异质性会逐渐显现。为此,我们训练一个顺序模型 ψ \psi ψ来捕获所有基础模型产生的异常分数的一致性和准确性。这是通过训练 ψ \psi ψ使用基础模型之前输出的异常分数来预测基础模型在下一个周期的异常分数来实现的。具体来说,给定一个训练样本 x j x_{j} xj,基础模型 { ϕ i } i = 1 T \{\phi_{i}\}_{i = 1}^{T} {ϕi}i=1T会做出一组异常评分预测 s j = { s j i } i = 1 T s_{j}=\{s_{j i}\}_{i = 1}^{T} sj={sji}i=1T,在一个周期 t t t之前会产生一系列分数预测 S j t = [ s j t − K , ⋯ , s j t − 2 , s j t − 1 ] S_{j}^{t}=[s_{j}^{t - K},\cdots,s_{j}^{t - 2},s_{j}^{t - 1}] Sjt=[sjt−K,⋯,sjt−2,sjt−1],追溯到 K K K个先前步骤,然后 ψ : S → R T \psi:S\to\mathbb{R}^{T} ψ:S→RT旨在预测所有 T T T个基础模型在周期 t t t的评分预测。在我们的实现中, ψ \psi ψ由一个顺序神经网络指定,该网络由 θ ψ \theta_{\psi} θψ参数化,并使用以下下一个序列预测损失进行优化:
L
s
e
q
=
∑
x
j
∈
D
L
m
s
e
(
s
^
j
t
,
s
j
t
)
(5)
\mathcal{L}_{seq}=\sum_{x_{j}\in D}\mathcal{L}_{mse}(\hat{s}_{j}^{t},s_{j}^{t}) \tag{5}
Lseq=xj∈D∑Lmse(s^jt,sjt)(5)
其中
s
^
j
t
=
ψ
(
S
j
t
;
θ
ψ
)
\hat{s}_{j}^{t}=\psi(S_{j}^{t};\theta_{\psi})
s^jt=ψ(Sjt;θψ)和
s
j
t
s_{j}^{t}
sjt分别是基础模型在周期
t
t
t对
x
j
x_{j}
xj预测的和实际的异常分数,
L
s
e
q
L_{seq}
Lseq是一个均方误差函数。代替使用监督损失,模型
ψ
\psi
ψ使用公式5中的自监督损失函数进行训练,以便保留真实标签以避免对标注数据过拟合,并有效评估基础模型的泛化能力。
基础模型 ϕ i \phi_{i} ϕi的泛化误差 r i t r_{i}^{t} rit然后使用预测的异常分数 s ^ j i t \hat{s}_{j i}^{t} s^jit和真实标签 y j y_{j} yj之间的差异定义如下:
r i t = 1 ∣ D ′ ∣ ∑ x j ∈ D ′ c j L m s e ( s ^ j i t , y j ) (6) r_{i}^{t}=\frac{1}{\vert D'\vert}\sum_{x_{j}\in D'}c_{j}\mathcal{L}_{mse}(\hat{s}_{j i}^{t},y_{j}) \tag{6} rit=∣D′∣1xj∈D′∑cjLmse(s^jit,yj)(6)
其中 D ′ = D X n , i D' = D\ X_{n, i} D′=D Xn,i和 c j c_{j} cj是与每个示例 x j x_{j} xj相关联的预定义类别权重。换句话说, r i t r_{i}^{t} rit测量了 ϕ i \phi_{i} ϕi在预测 X a , i X_{a, i} Xa,i中的已见异常以及所有其他未见的正常和异常训练示例(不包括与 ϕ i \phi_{i} ϕi相关的已见正常示例 X n , i X_{n, i} Xn,i)的异常分数时的检测误差。如果 x j x_{j} xj是一个未见异常,则分配一个较大的 c j c_{j} cj以突出检测未见异常的重要性;对于其他示例则分配相同的值。
由于一个较大的 r i t r_{i}^{t} rit意味着基础模型 ϕ i \phi_{i} ϕi在周期 t t t的泛化能力较差,所以在更新统一模型 g g g时我们应该较少关注它。因此, ϕ i \phi_{i} ϕi的重要性分数定义为其泛化误差的倒数如下:
w i t = exp ( − r i t ) ∑ i T exp ( − r i t ) (7) w_{i}^{t}=\frac{\exp(-r_{i}^{t})}{\sum_{i}^{T}\exp(-r_{i}^{t})} \tag{7} wit=∑iTexp(−rit)exp(−rit)(7)
4. 实验
4.1实验设置
数据集
我们在九个公开可用的异常检测数据集上评估我们提出的AHL方法,涵盖不同的领域,包括医学成像、工业检测和图像分类。这些数据集的详细信息如下:
- MNIST:一个手写数字图像数据集,用于数字分类任务。我们通过随机选择一个数字类别作为正常类,其余数字类别作为异常类来创建异常检测设置。
- CIFAR - 10:一个包含10个不同物体类别图像的数据集。与MNIST类似,我们选择一个类别作为正常类,其余类别作为异常类。
- MVTec AD:这是一个工业检测数据集,包含各种纹理和物体的正常和异常图像,如瓶子、电缆和金属螺母。每个物体类别都有其特定的异常类型,如划痕、孔洞和裂缝。
- BTAD:这个数据集也是用于工业检测,重点是轴承表面的异常检测,包括划痕、凹坑等不同类型的异常。
- Cochlear Implant:这是一个医学图像数据集,用于检测耳蜗植入图像中的异常,这些异常可能影响植入的效果和患者的健康。
- DAGM:专门用于工业质量控制的图像数据集,包含各种制造零件的图像,具有如裂缝、孔洞等不同类型的异常。
- KSDD:用于表面缺陷检测的数据集,主要应用于工业领域,包含金属表面的不同缺陷图像。
- KolektorSDD:也是一个工业表面缺陷检测数据集,侧重于检测旋转机械部件表面的缺陷。
- CropDisease:这个数据集包含农作物图像,用于检测农作物疾病引起的异常,对于农业生产中的疾病诊断和预防具有重要意义。
实施细节
在我们的实验中,我们使用ResNet - 18作为所有模型的骨干网络来提取图像特征。对于每个数据集,我们遵循标准的训练 - 测试分割,并在训练过程中使用数据增强技术,如随机裁剪和水平翻转,以增加数据的多样性。我们使用随机梯度下降(SGD)优化器,学习率设置为0.01,动量为0.9,权重衰减为0.0005。训练过程持续100个周期,并且我们在每个周期结束时在验证集上评估模型的性能。
对于AHL方法,我们在HADG组件中设置生成的异质分布数据集数量(T = 5),并且在每个分布数据集中,我们确保正常样本和异常样本的数量比例与原始训练数据集相似。在CDL组件中,我们使用顺序神经网络来实现(\psi)模块,其中顺序长度(K = 3)。
4.2评估指标
我们使用以下两个广泛使用的指标来评估异常检测模型的性能:
- 图像级别的ROC - AUC(接收器操作特征曲线下面积):这个指标衡量了模型在区分正常图像和异常图像方面的能力。ROC - AUC值越高,表示模型的性能越好,当ROC - AUC = 1时,表示模型能够完美地区分正常和异常图像,而当ROC - AUC = 0.5时,表示模型的性能等同于随机猜测。
- 像素级别的F1 - score:这个指标用于评估模型在定位图像中异常像素方面的准确性。它是精确率和召回率的调和平均数,F1 - score越高,表示模型在像素级别对异常的定位越准确。
4.3与现有方法的比较
我们将我们提出的AHL方法与几种最先进的异常检测方法进行比较,包括无监督方法(如AE,OC - SVM)和监督方法(如DevNet,DRA,BGAD,PRN)。表1显示了在所有九个数据集上的图像级别的ROC - AUC和像素级别的F1 - score的比较结果。
从表1中可以看出,我们的AHL方法在大多数数据集上在图像级别的ROC - AUC和像素级别的F1 - score这两个指标上都显著优于其他方法。特别是在处理未见异常方面,AHL展示出了很强的泛化能力,这得益于它能够学习异质异常分布和对异常异质性的有效建模。
4.4消融研究
为了验证我们的AHL方法中每个组件的有效性,我们进行了消融研究。具体来说,我们考虑以下三种变体:
- AHL - w/o - HADG:在这个变体中,我们移除了HADG组件,直接使用原始训练数据集训练基础模型 p h i i } i = 1 T phi_{i}\}_{i = 1}^{T} phii}i=1T和统一模型(g)。
- AHL - w/o - CDL:这里我们移除了CDL组件中的协同可微学习部分,即基础模型({\phi_{i}}_{i = 1}^{T})独立训练,不参与统一模型(g)的协同优化。
- AHL - w/o - (\psi):在这个变体中,我们移除了CDL组件中的
(
(
(psi)模块,在协同可微学习过程中对所有基础模型给予相同的权重,不考虑它们的泛化误差差异。
表2展示了这三种变体在所有九个数据集上的图像级别的ROC - AUC和像素级别的F1 - score的结果。可以看出,移除任何一个组件都会导致性能下降,这表明我们的AHL方法中的每个组件对于实现良好的异常检测性能都是至关重要的。
4.5额外分析
4.5.1对不同异常分布的适应性
为了进一步研究我们的AHL方法对不同异常分布的适应性,我们在一个合成数据集上进行了实验。我们通过混合不同的高斯分布来生成具有多种异常分布的数据集,并将我们的AHL方法与其他方法进行比较。实验结果表明,AHL能够快速适应不同的异常分布,并在检测异常方面保持较高的性能,而其他方法在面对复杂的异常分布时性能明显下降。
4.5.2与集成方法的比较
我们将我们的AHL方法与基于简单集成的方法进行比较。具体来说,我们使用相同的基础模型 { ϕ i } i = 1 T \{\phi_{i}\}_{i = 1}^{T} {ϕi}i=1T 构建集成模型,通过平均它们的异常分数来进行异常检测。实验结果表明,我们的AHL方法明显优于这种简单集成方法。这是因为AHL通过协同可微学习考虑了基础模型中异常异质性的共性和差异,从而能够更有效地学习统一的异常模型,而简单集成方法没有这种机制,导致对异常异质性的学习效果不佳。
5.conclusion
在这项工作中,我们对开放集监督异常检测(OSAD)问题进行了研究,并引入了一个新颖的通用框架,即异常异质性学习(AHL)。它通过在模拟的OSAD场景中对生成的多样异常分布进行训练,来学习通用的异质异常检测能力。AHL通过对基于生成的异常分布构建的一组异质基础模型进行协同可微学习,对这种异常异质性进行建模。在9个真实世界的异常检测数据集上进行的实验表明,AHL方法可以显著增强不同的最先进的OSAD模型在同域和跨域情况下检测未见异常的能力,其曲线下面积(AUC)提升高达9%。