一、简介
题目:
(1)On Mixup Training: Improved Calibration and Predictive Uncertainty for Deep Neural Networks
(2)CutMix: Regularization Strategy to Train Strong Classifiers with Localizable Features
(3)PixMix: Dreamlike Pictures Comprehensively Improve Safety Measures
会议: (1)NeurIPS 2019、(2)ICCV 2019、(3)CVPR 2022
任务: 分布外检测(Out-of-Distribution Detection, OOD Detection),测试集中可能出现超出训练集样本分布的样本(可以是来自未知类的样本、被破坏的样本、异常样本等等),要求将这些样本隔离出来。
Note: OOD Detection与开放集识别(Open Set Recognition, OSR)的任务目标类似,但通常OSR比OOD Detection更难一些。例如,如果训练类为数字1⃣️~5⃣️,OSR要拒绝的可能是测试集中的数字6⃣️、7⃣️,而OOD Detection要拒绝的可能是✈️、🚗。显然,相比✈️、🚗,数字6⃣️、7⃣️与1⃣️~5⃣️更加相似,也就更难被区分出来。
Idea:
使用数据增强方法,在训练集中提前引入干扰或噪声,使分类器在训练时就能够见到一些OOD样本,从而使分类器具备一些更有利于OOD Detection的性质,例如校准(Calibration)、鲁棒性(Robustness)等,这些性能的含义和作用下面会详细讲。
如图,Cutout将图像的一部分移除或遮挡,Mixup将两个图像混合,CutMix将两个图像部分区域互换,PixMix将图像与不规则图形混合。
二、详情
1. Mixup
通常,神经网络分类器会有过分自信(Over-Confident)的问题,即SoftMax输出的最大概率值(后面简称为获胜分数)一般较大,这就导致即使分类器将一个样本分错了,这个样本的获胜分数仍然可能很大。例如,假设一共有3个已知类别,分类器将属于第一个类别的某个样本错误地分到了第二个类中,对应的SoftMax输出可能是 [ 0.01 , 0.99 , 0.0 ] [0.01, 0.99, 0.0] [0.01,0.99,0.0]。显然,分类器对自己的判断过于自信了,在这种情况下,如果遇到的是OOD的样本,这种问题将更加突出。
为了解决分类器过分自信的问题,我们会希望分类器具有好的校准能力。通俗来说,就是希望分类器对于无法做出准确判断的样本,分配的获胜分数应尽可能小,从而表示自己没有足够的信心正确分类该样本;对于有足够信心做出准确判断的样本,则可分配更高的获胜分数。
如果用准确率和获胜分数来形容,就是希望准确率和获胜分数呈现相近的分布。更直白的说,就是如果获胜分数为0.9的样本的准确率(被正确分类的可能性)最高,那就让分类器多给样本分配0.9的获胜分数。
如图,横轴为平均获胜得分,纵轴为准确率,可以看到随着epoch增加,各批次的(平均获胜得分,准确率)分布也在不断变化。第一行是常规训练分布变化图,随着epoch增加,平均获胜分数的分布趋向尖峰状,但其准确率却有高有低,这就是分类器的过分自信问题的直观展示,也就是说即使分类器无法保证预测的准确性,也会分配很高的获胜分数。第二行则是通过Mixup改善该问题后的结果,可以看到准确率和最大分数的分布更相似了,也就是说此时的分类器会分配更多能得到高准确率的分数给样本。这样,只有在分类器对某个样本很有正确分类的信心时,才会分配很高的获胜分数,对没信心的就会分配较低的获胜分数。
Mixup通过取原始训练数据附近的样本点和标签做额外的训练集实现数据增强,公式如下:
x
~
=
λ
x
i
+
(
1
−
λ
)
x
j
y
~
=
λ
y
i
+
(
1
−
λ
)
y
j
\tilde{x}=\lambda x_i+(1-\lambda)x_j \\ \tilde{y}=\lambda y_i+(1-\lambda)y_j
x~=λxi+(1−λ)xjy~=λyi+(1−λ)yj 其中,
x
~
\tilde x
x~和
y
~
\tilde y
y~为生成的近邻样本和标签,
x
i
x_i
xi和
x
j
x_j
xj为两个原始训练数据,
y
i
y_i
yi和
y
j
y_j
yj是它们的one-hot硬标签,
λ
\lambda
λ采样自
B
e
t
a
(
α
,
α
)
Beta(\alpha,\alpha)
Beta(α,α)。
α
=
0
\alpha=0
α=0时,生成的样本就是
x
i
x_i
xi或
x
j
x_j
xj;
α
=
1
\alpha=1
α=1时,生成的样本就是
x
i
x_i
xi和
x
j
x_j
xj的平均。通常,
α
∈
[
0.1
,
0.4
]
\alpha\in[0.1,0.4]
α∈[0.1,0.4]有较好的性能。
综上,本质上,Mixup是通过标签平滑或软标签来解决分类器的过分自信问题的。 在得到了经校准的SoftMax输出后,直接对获胜分数设定阈值,将获胜分数低于阈值的归为OOD便是一个简易的OOD Detection方式。
2. CutMix
为了使分类器不会过度关注图像的某个小区域,Cutout随机选择一个区域并将其掩盖或去除,以提高模型的泛化和目标定位能力。CutMix希望保留Cutout移除部分区域所起到的避免过度关注某个小区域的作用,同时还希望被移除的区域不会被丢弃而导致一些有效信息的丢失。于是,CutMix采用了换补丁的策略,即先切下当前图像的一个子区域,再取另一个图像对应的子区域补上来,并根据补丁在完整图像中的占比对标签进行平滑。
如图,CutMix不仅能通过标签平滑(Mixed image & label)起到Mixup的校准功能,还能通过补丁(Regional dropout)操作起到Cutout提高模型泛化和目标定位能力的功能。
假设图像大小均为
C
×
W
×
H
C\times W\times H
C×W×H,则CutMix的公式如下:
x
~
=
M
⊙
x
A
+
(
1
−
M
)
⊙
x
B
y
~
=
λ
1
y
A
+
(
1
−
λ
1
)
y
B
\tilde{x}={\bf M}\odot x_A+(1-{\bf M})\odot x_B\\ \tilde{y}=\lambda_1 y_A+(1-\lambda_1)y_B
x~=M⊙xA+(1−M)⊙xBy~=λ1yA+(1−λ1)yB 其中,
x
~
\tilde x
x~和
y
~
\tilde y
y~为生成的带补丁的样本和平滑后的标签,
x
A
x_A
xA为当前图像,补丁取自
x
B
x_B
xB,
y
A
y_A
yA和
y
B
y_B
yB为它们的one-hot硬标签,
M
∈
{
0
,
1
}
W
×
H
{\bf M}\in\{0,1\}^{W\times H}
M∈{0,1}W×H为二进制掩码用来表示哪些区域会被保留哪些区域会被打补丁,
λ
1
=
1
−
P
a
t
c
h
a
r
e
a
W
∗
H
\lambda_1=1-\frac{Patch~area}{W*H}
λ1=1−W∗HPatch area。
那么,还需要使用如下参数确定
M
{\bf M}
M中取0的区域:
r
x
∼
Unif
(
0
,
W
)
,
r
w
=
W
1
−
λ
2
r
y
∼
Unif
(
0
,
H
)
,
r
h
=
H
1
−
λ
2
r_x\sim\text{Unif}~(0, W),r_w=W\sqrt{1-\lambda_2}\\ r_y\sim\text{Unif}~(0, H),r_h=H\sqrt{1-\lambda_2}
rx∼Unif (0,W),rw=W1−λ2ry∼Unif (0,H),rh=H1−λ2 其中,
r
x
r_x
rx和
r
y
r_y
ry为所取区域的中心,
r
w
r_w
rw和
r
h
r_h
rh为所取区域的宽和高,
λ
2
∼
Unif
(
0
,
1
)
\lambda_2\sim\text{Unif}~(0, 1)
λ2∼Unif (0,1)。
最后,在打了补丁的数据上训练出的分类器,就可以实现Mixup和Cutout的双重功能。在OOD Detection方面,它也可以采用与Mixup一样的设定阈值的方法。在目标定位方面,作者在实验中证明了CutMix的积极作用。
3. PixMix
PixMix希望模型兼顾如下安全性指标:
鲁棒性(Robustness): 希望分类器能有效识别被损坏(Corruptions)/ 干扰(Perturbations)/ 攻击(Adversarial Attacks)了的样本。常见的损坏/干扰/攻击有模糊、噪声、天气、变焦、缩放等,只是三种扰动的作用程度不同,例如损坏可能是施加模糊或噪声,而干扰则是平移或缩放;
预测校准(Calibration): 希望分类器不要出现过分自信的问题,即希望获胜分数与准确率相匹配;
异常检测(Anomaly/OOD Detection): 希望分类器能够拒绝或隔离异常或OOD样本。
PixMix也是采用图像混合的手段来生成对抗样本(看上去与原始图像相似,但对模型来说却天差地别的样本),只不过它用来混合的图像是分形(Fractals)/ 特征可视化(Feature Visualization),而不是像Mixup和CutMix那样仅仅重复使用原数据集中的样本。
这些被用来混合的图像应该具有结构复杂性又无法偶然产生的特性,收集的分形和特征可视化组成一个混合集(Mixing Set)。PixMix的混合过程如下图:
如图,原始图像会与一些不规则的图像混合,这些图像是分形集的一部分,显然,它们是复杂的且非随机的。配合如下伪代码更容易理解:
伪代码中,
x
o
r
i
g
x_{orig}
xorig为原始图像,
x
m
i
x
i
n
g
_
p
i
c
x_{mixing\_pic}
xmixing_pic为从混合集中随机选择的一个图像,
k
k
k为最大可接受的混合次数,beta为
B
e
t
a
Beta
Beta分布的参数。
首先,PixMix会先确定一个被混合的图像,记为 x p i x m i x x_{pixmix} xpixmix,这个图像被随机确定为 x o r i g x_{orig} xorig或它的随机增强的版本,随机增强操作包括旋转、曝光、调色等。
之后,会进行最多
k
k
k次的混合操作,用于混合的图像被随机确定为
x
o
r
i
g
x_{orig}
xorig的随机增强版本或
x
m
i
x
i
n
g
_
p
i
c
x_{mixing\_pic}
xmixing_pic。混合操作被随机确定为相加或相乘,公式如下:
+
:
o
u
t
=
a
×
(
i
m
g
1
×
2
−
1
)
+
b
×
(
i
m
g
2
×
2
−
1
)
+
1
2
×
:
o
u
t
=
(
i
m
g
1
×
2
)
a
×
(
i
m
g
2
×
2
)
b
2
+: out=\frac{a\times(img_1\times 2-1)+b\times(img_2\times 2-1)+1}{2}\\ \times: out=\frac{(img_1\times2)^a\times(img_2\times2)^b}{2}
+:out=2a×(img1×2−1)+b×(img2×2−1)+1×:out=2(img1×2)a×(img2×2)b 其中,
a
a
a和
b
b
b被独立地随机从如下两对分布中的一对采样取得:
a
∼
B
e
t
a
(
b
e
t
a
,
1
)
,
b
∼
B
e
t
a
(
1
,
b
e
t
a
)
;
a
∼
1
+
B
e
t
a
(
1
,
b
e
t
a
)
,
b
∼
−
B
e
t
a
(
1
,
b
e
t
a
)
a\sim Beta(beta,1), b\sim Beta(1,beta);\\ a\sim 1+Beta(1,beta), b\sim -Beta(1,beta)
a∼Beta(beta,1),b∼Beta(1,beta);a∼1+Beta(1,beta),b∼−Beta(1,beta) 最后,将混合后的图像覆盖掉最初的
x
p
i
x
m
i
x
x_{pixmix}
xpixmix,如此循环。
需要注意的是,因为混合集没有明确的类别,所以经过混合操作后得到的 x p i x m i x x_{pixmix} xpixmix的标签与 x o r i g x_{orig} xorig相同,即PixMix没有采用标签平滑的操作。
这样,分类器在训练期间见过这些混合后的图像(对抗样本)后,就会具有更强大的泛化能力或者说是鲁棒性,因为分类器的边界比只用原始样本时的边界更宽了。
但由于PixMix没有采取标签平滑操作,在校准和异常检测中的积极贡献仅能从结果上说明,我们目前无法提供理论分析。