DeepFool: a simple and accurate method to fool deep neural networks

1.引言

作者首先定义了对抗攻击的范式和模型的鲁棒性。
  通常,对与一个给定的模型,能够改变分类器 k^(x)\hat{k}(x)k^(x) 的分类结果的最小对抗扰动 rrr 定义如下
Δ(x;k^):=min⁡r∥r∥2subject tok^(k+r)≠k^(x)\Delta(x;\hat{k}):=\min_r\|r\|_2\;\;\text{subject to}\; \hat{k}(k+r) \not=\hat{k}(x) Δ(x;k^):=rmin​∥r∥2​subject tok^(k+r)=k^(x)
其中 xxx 是图片,k^(x)\hat{k}(x)k^(x) 是预测的标签, Δ(x;k^)\Delta(x;\hat{k})Δ(x;k^) 是分类器 k^\hat{k}k^ 在 xxx 处的鲁棒性。分类器 k^\hat{k}k^ 的鲁棒性定义为 ρadv(k^)=ExΔ(x;k^)∥x∥2\rho_{adv}(\hat{k})=\mathbb{E}_x\frac{\Delta(x;\hat{k})}{\|x\|_2}ρadv​(k^)=Ex​∥x∥2​Δ(x;k^)​。
作者的贡献可以归结为三点:

  • 提出了一种新的计算对抗样本的方法 DeepFool,该方法是基于梯度迭代方法中生成扰动最小的,并且能有较高的攻击准确率。

  • 用对抗样本增加训练数据,显著提高模型对对抗扰动的鲁棒性,该部分贡献对抗训练的前期研究。

  • 分析了 FGSM 算法来验证分类器的鲁棒性的不合理性,并提出该算法会过分的评估分类器的鲁棒性,并定义了什么是样本鲁棒性,什么是模型的鲁棒性。

2.DeepFool 实现 - 二分类

首先定义一个二分类器 f(x)=wTx+bf(x)=w^Tx + bf(x)=wTx+b, 以及分类超平面 F={x:wTx+b=0}\mathcal{F} = \{x:w^Tx+b =0\}F={x:wTx+b=0}。对于一个样本 x0x_0x0​,fff 在 x0x_0x0​ 处的鲁棒性 Δ(x0;f)\Delta(x_0;f)Δ(x0​;f) 则是 x0x_0x0​ 到超平面的正交投影距离,定义如下:
r∗(x0):=arg min⁡∥r∥2subject tosign(f(x0+r))≠sign(f(x0))=−f(x0)∥w∥22wr_*(x_0) :=\argmin \|r\|_2 \;\; \text{subject to} \; sign(f(x_0+r)) \not= sign(f(x_0))\\ =-\frac{f(x_0)}{\|w\|^2_2}w r∗​(x0​):=argmin∥r∥2​subject tosign(f(x0​+r))=sign(f(x0​))=−∥w∥22​f(x0​)​w
其中 www 是超平面的法向量

如果 fff 是一个可微的函数,那么就可以通过迭代的方式求出 r∗r_*r∗​,可以将以上的公式优化为下面的形式

推导过程:
已知 ri=−f(xi)∥w∥22wr_i = -\frac{f(x_i)}{\|w\|^2_2}wri​=−∥w∥22​f(xi​)​w,从几何意义上来说,梯度 ∇f(xi)=w\nabla f(x_i) = w∇f(xi​)=w,所以有
ri=−f(xi)∥∇f(xi)∥22∇f(xi)r_i = \frac{-f(x_i)}{\|\nabla f(x_i)\|_2^2}\nabla f(x_i) ri​=∥∇f(xi​)∥22​−f(xi​)​∇f(xi​)
又因为 ∥∇f(xi)∥22=∇f(xi)⋅∇f(xi)T\|\nabla f(x_i)\|_2^2 = \nabla f(x_i) \cdot \nabla f(x_i)^T∥∇f(xi​)∥22​=∇f(xi​)⋅∇f(xi​)T , 移项就有:
∇f(xi)Tri+f(xi)=0\nabla f(x_i)^Tr_i + f(x_i) = 0 ∇f(xi​)Tri​+f(xi​)=0
通过上面的公式得到二分类求对抗样本的算法如下

3.DeepFool 实现 - 多分类

首先是多分类器定义如下
k^(x)=arg max⁡kfk(x)\hat{k}(x) = \argmax_k f_k(x) k^(x)=kargmax​fk​(x)
其中 fk(x)f_k(x)fk​(x) 是分类器对第 kkk 类的预测结果,定义 f(x)=WTx+bf(x) = \mathbf{W}^T x +bf(x)=WTx+b, 那么求多分类的扰动 rrr 定义如下
arg min⁡r∥r∥2s.t.∃k:wkT(x0+r)+bk≥wk^(x0)T(x0+r)+bk^(x0)\argmin_r \|r\|_2 \\ s.t. \exists k:w_k^T(x_0+r) +b_k \geq w^T_{\hat{k}(x_0)}(x_0+r) + b_{\hat{k}(x_0)} rargmin​∥r∥2​s.t.∃k:wkT​(x0​+r)+bk​≥wk^(x0​)T​(x0​+r)+bk^(x0​)​

为了更好的理解以上优化形式的含义,自己做了一个图示便于理解。如下图所示,左半部分是干净样本的概率向量的输出,预测的类别为 k^\hat{k}k^ , 加入对抗扰动后,预测类别变成了 kkk

从几何上来解释,上述问题对应于 x0x_0x0​ 与凸多面体 PPP 之间距离的计算,PPP 可以定义如下
P=⋂k=1c{x:fk^(x0)(x)≥fk(x)}P = \bigcap_{k=1}^c\{x:f_{\hat{k}(x_0)}(x) \geq f_k(x)\} P=k=1⋂c​{x:fk^(x0​)​(x)≥fk​(x)}
x0x_0x0​ 位于 PPP 内一点。
如图所示,绿色直线所包含的区域就是 PPP

定义 l^(x0)\hat{l}(x_0)l^(x0​) 是距离 PPP 最近的超平面,根据距离公式,l^(x0)\hat{l}(x_0)l^(x0​) 可定义如下
l^(x0)=arg min⁡k≠k^(x0)∥fk(x0)−fk^(x0)(x0)∥∥wk−wk^(x0)∥2\hat{l}(x_0) = \argmin_{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} l^(x0​)=k=k^(x0​)argmin​∥wk​−wk^(x0​)​∥2​∥fk​(x0​)−fk^(x0​)​(x0​)∥​
那么最小的扰动 r∗(x0)r_*(x_0)r∗​(x0​) 就是 x0x_0x0​ 投影到超平面 l^(x0)\hat{l}(x_0)l^(x0​) 的距离,即
r∗(x0)=∥fl^(x0)(x0)−fk^(x0)(x0)∥∥wl^(x0)−wk^(x0)∥2(wl^(x0)−wk^(x0))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}(w_{\hat{l}(x_0)} - w_{\hat{k}(x_0)}) r∗​(x0​)=∥wl^(x0​)​−wk^(x0​)​∥2​∥fl^(x0​)​(x0​)−fk^(x0​)​(x0​)∥​(wl^(x0​)​−wk^(x0​)​)

对与现实中常用到的分类器往往是非线性的,在这样的非线性的凸区域 PPP 内,作者选择一个线性的凸区域 P~\tilde{P}P~ 作为替代,每一次迭代过程中的 P~i\tilde{P}_iP~i​ 定义如下
P~i=⋂k=1c{x:fk(xi)−fk^(x0)(xi)+∇fk(xi)Tx−∇fk^(x0)(xi)Tx≤0}\tilde{P}_i = \bigcap_{k=1}^c \{x:f_k(x_i)-f_{\hat{k}(x_0)}(x_i)+\nabla f_k(x_i)^Tx - \nabla f_{\hat{k}(x_0)}(x_i)^Tx \leq 0\} P~i​=k=1⋂c​{x:fk​(xi​)−fk^(x0​)​(xi​)+∇fk​(xi​)Tx−∇fk^(x0​)​(xi​)Tx≤0}
最终,多分类的DeepFool生成对抗样本的算法流程如下:

以上算法是在二范数下进行计算的,如果要扩展到 ppp 范数下,只需要修改 10 行和11行公式
l^=arg min⁡∣fk′∣∥wk′∥qri=∣fl^′∣∥wl^′∥qq∣wl^′∣q−1⊙sign(wl^′)\hat{l} = \argmin \frac{|f^{\prime}_k|}{\|w_k^{\prime}\|_q}\\ r_i = \frac{|f_{\hat{l}}^{\prime}|}{\|w_{\hat{l}}^{\prime}\|_q^q}|w_{\hat{l}}^{\prime}|^{q-1} \odot sign(w_{\hat{l}}^{\prime}) l^=argmin∥wk′​∥q​∣fk′​∣​ri​=∥wl^′​∥qq​∣fl^′​∣​∣wl^′​∣q−1⊙sign(wl^′​)
其中 q=pp−1q = \frac{p}{p-1}q=p−1p​

DeepFool论文解读相关推荐

  1. 自监督学习(Self-Supervised Learning)多篇论文解读(下)

    自监督学习(Self-Supervised Learning)多篇论文解读(下) 之前的研究思路主要是设计各种各样的pretext任务,比如patch相对位置预测.旋转预测.灰度图片上色.视频帧排序等 ...

  2. 自监督学习(Self-Supervised Learning)多篇论文解读(上)

    自监督学习(Self-Supervised Learning)多篇论文解读(上) 前言 Supervised deep learning由于需要大量标注信息,同时之前大量的研究已经解决了许多问题.所以 ...

  3. 可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读

    可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读 Visual Deprojection: Probabilistic Recovery of Collapsed Dimensions 论文链接: ...

  4. 从单一图像中提取文档图像:ICCV2019论文解读

    从单一图像中提取文档图像:ICCV2019论文解读 DewarpNet: Single-Image Document Unwarping With Stacked 3D and 2D Regressi ...

  5. 点云配准的端到端深度神经网络:ICCV2019论文解读

    点云配准的端到端深度神经网络:ICCV2019论文解读 DeepVCP: An End-to-End Deep Neural Network for Point Cloud Registration ...

  6. 图像分类:CVPR2020论文解读

    图像分类:CVPR2020论文解读 Towards Robust Image Classification Using Sequential Attention Models 论文链接:https:// ...

  7. CVPR2020论文解读:手绘草图卷积网络语义分割

    CVPR2020论文解读:手绘草图卷积网络语义分割 Sketch GCN: Semantic Sketch Segmentation with Graph Convolutional Networks ...

  8. CVPR2020论文解读:3D Object Detection三维目标检测

    CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...

  9. CVPR2020论文解读:三维语义分割3D Semantic Segmentation

    CVPR2020论文解读:三维语义分割3D Semantic Segmentation xMUDA: Cross-Modal Unsupervised Domain Adaptation for 3D ...

  10. CVPR2020论文解读:CNN合成的图片鉴别

    CVPR2020论文解读:CNN合成的图片鉴别 <CNN-generated images are surprisingly easy to spot- for now> 论文链接:htt ...

最新文章

  1. 【每日一算法】重排链表
  2. 对网络体系变革的思考
  3. python项目实战:20行代码画一朵好看又有趣的小花花
  4. 记录下openstack部署和使用时遇到的一些问题
  5. 怎样使用Mendeley高效地管理中文文献
  6. 补码中的+0和-0为什么机器码相同?
  7. PHP删除字符串最后一个字符的几种方法总结
  8. GridView样式用代码来设置
  9. 数据不符合正态分布怎么处理呢
  10. 小程序毕业设计 基于微信鲜花花店商城小程序毕业设计开题报告功能参考
  11. ajax无刷新验证用户名
  12. 【Vue3】vue3获取对象长度(非数组长度)
  13. php反序列化--字符串逃逸
  14. 通过不断重置学习率来逃离局部极值点
  15. 密码破解工具John the Ripper使用说明
  16. 聋校计算机教材教法培训Ppt,聋校语文教材教法学习心得
  17. 使用Ollydbg破解注册机的两种套路
  18. Goodwin模型参考自适应控制方案
  19. pythongo混合_Go+Python双语言混合开发
  20. 电脑出现缺少XXX.dll文件的解决方法

热门文章

  1. Pyhton 兔子繁衍问题(后有递归求法)(设有一对新生的兔子从第4个月开始他们每个月月初都生一对新兔子, 新生的兔子从第4个月开始又每个月月初生一对兔子,求n个月后兔子的总对数)
  2. 色彩空间(一):色彩空间基础
  3. java中依赖_java中依赖、关联、聚合
  4. linux上2048游戏程序,在Linux系统下完全可以玩2048游戏
  5. 网络工程师必备 5款网络故障排除工具
  6. 计算机不支持win10 1809更新,Win10 1809更新失败解决方法
  7. MySQL中的自增主键用完了怎么办?
  8. 吉林大学超星MOOC学习通高级语言程序设计 C++ 实验04 数组及其在程序设计中的应用(2021级)(3)
  9. Windows10如何添加五笔?
  10. 网上体育用品商城(ssm,mysql,bootstrap,html,css)