之前对抗攻击算法都是在整个图像的所有像素点上做微小的扰动,以达到欺骗模型的目的。而本文的思想是只改变少量的像素点,甚至在只改变一个像素点的极端情况下就能获得较好的攻击效果。提出了一种基于差分进化(DE)生成单像素对抗样本的黑盒攻击(仅需要概率标签)算法。由于DE的固有属性,仅需要较少的对抗信息就可以欺骗更多类型的网络。

算法优点 :

  • 高效性
  • 半黑盒攻击:只需要返回黑盒的类标概率而不用网络的内部参数。
  • 灵活性:可以攻击那些不可微或梯度难以计算的模型。

主要出发点:

  • 自然图像邻域的分析
  • 感知度量

单像素攻击是只改变一个像素点的极端情况下进行攻击。与之相反,通用对抗扰动则修改了每个像素来实现攻击。增强对抗扰动的隐藏效果有两个方法:1. 降低扰动幅度 2. 减少扰动数量。单像素攻击就是基于减少扰动数量这一目的而提出的算法。

单像素攻击算法:
输入 n n n维图像 x = ( x 1 , ⋯ , x n ) x=(x1,⋯,xn) x=(x1,,xn),图像每个像素看成是向量的一个分量;
f f f,分类器;
t t t,类别;
f t ( x ) f_t(x) ft(x),图像 x x x属于类别 t t t的概率;
e ( x ) = ( e 1 , ⋯ , e n ) e(x)=(e1,⋯,en) e(x)=(e1,,en),对抗扰动向量;
L L L,最大修改器限制;
公式如下:

单像素攻击可以分解为两步:1,计算对哪个像素点进行扰动;2,计算扰动的幅度大小。因此问题就可以简化为:

若为单像素攻击,则 d = 1 d=1 d=1
单像素攻击算法仅控制扰动的像素个数,对于扰动幅度大小则不作限制。

以原文中的图例解释,假如我们的输入是3像素,而我们的攻击的单像素的,那么我们的输入空间被切割为三根红黑线;如果攻击是两像素,则攻击输入空间是蓝色的平面部分,以此类推更多维的攻击。

差分进化算法:
差分进化算法是一种常见的遗传算法,常用来解决多模优化问题的优化算法,主要区别是变异向量是由父代差分向量生成。
优势:
有较高概率找到全局最优解;
不用计算梯度,需要更少的信息;
简单;

将扰动以数组形式,候选解需固定扰动像素点的数目。单像素攻击,以一个5元组表示,分别是 x − y x-y xy轴坐标,以及RGB各通道的扰动值。初始候选解为400,每次生成400候选后代解,依以下公式:

x i x_i xi 是一个候选解, r 1 , r 2 , r 3 r1,r2,r3 r1r2r3是随机数, F F F是比例参数设为0.5, g g g是当前代。生成子代时,每个候选解将根据人口指数与相对应的父亲竞争,获胜者将在下一次迭代中生存下来。最大迭代次数设为100,或者,满足对于某些测试集的指定百分比时提前停止。初始化时, x − y x-y xy坐标,CIFAR-10数据集用 U ( 1 , 32 ) U(1,32) U(1,32)均匀分布,ImageNet数据集用 U ( 1 , 227 ) U(1,227) U(1,227)均匀分布;各通道颜色幅度用高斯分布 N ( µ = 128 , σ = 127 ) N(µ=128,σ=127) N(µ=128,σ=127)