关于Adversarial Machine Learning at Scale的理解
Goodfellow基于之前的FGSM攻击方法做出了一部分改进。鉴于之前的FGSM的成功率并不高(在imageNet上仅有
其中
除此以外,还可以通过迭代的方式来增加攻击成功率:
他们将该方法称为Basic Iterative Methods(BIM),后来Madry等人指出这实际上等价于无穷范数版本的Projected Gradient Descent(PGD),这是一个标准的凸优化方法。
作者实验还表明了FGSM的可转移性比BIM的可转移性强很多,这很可能是因为BIM生成的对抗样本太过针对性,因此减少了对抗攻击的泛化能力。这也许为黑箱攻击提供了一些鲁棒性。
此外,由于之前的对抗训练并没有考虑到大规模样本下的复杂模型,因此作者提出了一个新的对抗训练方式来应对批量训练,使用一个可以独立控制每批次对抗案例的数量和相关权重的损失函数:
其中
具体算法如下:
需要注意到的是,这里用于生成对抗样本的原样本就没有再放进去训练。
对抗训练增加了对于这些对抗攻击的鲁棒性(这应该是显而易见的)。但作者同时也指出了对抗训练略微减少了泛化精度,并且对于此给出的解释是:对抗训练起到了一定的正则化的作用。并给出了相关实验的一些论证:在过拟合的模型上,对抗训练能够降低测试误差;而在像ImageNet这些训练误差就很高的数据集上(欠拟合),对抗训练反而增大了训练误差,扩大了训练误差和测试误差的差距。因此也许,对抗训练也有一些正则化的作用。
除此以外,作者还提出了一个比较重要的发现:标签泄漏(label leaking)。即将FGSM生成的对抗样本作为训练集训练出来的分类器,会使得在对抗样本测试集上的分类精度远高于"干净"样本测试集。
对此,作者给出的解释是:由于对抗样本的生成是将真实样本标记和原始样本一起放入,生成的改变标记的对抗样本,再放入DNN中训练,可能隐含的将真实样本标记的信息给了DNN。(作者原话是,我们的攻击方式(one-shot)太过简单:基于真实类别标记做一个非常简单并且可以预见的变换,也许DNN学习到了这个变换,这使得我们无意之间在输入中泄漏了真实标记。)为了防止标签泄漏,作者提出使用迭代的方式或者将分类器分类原始样本的标记作为原始标记来代替原先的真实样本标记。(这个方式其实觉得值得考虑,按照作者的解释,这样不是相当于将分类器原始分类样本的标记放入输入了么,这不会诱导对抗样本训练出来的分类器作出原始样本分类的结果?)
进一步的,作者给出了标签泄漏的定义:对于一个给定样本,当分类起将基于真实标签生成的对抗样本分类正确而将基于其余标签生成的对抗样本分类错误时,就称该样本标记泄漏了。
作者还做了有关模型大小和鲁棒性的关系,作者指出对于没有对抗训练的模型,太大的模型或者太小的模型都会导致鲁棒性很差,而对于对抗训练的模型,由于条件限制,目前的模型越大,鲁棒性显得越好。