论文题目
“Improving Adversarial Robustness Requires Revisiting Misclassified Examples”(MART) ICLR 2020
这篇论文是北大王奕森教授团队发表的一篇非常经典的对抗训练改进方法的文章,今日重新精读一下~
Abstract
对抗训练(AT)是一种用于提高深度神经网络(DNNs)对于对抗样本的鲁棒性的最为有效的防御技术。AT经常从数学上表示为一个Min-max问题(1),其中max问题描述了生成对抗样本的过程,min问题训练DNNs。通常对抗样本的定义指的是原本被分类正确,但添加微小扰动后分类出错的样本。然而AT中作为增强数据所使用的“对抗样本”,并不完全符合这个定义,AT中的“对抗样本”还包含了原本就被分错的样本。在本文中,作者研究了原本被错误/正确分类的样本对AT最终鲁棒性的影响。具体而言,作者发现原本就被错误分类的样本对鲁棒性影响巨大。 并且作者发现错误分类样本上的不同Max技术对最终鲁棒性的影响可以忽略不计,而不同的Min技术则至关重要。基于上述发现,作者提出了一种在训练过程中明确区分错误/正确分类样本的新的AT方法MART,并提供了MART的半监督版本,利用未标记的数据进一步提升鲁棒性。
m
i
n
θ
1
n
∑
i
=
1
n
m
a
x
∣
∣
x
i
′
−
x
i
∣
∣
p
≤
ϵ
l
(
h
θ
(
x
i
′
)
,
y
i
)
,
(
1
)
min_{\theta} \frac{1}{n} \sum^{n}_{i=1} max_{||x'_i - x_i||_p \leq \epsilon} l(h_\theta(x'_i), y_i), \ (1)
minθn1i=1∑nmax∣∣xi′−xi∣∣p≤ϵl(hθ(xi′),yi), (1)
Introduction
motivation of MART
Abstract中提到,许多AT使用的“对抗样本”(原本就分类错误的),是未被明确定义的,并且大多数AT改进工作忽视了这一区别,即所有训练样本无论是否正确分类在Max和Min过程中都得到平等对待,这可能对最终的鲁棒性造成影响。因此,论文提出两个问题:
- 由i)错误分类和ii)正确分类的样本生成的对抗样本是否对鲁棒性同样重要?
- 如果不是,如何更好地利用差异来提高鲁棒性?
motivation of semi-supervision AT
与正常训练相比,提升DNN鲁棒性的AT尤其困难。前序工作表明,模型需要更大的capcity才能鲁棒(简单模型虽然可以具有较高的准确率,但不太可能很鲁棒)。此外,AT的样本复杂度可能显著高于正常训练的样本复杂度,也就是说,训练鲁棒的DNN往往需要更多的标记数据或未标记数据。因此本文选择使用半监督的方式进一步提高MART的效果。
对比实验
作者在CIFAR-10数据集上进行了一个白盒实验,对于扰动限制 ϵ = 8 / 255 \epsilon = 8/255 ϵ=8/255,首先用标准AT(with PGD-10)训练一个8层的CNN(准确率87%)。然后构造一个原本分错的子集 S − S^- S− (总样本的13%),和一个原本分对的子集 S + S^+ S+ (总样本的13%),利用这两个子集,作者使用不同设置重新训练同一网络,并评估了其对测试数据集上的白盒PGD-20攻击的鲁棒性。 共进行三组实验:
- 对其中一个子集( S − S^- S− 或 S + S^+ S+ )不进行攻击。
- 对其中一个子集( S − S^- S− 或 S + S^+ S+ )使用不同的Max技术。
- 对其中一个子集( S − S^- S− 或 S + S^+ S+ )使用不同的Min技术。
结果如下:
结论:
- 原本出错样本对最终鲁棒性影响较大,而原本分对样本影响近乎没有。
- 原本出错样本上的不同Max技术对最终鲁棒性的影响可以忽略不计。然而,对于原本分对样本,在Max过程中使用弱攻击往往会降低鲁棒性。
- 对于原本出错样本,使用一个额外正则化项能够显著额外提升最终的鲁棒性。
基于上述观察结果,作者重新定义了对抗性风险,以规范化的形式将误分类样本的明确区分纳入其中。提出了一种新的防御算法,以在AT中以动态方式实现这一点。
Misclassification Aware Adversarial Risk
原对抗风险可定义为:
其中
h
θ
(
x
)
h_\theta(x)
hθ(x) 表示输入x对应的输出类别,
1
1
1 表示指示函数。原对抗风险无法区分原本分对和原本分错的样本,因此,新对抗风险重定义为:
第一项使得对抗样本分类正确,第二项为原本分类出错的样本的鲁棒性正则项(类似TRADES中的正则项),使得这些样本以及其对抗样本分类正确。其中 x ^ i ′ \hat{x}'_i x^i′ 定义为:
注意,上面重新定义的对抗风险中的第一项其实隐式的包含了对于原本分对的样本的正则项,此时原应为
1
(
h
θ
(
x
i
)
=
y
i
)
⋅
1
(
h
θ
(
x
i
)
≠
h
θ
(
x
^
i
′
)
)
1(h_\theta(x_i) = y_i) \cdot 1(h_\theta(x_i) \neq h_\theta(\hat{x}'_i))
1(hθ(xi)=yi)⋅1(hθ(xi)=hθ(x^i′)),但此时
h
θ
(
x
i
)
=
y
i
h_\theta(x_i) = y_i
hθ(xi)=yi,因此可约为第一项的形式。
Proposed Defense: Misclassification Aware Adversarial Training (MART)
总loss表示为:
第一项使用了Boosted CE Loss 作为指示函数的替代函数,没有使用传统的交叉熵(CE Loss)函数的原因是因为分类对抗样本需要比干净样本更强的分类器,因为对抗样本的存在使分类决策边界变得更加复杂。BCE loss定义为:
BCE Loss中第一项就是常见的CE Loss,而第二项是一个margin loss,用于增大分类器的决策间隔。该方法在CW攻击中也曾经被用来加强对抗性。对于第二项,作者使用KL散度来作为替代Loss。第三项指示函数是一个强调学习分错样本的条件。为了方便优化,作者使用
1
−
p
y
i
(
x
i
,
θ
)
1 - p_{y_i}(x_i, \theta)
1−pyi(xi,θ) 作为替代,它代表了该样本分错的概率。
Semi-supervised Extension with Unlabeled Data
总loss可以表示为监督loss和非监督loss的加权和:
对于非监督的Loss,论文采用最有效的UAT++。具体来说,UAT++首先对标记数据训练一个模型,然后使用该模型为未标记数据生成伪标签。此外,给定一个训练数据(x,y)(可以是有标记的或无标记的数据),UAT++中采用的有监督和无监督损失函数定义为: