Towards Evaluating the Robustness of Neural Networks

Nicholas Carlini, David Wagner, Towards Evaluating the Robustness of Neural Networks

提出了在不同范数下 ℓ 0 , ℓ 2 , ℓ ∞ \ell_0, \ell_2, \ell_{\infty} 0,2,下生成adversarial samples的方法, 实验证明此类方法很有效.

主要内容

基本的概念

本文主要针对多分类问题, 假设神经网络 F : x ∈ R n → y ∈ R m F:x \in \mathbb{R}^n \rightarrow y \in \mathbb{R}^m F:xRnyRm, 其网络参数为 θ \theta θ.

假设:
F ( x ) = s o f t m a x ( Z ( x ) ) = y , F(x)=\mathrm{softmax}(Z(x))=y, F(x)=softmax(Z(x))=y,
其中 s o f t m a x ( x ) i = e x i ∑ j e x j \mathrm{softmax}(x)_i=\frac{e^{x_i}}{\sum_j e^{x_j}} softmax(x)i=jexjexi.

C ( x ) = arg ⁡ max ⁡ i F ( x ) i , C(x) = \arg \max_i F(x)_i, C(x)=argimaxF(x)i,
x x x的预测类, 不妨设 C ∗ ( x ) C^*(x) C(x)为其真实的类别.

Adversarial samples 的目标就是构建一个与 x x x相差无几的 x ′ x' x( ∥ x − x ′ ∥ \|x-x'\| xx足够小),但是 C ( x ′ ) ≠ C ∗ ( x ) C(x')\not =C^*(x) C(x)=C(x). 很多构建Adversarial samples可以指定类别:

  • Average Case: 在不正确的标签中随机选取类别;
  • Best Case: 对所有不正确的标签生成Adversariak samples, 并选择最容易成功(即骗过网络)的类别;
  • Worst Case:对所有不正确的标签生成Adversariak samples, 并选择最不容易成功的类别.

文章中介绍了不少现有的方法, 这里不多赘述.

目标函数

一般可以通过如下问题求解 x ′ = x + δ x'=x+\delta x=x+δ:
min ⁡ D ( x , x + δ ) s . t . C ( x + δ ) = t x + δ ∈ [ 0 , 1 ] n , \begin{array}{ll} \min & \mathcal{D}(x, x+\delta) \\ \mathrm{s.t.} & C(x+\delta)=t \\ & x + \delta \in [0, 1]^n, \end{array} mins.t.D(x,x+δ)C(x+δ)=tx+δ[0,1]n,
其中 D \mathcal{D} D衡量 x , x + δ x,x+\delta x,x+δ之间的距离, 常常为 ℓ 0 , ℓ 2 , ℓ ∞ \ell_0, \ell_2, \ell_{\infty} 0,2,.

但是 C ( x + δ ) = t C(x+\delta)=t C(x+δ)=t这个条件离散, 这个问题很难直接求解, 作者给出的思路是构造一些函数 f ( x , t ) f(x,t) f(x,t), 使得当且仅当 f ( x , t ) ≤ 0 f(x,t)\le0 f(x,t)0的时候此条件满足.
则问题转换为:
min ⁡ D ( x , x + δ ) s . t . f ( x , t ) ≤ 0 x + δ ∈ [ 0 , 1 ] n , \begin{array}{ll} \min & \mathcal{D}(x, x+\delta) \\ \mathrm{s.t.} & f(x,t) \le 0 \\ & x + \delta \in [0, 1]^n, \end{array} mins.t.D(x,x+δ)f(x,t)0x+δ[0,1]n,
进一步
min ⁡ D ( x , x + δ ) + c f ( x , t ) s . t . x + δ ∈ [ 0 , 1 ] n . \begin{array}{ll} \min & \mathcal{D}(x, x+\delta) + cf(x,t) \\ \mathrm{s.t.} & x + \delta \in [0, 1]^n. \end{array} mins.t.D(x,x+δ)+cf(x,t)x+δ[0,1]n.
作者给出了7种符合此类条件的函数(作者尤为推荐第6种):
在这里插入图片描述

如何选择c

binary search

如何应对Box约束

图片的元素需要满足 0 ≤ x i ≤ 1 0\le x_i \le 1 0xi1, 如何满足此约束:

  • 简单粗暴地对其裁剪, 大于1的为1, 小于0的为0, 但是这种方法在梯度下降方法比较复杂(如带momentum)的时候效果可能不会太好(既然momemtum要记录变量改变的方向, 而我们又擅自对此方向进行更改);
  • f ( min ⁡ ( max ⁡ ( x + δ , 0 ) , 1 ) f(\min (\max(x+\delta,0),1) f(min(max(x+δ,0),1)替代 f ( x + δ ) f(x+\delta) f(x+δ), 我的理解是, 每次不改变原变量 x ′ x' x, 然后把clip后的 x ′ x' x喂给 f f f. 作者说此类方法容易方法在次优解间来回振荡的现象;
  • 定义
    δ i = 1 2 ( tanh ⁡ ( w i ) + 1 ) − x i , \delta_i = \frac{1}{2}(\tanh (w_i) +1)-x_i, δi=21(tanh(wi)+1)xi,
    于是我们只需优化 w i w_i wi, 且保证 x i + δ i ∈ [ 0 , 1 ] x_i + \delta_i \in [0, 1] xi+δi[0,1].

L 2 L_2 L2 attack

min ⁡ ∥ 1 2 ( tanh ⁡ ( w ) + 1 ) − x ∥ 2 2 + c ⋅ f ( 1 2 ( tanh ⁡ ( w ) + 1 ) , t ) , \min \quad \|\frac{1}{2}(\tanh(w)+1)-x\|_2^2+c\cdot f(\frac{1}{2}(\tanh(w)+1), t), min21(tanh(w)+1)x22+cf(21(tanh(w)+1),t),
其中
f ( x ′ , t ) = max ⁡ ( max ⁡ { Z ( x ′ ) i : i ≠ t } − Z ( x ′ ) t , − κ ) , f(x',t)=\max(\max \{Z(x')_i:i \not =t\}-Z(x')_t, -\kappa), f(x,t)=max(max{Z(x)i:i=t}Z(x)t,κ),
是对第6种方法的一个小改进, 其中 κ \kappa κ反应了我们对误判发生的信心.

L 0 L_0 L0 attack

因为 L 0 L_0 L0范数不可微, 所以每一次, 我们先利用 L 2 L_2 L2 attack来寻找合适的 δ \delta δ, 令 g = ∇ f ( x + δ ) g=\nabla f(x+\delta) g=f(x+δ), 根据 g i δ i g_i \delta_i giδi判断每个像素点的重要性, 最不重要的我们删去(根据文中的意思是永久删去).

  • Input: x , c x, c x,c
  • I = ∅ I=\empty I=
  • Do …:
    1. 计算在 L 2 L_2 L2下的解 x + δ x+\delta x+δ(倘若在 c c c下找不到, 则在 2 c 2c 2c条件下找(嵌套));
    2. g = ∇ f ( x + δ ) g=\nabla f(x+\delta) g=f(x+δ);
    3. i = arg ⁡ min ⁡ i g i ⋅ δ i , i ∉ I i=\arg \min_i g_i \cdot \delta_i, i \not \in I i=argminigiδi,iI, 然后 I = I ∪ { i } I=I \cup \{i\} I=I{i};

在利用 L 2 L_2 L2寻找 δ \delta δ的过程中, 若失败, 令 c = 2 c c=2c c=2c并重复进行, 直到其成功或者超过了最大的迭代次数.

L ∞ L_{\infty} L attack

∥ δ ∥ ∞ \|\delta\|_{\infty} δ作为惩罚项(?)只会针对个别元素, 这在实际实验的时候并不友好, 往往会出现振荡, 于是作者想了一种替代
min ⁡ c ⋅ f ( x + δ ) + ∑ i [ ( δ i − τ ) + ] , \min \quad c \cdot f( x+ \delta) + \sum_i [(\delta_i-\tau)^+], mincf(x+δ)+i[(δiτ)+],
这样我们就把可以关注部分突出而非个别.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值