1. 对抗攻击(Adversarial Attack) 简介
1.1 攻击
对抗攻击是指一种故意欺骗机器学习模型(尤其是深度学习模型)的技术,通过向模型提供经过细微修改的输入数据,从而导致模型做出错误的预测或分类。这些攻击利用了模型在训练和推理过程中的漏洞,从而揭示了模型在鲁棒性方面的弱点。
以图像分类为例,假设我们已经训练了一个图像识别模型,可以对图像进行分类。为了攻击这个模型,我们在图像中加入一小部分几乎不可察觉的噪声。这张带噪声的图像被输入到模型中,我们期望模型将其错误分类。
对抗攻击分为两种类型:
-
非定向攻击:只要模型将带噪声的图像分类为与原始图像不同的类别,就视为攻击成功。
-
定向攻击:目标是让模型将带噪声的图像错误分类为特定的类别(例如,将猫错误分类为狮子)。当模型实现这一目标时,视为一次成功的定向攻击。

给定一张图像 x0 和一个输出类别概率分布的模型 ,对抗攻击的目标是找到一个新的图像
,使得模型对
的输出
与正确标签
的差异尽可能大。这通常通过最小化一个损失函数
来实现,该损失函数用于衡量
和
之间的差异。
对于非定向攻击,目标仅仅是最大化这种差异。而对于定向攻击,则会选择一个特定的目标类别 ,并修改损失函数以鼓励模型将
分类为
。

为了确保扰动对人类来说不可察觉,我们会添加一个额外的约束来限制 和
之间的距离。通常情况下,我们选择
范数来作为这种距离的度量方式。

接下来,我们介绍最简单的攻击方法,称为快速梯度符号方法(Fast Gradient Sign Method,FGSM)。通常在执行梯度下降时,我们需要多次迭代更新参数。然而,该方法只需要进行一次参数更新。
具体来说,FGSM 通过以下公式修改输入 :
公式中的各项含义如下:
-
:原始输入。
-
:攻击幅度,用于控制扰动的强度。
-
:损失函数
关于输入
的梯度。
-
:符号函数,用于确定梯度的方向。

根据对模型的了解程度,对抗攻击还可以分为两大类:
-
白盒攻击(White-Box Attacks):攻击者对目标模型有完全的了解,包括其架构、权重和参数。
-
黑盒攻击(Black-Box Attacks):攻击者对模型没有直接的了解,而是依赖于查询模型的输出或使用替代模型来进行攻击。

我们可以利用集成方法来增强黑盒攻击的效果。通过训练多个神经网络并聚合它们的输出,可以增加对抗样本的多样性,从而提高绕过目标模型防御的可能性。
1.2 防御
我们已经介绍了各种攻击方法,接下来将讨论相应的防御策略。防御方法可以分为两类:被动防御和主动防御。
被动防御不对训练好的模型进行修改,而是在模型前添加一个“屏障”或过滤器。例如,使用过滤器可以削弱对抗信号的影响,同时保持正常图像不受影响。
如下图所示,对抗图像经过这样的过滤器后,可能无法再欺骗网络。一个简单的过滤器,例如轻微地模糊图像,就能有效降低对抗信号的强度。

其他方法包括将图像压缩为有损格式(例如 JPEG),这种处理可以扭曲对抗信号,从而抵消攻击的效果。
另一种方法是使用生成器重建输入图像。由于生成器在训练过程中未接触过对抗噪声,因此生成器不太可能重现这些噪声,从而生成干净的图像供原始模型使用。

尽管被动防御有效,但它存在一个显著缺点:如果攻击者了解防御机制,被动防御将失去效用。例如,如果防御依赖于图像模糊,攻击者可以调整其方法,将模糊过程纳入攻击,从而有效绕过防御。
主动防御 则侧重于在训练阶段增强模型的鲁棒性,这一过程被称为对抗训练。对抗训练不仅使用原始训练数据,还会加入对抗样本。整个过程通过训练模型、发现其漏洞并修复漏洞进行迭代。经过反复优化,可以得到一个高度鲁棒的模型。这种方法可以看作是一种数据增强形式。

2. Homework Results and Analysis
作业 10 是关于对抗攻击中的黑盒攻击。助教有一个在 CIFAR-10 数据集上训练的黑盒模型,但我们不知道该模型的架构和参数。为了生成对抗样本,我们将训练自己的代理模型。随后,助教将通过将这些对抗样本输入黑盒模型来评估它们的性能。<