美文网首页
Towards Evaluating the Robustnes

Towards Evaluating the Robustnes

作者: 馒头and花卷 | 来源:发表于2020-04-08 16:53 被阅读0次

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

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

主要内容

基本的概念

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

假设:
F(x)=\mathrm{softmax}(Z(x))=y,
其中\mathrm{softmax}(x)_i=\frac{e^{x_i}}{\sum_j e^{x_j}}.

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

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

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

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

目标函数

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

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

在这里插入图片描述

如何选择c

binary search

如何应对Box约束

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

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

L_2 attack

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

L_0 attack

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

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

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

L_{\infty} attack

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

相关文章

网友评论

      本文标题:Towards Evaluating the Robustnes

      本文链接:https://www.haomeiwen.com/subject/zdatmhtx.html