zoukankan      html  css  js  c++  java
  • DeepFool: a simple and accurate method to fool deep neural networks

    Moosavidezfooli S, Fawzi A, Frossard P, et al. DeepFool: A Simple and Accurate Method to Fool Deep Neural Networks[C]. computer vision and pattern recognition, 2016: 2574-2582.

    @article{moosavidezfooli2016deepfool:,
    title={DeepFool: A Simple and Accurate Method to Fool Deep Neural Networks},
    author={Moosavidezfooli, Seyedmohsen and Fawzi, Alhussein and Frossard, Pascal},
    pages={2574--2582},
    year={2016}}

    本文从几何角度介绍了一种简单而有效的方法.

    主要内容

    adversarial的目的:

    [ ag{1} Delta(x;hat{k}):= min_{r} |r|_2 : mathrm{subject} : mathrm{to} : hat{k}(x+r) ot = hat{k}(x), ]

    其中(hat{k}(x))为对(x)的标签的一个估计.

    二分类模型

    当模型是一个二分类模型时,

    [hat{k}(x) = mathrm{sign}(f(x)), ]

    其中(f:mathbb{R}^n ightarrow mathbb{R})为分类器, 并记(mathcal{F}:= {x: f(x)=0})为分类边界.

    (f)为线性

    (f(x)=w^Tx+b):
    在这里插入图片描述
    假设(x_0)(f(x)>0)一侧, 则

    [r_*(x_0)= -frac{f(x_0)}{|w|_2^2}w. ]

    (f)为一般二分类

    此时, 我们(f)的一阶近似为

    [f(x_0+r)approx f(x_0)+ abla^T f(x_0) r, ]

    此时分类边界为(mathcal{F} ={x:f(x_0)+ abla^T f(x_0) (x-x_0)=0}),此时(w= abla f(x_0),b=f(x_0),)

    [ ag{4} r_*(x_0) approx -frac{f(x_0)}{| abla f(x_0)|_2^2} abla f(x_0). ]

    所以, 每次

    [r_i = -frac{f(x_i)}{| abla f(x_i)|_2^2} abla f(x_i), \ x_{i+1} = x_i+r_i, ]

    直到(hat{k}(x_i) ot= hat{k}(x_0))是停止, 算法如下
    在这里插入图片描述

    多分类问题

    (f:mathbb{R}^n ightarrow mathbb{R}^c), 此时

    [ ag{5} hat{k}(x) = arg max_k f_k(x). ]

    (f)仿射

    (f(x) = W^Tx + b), 设(W)的第(k)行为(w_k),

    [ ag{7} P=cap_{k=1}^c {x: f_{hat{k}(x_0)}(x) ge f_k(x)}, ]

    为判定为(hat{k}(x_0))的区域, 则(x+r)应落在(P^{c}), 而

    [Delta (x_0;f)= mathbf{dist} (x_0, P^c). ]

    (f)为仿射的时候, 实际上就是找(x_0)到各分类边界(与(x_0)有关的)最短距离,

    [ ag{8} hat{l}(x_0) = arg min _{k ot = hat{k}(x_0)} frac{|f_k(x_0) - f_{hat{k}(x_0)}(x_0)|}{|w_k-w_{hat{k}(x_0)}|_2}, ]

    [ ag{9} r_*(x_0)= frac{|f_{hat{l}(x_0)}(x_0) - f_{hat{k}(x_0)}(x_0)|}{|w_{hat{l}(x_0)}-w_{hat{k}(x_0)}|_2^2}(w_{hat{l}(x_0)}-w_{hat{k}(x_0)}), ]

    (f)为一般多分类

    [ ag{10} ilde{P}_i=cap_{k=1}^c {x: f_{hat{k}(x_0)}(x_i) + abla^T f_{hat{k}(x_0)}(x_i) (x-x_i)ge f_k(x_i) + abla^Tf_k(x_i)(x-x_i)}, ]

    [r_i(x_i)=frac{|f_{hat{l}(x_i)}(x_i) - f_{hat{k}(x_0)}(x_i)|}{| abla f_{hat{l}(x_i)}(x_i) - abla f_{hat{k}(x_0)}(x_i)|_2^2}( abla f_{hat{l}(x_i)}(x_i) - abla f_{hat{k}(x_0)}(x_i)). ]

    在这里插入图片描述

    (l_p)

    (p in (1, infty))的时候
    考虑如下的问题

    [egin{array}{ll} min & |r|_p^p \ mathrm{s.t.} & w^T(x+r)+b=0, end{array} ]

    利用拉格朗日乘子

    [min_r : |r|_p^p + c(w^T(x+r)+b), ]

    由KKT条件可知(这里的(r_k)表示第(k)个元素)

    [p: |r_k|^{p-1} = c_kw_k, ]

    注: 这里有一个符号的问题, 但是可以把符号放入(c_k)中进而不考虑,

    [r_*= c odot w^{q-1}, ]

    其中(q=frac{p}{p-1})为共轭指数, 并(c=[c_1,ldots]^T),且(|c_i|=|c_j|,)(w^{q-1}=[|w_1|^{q-1},ldots]^T),又

    [w^T(x+codot w^{q-1})+b=0, ]

    [|c|=frac{|w^Tx+b|}{|w|_q^q} , ]

    [r_*=-frac{w^Tx+b}{|w|_q^q} w^{q-1} odot mathrm{sign}(w). ]

    (p=1), 设(w)的绝对值最大的元素为(w_{m}), 则

    [r_*=-frac{w^Tx+b}{w_m} mathrm{1}_m, ]

    (mathrm{1}_m)为第(m)个元素为1, 其余元素均为0的向量.
    (p=infty),

    [r_*=-frac{|w^Tx+b|}{|w|_1} mathrm{sign} (w). ]

    故:

    (p in [1, infty)):

    在这里插入图片描述
    (p=infty):
    在这里插入图片描述

    注: 因为, 仅仅到达边界并不足够, 往往希望更进一步, 所以在最后(?)(x=x+ (1+eta) r), 文中取(eta=0.02).

  • 相关阅读:
    NSRunLoop的利用
    快速排序算法
    WebViewJavascriptBridge的暂时理解
    非常喜欢的一期《晓松奇谈》
    字符串正则替换replace第二个参数是函数的问题
    Model模型和Module模块的区别
    jQuery的extend方法的深层拷贝
    正则表达式学习记录
    select2初始化默认值
    增进编程语言学习速度的小技巧
  • 原文地址:https://www.cnblogs.com/MTandHJ/p/12845753.html
Copyright © 2011-2022 走看看