暴力的黑盒对抗样本攻击 -- ZOO

文章目录

      • 介绍
      • 强行计算梯度
      • 结果分析

介绍

这次来介绍一篇CCS Workshop 2017的工作,“ZOO: Zeroth Order Optimization Based Black-box Attacks to Deep Neural Networks without Training Substitute Models

暴力的黑盒对抗样本攻击 -- ZOO_第1张图片

这是一个黑盒的对抗样本攻击,如上图所示,攻击者只能进行输入,并且获得置信度的输出,不能对模型进行反向传播。

有关于白盒的对抗样本攻击,可以查看我这篇文章

不能反向传播,会导致对抗样本难以生成。那么怎么进行攻击呢,有一些工作的思路是训练一个替代模型(substitute model)来进行攻击。

替代模型是指利用类似分布的数据集,或者利用多次输入输出的结果,训练一个新的模型,并在新的模型上进行反向传播,进而得到一个对抗样本。

强行计算梯度

正如之前所说,没办法进行反向传播,梯度都没办法直接计算。

那么该工作便强行计算了一个伪梯度,我们来看看细节

首先我们先对输入 x x x 进行一个扰动 x = x + h ⋅ e x = x + h\cdot e x=x+he

其中 h = 0.0001 h = 0.0001 h=0.0001 是一个常量值, e e e 是一个标准单位向量,你可以理解为某一位为1其余都是0的向量。

我们记模型的输出为 f ( x ) f(x) f(x) ,那么利用对称差分,可以得到一个估计梯度值
g ~ = ∂ f ( x ) ∂ x ≃ f ( x + h ⋅ e ) − f ( x − h ⋅ e ) 2 h \tilde{g} = \frac{\partial f(x)}{\partial x} \simeq \frac{f(x+h\cdot e) - f(x-h\cdot e)}{2h} g~=xf(x)2hf(x+he)f(xhe)
同时,我们可以估计出二阶的梯度值
h ~ = ∂ 2 f ( x ) ∂ x 2 ≃ f ( x + h ⋅ e ) − 2 f ( x ) + f ( x − h ⋅ e ) h 2 \tilde{h} = \frac{\partial^2 f(x)}{\partial x^2} \simeq \frac{f(x+h\cdot e) - 2f(x) + f(x-h\cdot e)}{h^2} h~=x22f(x)h2f(x+he)2f(x)+f(xhe)

有了这两个梯度估计值,就可以直接对 x x x 进行梯度下降优化了。比如牛顿法,那么则是
x = x − η g ~ h ~ x = x - \eta \frac{\tilde{g}}{\tilde{h}} x=xηh~g~
其中 η \eta η 是学习率

同理可以得到Adam的过程,这里不多赘述。

暴力的黑盒对抗样本攻击 -- ZOO_第2张图片

如上图所示,算法会迭代数次,在每一次迭代的时候,随机选取一个像素位置,添加扰动并计算出梯度,多次迭代之后得到结果。

结果分析

暴力的黑盒对抗样本攻击 -- ZOO_第3张图片

作者在手写数据集MNIST和CIFAR10上进行测试,和白盒攻击C&W,以及替代模型方法进行了对比。

从时间上看,黑盒攻击要更加花费时间,成功率也会有所下降

你可能感兴趣的:(模型安全,深度学习,算法,机器学习,深度学习,人工智能)