赞
踩
题目:在异常检测中从正和未标记的多示例包中学习 (Learning from positive and unlabeled multi-instance bags in anomaly detection)
背景:
动机:MIL中没有基于PU学习进行异常检测的工作
策略:提出首次在异常检测中从PU包学习的方法:
https://github.com/Lorenzo-Perini/PU-MIL-AD
@inproceedings{Perini:2023:18971906,
author = {Perini, Lorenzo and Vercruyssen, Vincent and Davis, Jesse},
title = {Learning from positive and unlabeled multi-instance bags in anomaly detection},
booktitle = {{SIGKDD}},
pages = {1897--1906},
year = {2023},
url = {https://dl.acm.org/doi/abs/10.1145/3580305.3599409}
}
一些重要的符号如下。当应用到异常检测时,MIL的任务是通过概率函数为包或者实例分配标签。本文将同时完成这两个任务。
符号 | 含义 |
---|---|
X = { x 1 , … , x N } X=\{x_1,\dots,x_N\} X={x1,…,xN} | 数据集 |
x i ∈ R d x_i\in\mathbb{R}^d xi∈Rd | 实例 |
N N N | 实例数 |
B = { x 1 , … , x k } B=\{x_1,\dots,x_k\} B={x1,…,xk} | 包 |
M M M | 包的数量 |
k k k | 包的大小 ( k × M = N k\times M=N k×M=N) |
Y B Y_B YB | 包标签 |
y x y_x yx | 实例标签 |
在PU学习中,模型只能访问正实例和未标记实例。基于该设置,我们假设无标签数据集中仅有正包的标签被提供,即 Y B = 1 , B ∈ P Y_B=1,B\in P YB=1,B∈P,以及 B ∈ U B\in U B∈U时 Y B Y_B YB未知,其中 P P P和 U U U分别是有标记包和无标记包。因为本文假设标签是完全随机选择 (SCAR),每个正包有常数概率 c c c被标记。然而,目前仅有少数文献关注PU包下的MIL,其它的则更多关注半监督MIL。
异常检测是为实例分配一个判断其异常程度得分的算法。本文使用一个自编码器 (AE) 作为异常检测器。AE是一个包含将实例 x x x映射到低维隐空间的编码器和一个将其映射回原始空间的编码器的神经网络,其目标是找到一个能够准确重构输入的低维表示。
在异常检测中,一个分配异常得分的通用方式是使用其重构损失: a θ = ∥ x − AE θ ( x ) ∥ 2 a_\theta=\|x-\text{AE}_\theta(x)\|^2 aθ=∥x−AEθ(x)∥2,其中 ∥ ⋅ ∥ \|\cdot\| ∥⋅∥是欧式正则, AE θ ( x ) \text{AE}_\theta(x) AEθ(x)是重构后的输入。因为AE在训练集上最小化 a θ ( x ) a_\theta(x) aθ(x),在测试集上的重构损失越高,则越可能是异常实例。在本文中,我们将异常类别定义为正实例或者正包。有工作引入不确切AUC并使用自动编码器从包标签中学习。 然而,他们假设有一个完全标记的环境,且正包中恰好包含一种异常现象。
本文主要处理以下问题:
输入:一个正包 (异常) 的集合
P
P
P,一个无标签集合
U
U
U;
目的:分别找到一个包概率函数
F
F
F和实例概率函数
f
f
f,以判断包和实例异常的概率。
从PU包中学习以进行异常检测有以下四个挑战:
本文引入正和无MIL异常检测器 (PUMA
),其在全新的损失引导下同时在实例级和包级分配正类 (异常) 概率。特别地,PUMA训练一个包含两部分损失函数
L
=
L
u
+
L
p
L=L_u+L_p
L=Lu+Lp的AE:
在本文的设置下,数据集中仅有少量甚至没有标签,异常检测器需要利用大量的无标签数据。对此,我们选择AE作为关键技术,理由如下:
因为网络的输入是包的集合,本文将按包重构损失
R
θ
(
B
)
=
1
k
∑
j
=
1
k
a
θ
(
x
j
)
\mathcal{R}_\theta(B)=\frac{1}{k}\sum_{j=1}^ka_\theta(x_j)
Rθ(B)=k1∑j=1kaθ(xj)用于无标记包
B
B
B。
L
u
L_u
Lu则计算为所有无标记包的按包重构损失的平均:
L
u
:
=
1
∣
U
∣
∑
B
∈
U
R
θ
(
B
)
=
1
k
∣
U
∣
∑
B
∈
U
∑
x
j
∈
B
a
θ
(
x
j
)
(1)
\tag{1} L_u:=\frac{1}{|U|}\sum_{B\in U}\mathcal{R}_\theta(B)=\frac{1}{k|U|}\sum_{B\in U}\sum_{x_j\in B}a_\theta(x_j)
Lu:=∣U∣1B∈U∑Rθ(B)=k∣U∣1B∈U∑xj∈B∑aθ(xj)(1)
构建使用正包标签的损失函数需要设置一个学习方法,其中:
因为AE的实例异常得分的区间为
[
0
,
+
∞
)
[0,+\infty)
[0,+∞),这无法保证不同包之间具有可比较的缩放比例。通过应用Platt缩放,我们将实例重构损失
a
θ
(
x
)
a_\theta(x)
aθ(x)转换为校准概率:
f
(
x
)
=
P
(
y
x
=
1
)
^
=
1
1
+
exp
(
−
α
a
θ
(
x
)
−
β
)
(2)
\tag{2} f(x)=\widehat{\mathbb{P}(y_x=1)}=\frac{1}{1+\exp(-\alpha a_\theta(x)-\beta)}
f(x)=P(yx=1)
=1+exp(−αaθ(x)−β)1(2)其中
f
f
f依赖于AE的参数
θ
\theta
θ,
α
,
β
∈
R
\alpha,\beta\in\mathbb{R}
α,β∈R是校准参数。注意该准则不受
f
f
f特定选择的约束,但可以将任意变换转换到
[
0
,
1
]
[0,1]
[0,1]。
通过最大概率实例来计算包概率的方式意味着模型仅根据最能促发包标签的实例更新,从而忽略包中其它实例的信息。另一方面,对实例概率未加权平均会使包含少量异常的包看起来比正常包更正常。一个策略是使用Noisy-OR方法,其将正包为正的概率计算为1减所有实例为负的概率。然而,这在 k k k较大时,该方法将是病态的。因此,本文提出了一个加权Noisy-OR方法。
该方法的关键启发是,具有最大和最低正概率的实例应当有更大的权重,因为它们对包标签的贡献更大:
F
(
B
)
=
P
(
Y
B
=
1
)
^
=
1
−
∏
x
j
∈
B
(
1
−
f
(
x
j
)
)
w
j
(3)
\tag{3} F(B)=\widehat{\mathbb{P}(Y_B=1)}=1-\prod_{x_j\in B}(1-f(x_j))^{w_j}
F(B)=P(YB=1)
=1−xj∈B∏(1−f(xj))wj(3)其中
F
F
F依赖于
θ
\theta
θ,
w
j
w_j
wj是实例
x
j
x_j
xj的权重。注意如果使用
1
−
f
(
x
j
)
w
j
1-f(x_j)^{w_j}
1−f(xj)wj而非
(
1
−
f
(
x
j
)
)
w
j
(1-f(x_j))^{w_j}
(1−f(xj))wj,将导致实例的概率被修改且变为等权重汇聚,这将违背方法的初衷。
权重的选择应该反应包概率,其主要由包中最高概率和最低概率 f ( x j ) f(x_j) f(xj)决定。因此:
仅从正包中学习将使得模型怼正类过拟合。因此,我们选择 ∣ R ∣ = ∣ P ∣ |R|=|P| ∣R∣=∣P∣个负包,以将问题转换为类别平衡分类任务。PUMA选择具有最低正概率 F ( B ) F(B) F(B)的 ∣ R ∣ |R| ∣R∣个包。这需要假设正负包之间有足够的差距。这在异常检测中似乎是可行的,因为异常通常与正样本有足够的距离。然而,这也的选择规则将引入偏差,因为负包不是以独立同分布的方式选择。我们尝试通过让模型在训练的每次迭代中重新选择不同的 R R R来限制偏差。以这种方式,PUMA将逐步完善其对负类别的学习定义。
包概率函数
F
F
F的评估需要将其输出与真实标签相比较。因此,
L
p
L_p
Lp的构建需要考虑正包和所选择的负包标签的对数似然:
L
p
=
−
log
(
∏
B
∈
P
F
(
B
)
∏
B
∈
R
(
1
−
F
(
B
)
)
)
+
λ
(
α
2
+
β
2
)
(4)
\tag{4} L_p=-\log\left( \prod_{B\in P} F(B) \prod_{B\in R} (1-F(B)) \right)+\lambda\left( \alpha^2 + \beta^2 \right)
Lp=−log(B∈P∏F(B)B∈R∏(1−F(B)))+λ(α2+β2)(4)其中
λ
(
α
2
+
β
2
)
\lambda(\alpha^2+\beta^2)
λ(α2+β2)用于避免过拟合,这里设置
λ
=
0.01
\lambda=0.01
λ=0.01。
对于最终的损失函数 L = L u + L p L=L_u+L_p L=Lu+Lp中没有加缩放因子,理由如下:
标准Noisy-OR算法广泛应用于MIL中,本节主要回答以下问题:为什么加权Noisy-OR相较于不加权是必要的?
给定一个包
B
B
B,标准Noisy-OR计算为:
(
Noisy-OR
)
R
(
Y
B
=
1
)
^
=
1
−
∏
j
≤
k
(
1
−
f
(
x
j
)
)
.
(\text{Noisy-OR})\qquad\widehat{\mathbb{R}(Y_B=1)}=1-\prod_{j\leq k}(1-f(x_j)).
(Noisy-OR)R(YB=1)
=1−j≤k∏(1−f(xj)).然而,当
k
k
k较大时,该概率值酱收敛到1。
最大和最小实例概率对包概率有最大的影响,加权Noisy-OR不受 k k k的影响。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。