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的目的:

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

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

二分类模型

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

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

其中\(f:\mathbb{R}^n \rightarrow \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)+\nabla^T f(x_0) r,
\]

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

\[\tag{4}
r_*(x_0) \approx -\frac{f(x_0)}{\|\nabla f(x_0)\|_2^2} \nabla f(x_0).
\]

所以, 每次

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

直到\(\hat{k}(x_i) \not= \hat{k}(x_0)\)是停止, 算法如下

多分类问题

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

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

\(f\)仿射

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

\[\tag{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\)有关的)最短距离,

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

\[\tag{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\)为一般多分类

\[\tag{10}
\tilde{P}_i=\cap_{k=1}^c \{x: f_{\hat{k}(x_0)}(x_i) + \nabla^T f_{\hat{k}(x_0)}(x_i) (x-x_i)\ge f_k(x_i) + \nabla^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)|}{\|\nabla f_{\hat{l}(x_i)}(x_i) - \nabla f_{\hat{k}(x_0)}(x_i)\|_2^2}(\nabla f_{\hat{l}(x_i)}(x_i) - \nabla f_{\hat{k}(x_0)}(x_i)).
\]

\(l_p\)

\(p \in (1, \infty)\)的时候

考虑如下的问题

\[\begin{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+c\odot 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\).

DeepFool: a simple and accurate method to fool deep neural networks的更多相关文章

  1. Dropout: A Simple Way to Prevent Neural Networks fromOverfitting

    https://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf Deep neural nets with a large number of par ...

  2. AUGMIX : A SIMPLE DATA PROCESSING METHOD TO IMPROVE ROBUSTNESS AND UNCERTAINTY

    目录 概 主要内容 实验的指标 Dan Hendrycks, Norman Mu,, et. al, AUGMIX : A SIMPLE DATA PROCESSING METHOD TO IMPRO ...

  3. 论文笔记系列-Simple And Efficient Architecture Search For Neural Networks

    摘要 本文提出了一种新方法,可以基于简单的爬山过程自动搜索性能良好的CNN架构,该算法运算符应用网络态射,然后通过余弦退火进行短期优化运行. 令人惊讶的是,这种简单的方法产生了有竞争力的结果,尽管只需 ...

  4. 小米造最强超分辨率算法 | Fast, Accurate and Lightweight Super-Resolution with Neural Architecture Search

    本篇是基于 NAS 的图像超分辨率的文章,知名学术性自媒体 Paperweekly 在该文公布后迅速跟进,发表分析称「属于目前很火的 AutoML / Neural Architecture Sear ...

  5. PyNest——Part1:neurons and simple neural networks

    neurons and simple neural networks pynest – nest模拟器的界面 神经模拟工具(NEST:www.nest-initiative.org)专为仿真点神经元的 ...

  6. 【论文阅读】DCAN: Deep Contour-Aware Networks for Accurate Gland Segmentation

    DCAN: Deep Contour-Aware Networks for Accurate Gland Segmentation 作者:Hao Chen Xiaojuan Qi Lequan Yu ...

  7. simple factory, factory method, abstract factory

    simple factory good:1 devide implementation and initialization2 use config file can make system more ...

  8. ThiNet: A Filter Level Pruning Method for Deep Neural Network Compression笔记

    前言 致力于滤波器的剪枝,论文的方法不改变原始网络的结构.论文的方法是基于下一层的统计信息来进行剪枝,这是区别已有方法的. VGG-16上可以减少3.31FLOPs和16.63倍的压缩,top-5的准 ...

  9. 论文笔记——ThiNet: A Filter Level Pruning Method for Deep Neural Network Compreesion

    论文地址:https://arxiv.org/abs/1707.06342 主要思想 选择一个channel的子集,然后让通过样本以后得到的误差最小(最小二乘),将裁剪问题转换成了优化问题. 这篇论文 ...

随机推荐

  1. pow()是如何实现的?

    如1.5 ** 2.5,如何计算?似乎是这样的: 1. cmath calculates pow(a,b) by performing exp(b * log(a)). stackoverflow 2 ...

  2. 转 Android 多线程:手把手教你使用AsyncTask

    转自:https://www.jianshu.com/p/ee1342fcf5e7 前言 多线程的应用在Android开发中是非常常见的,常用方法主要有: 继承Thread类 实现Runnable接口 ...

  3. Docker 生产环境之配置容器 - 自动启动容器

    原文地址 Docker 提供了重启策略,以控制容器在退出时是否自动启动,或在 Docker 重新启动时自动启动.重启策略可确保链接的容器以正确的顺序启动.Docker 建议使用重启策略,并避免使用流程 ...

  4. 应用层协议——DHCP

    常见协议分层 网洛层协议:包括:IP协议.ICMP协议.ARP协议.RARP协议. 传输层协议:TCP协议.UDP协议. 应用层协议:FTP.Telnet.SMTP.HTTP.RIP.NFS.DNS ...

  5. Java线程安全性-原子性工具对比

    synchronized 不可中断锁,适合竞争不激烈的场景,可读性好,竞争激烈时性能下降很快 Lock 可中断锁,多样化同步,竞争激烈时能维持常态 Atomic 竞争激烈时能维持常态,比Lock性能还 ...

  6. 使用jdbc,查询数据库数据,并将其封装为对象输出

    package cn.itcast.jdbc;import cn.itcast.domain.User;import java.sql.*;import java.util.ArrayList;imp ...

  7. MyBatis一对多映射简单查询案例(嵌套结果)

    一.案例描述 书本类别表和书本信息表,查询书本类别表中的某一记录,连带查询出所有该类别书本的信息. 二.数据库表格 书本类别表(booktypeid,booktypename) 书本信息表(booki ...

  8. 如何用CodeBlocks调试?

    一.简介 这篇文章我主要会介绍CodeBlocks的调试功能,并简单讲述如何使用它. 二.前言 大家好,最近和小伙伴们讨论修改程序的时候,我突然想到,授人以鱼不如授人以渔(指调试),于是这篇文章应运而 ...

  9. TMS570LS3137笔记-内部Flash FEE使用

    1.基本简介 TMS570LS3137内部Flash分为三个 Bank,主Flash 数据存储区3MB,是Bank1和Bank2.还有一个Bank7是作为内部Flash模拟EEPROM使用.内部存储器 ...

  10. Windows10计算文件SHA1 SHA256 SHA384 SHA512 or MD5

    目录 Windows10计算文件SHA1 SHA256 SHA384 SHA512 or MD5? 1.计算SHA1 2.计算SHA256 3.计算SHA384 4.计算SHA512 5.计算MD5 ...