ZOO for black box

问题的提出

根据被攻击模型的参数可分为黑盒与白盒问题:

  • 被攻击模型的模型参数可以被获取的被称为白盒攻击;
  • 模型参数不可见的被称为黑盒攻击
    之前实现过FGSM就是一种典型的白盒攻击算法,该算法核心是
    w T ⋅ x ′ = w T ⋅ x + w T ⋅ ϵ s i g n ( Δ J x ( x , y , θ ) ) w^{T} \cdot x^{\prime}=w^{T} \cdot x+w^{T} \cdot \epsilon sign(\Delta J_{x}(x,y,\theta)) wTx=wTx+wTϵsign(ΔJx(x,y,θ))

我们可以看到该算法是基于梯度来进行攻击的,但是对于黑盒攻击,没有目标模型的梯度信息,那我们怎么得到该模型的对抗样本呢?
Zeroth-Order Optimization为我们提供了一个好的思路

Zeroth-Order Optimization

通过利用零次优化,可以完成对目标DNN的改进攻击,从而无需训练代理模型,并避免了攻击传递性的损失
模型输入:需要input+每一个类别的概率

模型的训练:C&W攻击通过解决以下优化问题来找到对抗性示例x
在这里插入图片描述
∥ v ∥ 2 = ∑ i = 1 p v i 2 \|\mathbf{v}\|_{2}=\sqrt{\sum_{i=1}^{p} v_{i}^{2}} v2=i=1pvi2 代表Euclidean norm, c > 0 c > 0 c>0 正则化参数,左边是对抗样本和输入图像的Euclidean距离,保证对抗样本与真实input的相似,右边是损失函数,反映了不成功的对抗攻击的程度,保证对抗样本能导致目标模型出错,上述的loss函数可以通过由DNN的softmax 函数的输出来定义
[ F ( x ) ] k = exp ⁡ ( [ Z ( x ) ] k ) ∑ i = 1 K exp ⁡ ( [ Z ( x ) ] i ) , ∀ k ∈ { 1 , … , K } [F(\mathbf{x})]_{k}=\frac{\exp \left([Z(\mathbf{x})]_{k}\right)}{\sum_{i=1}^{K} \exp \left([Z(\mathbf{x})]_{i}\right)}, \forall k \in\{1, \ldots, K\} [F(x)]k=i=1Kexp([Z(x)]i)exp([Z(x)]k),k{1,,K}

具体如下:

  • 目标
    • 有目标攻击:
      在这里插入图片描述
    • 无目标攻击
      在这里插入图片描述
      F ( x ) ∈ [ 0 , 1 ] F(x)\in [0,1] F(x)[0,1]为每个类别的最后模型预测的概率值,其中K为类别数,在给定输入图像x0,x代表由真实分类类别为t的x0生成的对抗样本,t0为x最初的分类类别。训练有素的DNN会在其输出 F ( x ) F(x) F(x)上产生偏斜的概率分布,以使一个类别的概率得分显着支配另一类别的概率得分,对数运算符在保持单调性的同时保留置信度得分的顺序的同时,减轻了优势效应。

Zeroth order optimization用于loss function
使用对称差商(symmetric difference quotient )来估计梯度
g ^ i : = ∂ f ( x ) ∂ x i ≈ f ( x + h e i ) − f ( x − h e i ) 2 h \hat{g}_{i}:=\frac{\partial f(\mathbf{x})}{\partial \mathbf{x}_{i}} \approx \frac{f\left(\mathbf{x}+h \mathbf{e}_{i}\right)-f\left(\mathbf{x}-h \mathbf{e}_{i}\right)}{2 h} g^i:=xif(x)2hf(x+hei)f(xhei)

问题

在攻击黑盒DNN的情况下,尤其是在图像大小较大(要优化的变量具有大量坐标)的情况下,梯度下降的单个步骤可能非常缓慢且效率低下,因为它需要估算梯度所有坐标进行一次更新。比如Inception-v3网络[尺寸为299×299×3的输入图像,因此就有p = 268,203个变量(像素)以进行优化,如果要评估每个像素的估计梯度,我们需要对模型进行两次评估。为了仅获得所有像素的估计梯度,需要2p = 536,406评估。对于像Inception-v3这样大的模型,每个评估可能在单个GPU上花费数十毫秒,因此,甚至一次评估所有梯度都非常昂贵。对于有针对性的攻击,有时我们需要进行数百次迭代的迭代梯度下降来生成对抗图像,在这种情况下使用零阶方法可能会非常昂贵。

针对上面存在的问题

  • 提出了使用坐标下降法迭代地优化每个坐标(或一小批坐标)。通过这样做,我们可以通过仅几次梯度评估就可以有效地更新坐标,从而加快攻击过程。(这种思想类似于SGD),但其实这样的方法,迭代优化坐标数值还是很大。
  • 考虑Attack-space dimension reduction方法将坐标维数降下来

minimize ⁡ y ∥ D ( y ) ∥ 2 2 + c ⋅ f ( x 0 + D ( y ) , t )  subject to  x 0 + D ( y ) ∈ [ 0 , 1 ] p \begin{aligned} &\operatorname{minimize}_{\mathbf{y}}\|D(\mathbf{y})\|_{2}^{2}+c \cdot f\left(\mathbf{x}_{0}+D(\mathbf{y}), t\right)\\ &\text { subject to } \mathbf{x}_{0}+D(\mathbf{y}) \in[0,1]^{p} \end{aligned} minimizeyD(y)22+cf(x0+D(y),t) subject to x0+D(y)[0,1]p
D ( y ) D(y) D(y)代替 Δ x = x − x 0 \Delta x= x-x_{0} Δx=xx0,这里并不是将输入维度改变,而是减少允许的对抗样本噪音维度,例如一个方便的转换是将D定义为将y调整为p尺寸图像的放大运算符。但是将攻击空间维度减小,有可能造成找不到有效的攻击。

  • 针对上面攻击维度变小的问题,提出了hierarchical attack scheme,在优化过程中,使用一系列尺寸为m1,m2,···的变换D1,D2···来逐渐增加m。egD1变换尺度 y 从m1= 32×32×3 到 299×299×3,D2从m2= 64 × 64 × 3 to 299 × 299 × 3,直到达到确定的迭代值(当loss function减小得不明显的时候,意味着需要更大空间)
  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pinn山里娃

原创不易请多多支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值