攻击者的目标是:
- 不被检测到(噪音肉眼难以可见);
- 产生攻击者希望的结果(即,分类出错)。
| 划分标准 | 攻击类别 |
|---|---|
| 攻击者掌握的信息 | 白盒攻击vs黑盒攻击 |
| 攻击者目标 | 有目标vs无目标 |
| 攻击时间 | 决策时(e.g.逃逸攻击)vs训练时(e.g.投毒攻击) |
经典对抗样本算法
之前我们已经给出了对抗样本的目标函数,但在实际上求解这一优化问题十分困难。在经典对抗样本攻击算法中,会有很多的近似假设、简化这一优化问题。
经典的对抗样本算法有:
白盒攻击
- 快速梯度符号法(FGSM)
- 投影梯度下降法(PGD)
- 单像素攻击(One Pixel Attack)
黑盒攻击
- 基于访问的黑盒攻击
- 模拟梯度的黑盒攻击
快速梯度符号法 (FGSM, Fast Gradient-Sign Method )
最著名的无目标攻击方法之一,而且能够直接推广到有目标攻击中。它是一种梯度上升的单步(Fast)优化方法(一步到位,所以很快:-),优化方向沿着训练模型梯度下降的反方向。
投影梯度下降法(PGD, Project Gradient Descent)
击是一种迭代攻击,可以看作是 FGSM 攻击的翻版——K-FGSM(K表示迭代的次数)。其主要思路是:FGSM是仅仅做一次迭代(单步),而 PGD 是做多次迭代(多步),每次走一小步,每次迭代都会将扰动调整到规定范围内。FGSM 假定目标是一个线性模型,此时损失对输入的倒数是固定的,扰动的方向是明确的。而神经网络当然不是一个理想化的线性模型。对于非线性模型来说,如果仅做一次迭代,方向不一定是正确的,FGSM 的效果就不好。因此改进方法就是作多次迭代,每一步计算并调整方向。
单像素攻击(One Pixel Attack)
只允许修改图片的一个像素(而修改多少无所谓)。从这个名字就可以看出来单像素攻击使用的 $l_0$ 范数,即 $l_0=1$ 。
单像素攻击是有目标攻击,其目标是,在只改变单个像素的限制下,最大化分类器输出的目标类别的得分,
单像素攻击使用了一种叫差分进化(Differential Evolution, DE)的方式进行优化。因为我们显然无法通过对于所有像素点的搜索与改变的穷举来发动攻击,暴力枚举的办法效率太低。不过,在攻击时,我们不需要得到的扰动是全局最优解,只需要得到的扰动可以使分类器输出设定的目标类别。
DE 是一种高校的全局优化算法,其主要思想是:在每次迭代中,根据当前解(父亲解)生成另一组候选解(孩子解),然后将孩子解与他们相应的父亲解进行比较,如果孩子解比他们的父亲解更适合,他们就会被保留下来,否则他们被残忍淘汰。
单像素攻击完全没有通过梯度的信息,而是选择了使用进化算法搜索。这种算法一般不如使用梯度的方快且有效,但无法获取梯度信息时,也不失为一种好的选择
黑盒攻击
当攻击者不知道目标模型的种种细节时,该如何进行攻击呢?黑盒攻击已经发展了很多年了,有很多的技术路线。其中的一种技术路线是:将黑盒攻击转换为白盒攻击。如果我们知道特征空间、学习算法,并且有原始的训练数据,我们就可以恢复模型(在训练数据上训练学习算法),从而将其转化为白盒攻击。
这种攻击方式的叫做“迁移攻击”。思路是:对抗样本具有一定的通用性(或者说可迁移性);对于前文所提到的对于特定模型的对抗样本,对于另一个类似的模型可能也有效。因此,当目标模型是黑盒时,我们需要想尽办法训练一个类似的替代模型,和目标模型的功能要尽可能接近,然后将白盒攻击用于替代模型,得到对抗样本,以期望这个样本可以很好地迁移到黑盒模型上,并用它来展开攻击。
另一种技术路线是,黑盒模型也可以生成梯度。尽管我们只能输入数据给模型,然后得到输出结果,但我们可以想办法模拟出在输入样本处的梯度。例如,我们可以在一个样本空间范围内,通过蒙特卡洛采样,从概率上去模拟出这个梯度。有了梯度就可以进行迭代,从而生成对抗样本。不过,这种攻击方式需要进行大批量访问模型,而且每次访问都是相似的图片,很容易被发现。所以这种技术路线的黑盒样本攻击它的主要挑战就是如何降低查询次数,尽可能的用比较少的查询次数来模拟出梯度来。反而,基于迁移的攻击则不会有这种问题,仅仅在生成迁移模型的时候才会有大批量的访问,但此时的输入都是不同的样本,因此也不容易被发现