Advertisement

阅读笔记 DeepFool: a simple and accurate method to fool deep neural networks

阅读量:

阅读笔记 DeepFool: a simple and accurate method to fool deep neural networks 初次编辑于2020.9.1 by EnEn 再次修改于2020.9.2 by EnEn

  • Abstract

  • Introduction

  • DeepFool for binary classifiers

  • DeepFool for multiclass classifiers

    • Affine multiclass classifier
    • General classifier
    • Extension to l_p norm
  • 问题

初次编辑于2020.9.1 by EnEn
再次修改于2020.9.2 by EnEn

Abstract

DNN是最先进的图像分类器,但是遇到小的 对抗扰动 就会判断错误,即使带有 对抗扰动 的图片(从肉眼看)与原图片几乎没有区别。而基本上所有的模型都有这样的 对抗扰动 ,因此研究 对抗扰动 是有必要的。

  • 提出Deep Fool 算法
  1. 计算(使一个网络判断错误的)扰动,
  2. 量化分类器的鲁棒性

Introduction

设 能够 改变预测的结果(记为 \hat k (\textbf x)),且 最小 的扰动为r
\Delta(\textbf x; \hat k ):=\mathop{min}\limits_{\textbf r}||\textbf r||_2\hat k (\textbf x+\textbf r) \neq \hat k (\textbf x)
其中,\textbf x为图片,\hat k (\textbf x)为预测的标签,\Delta(\textbf x; \hat k )\hat k (\textbf x)\textbf x处的鲁棒性

而分类器 \hat k 的鲁棒性定义为
\rho_{adv} (\hat k) = \mathbb{E}_\textbf x \frac{\Delta(\textbf x; \hat k )}{||\textbf x ||_2}
其中,\mathbb{E}_\textbf x是图片\textbf x的分布期望。
对抗扰动 可以让我们了解 分类器的特征

这篇文章的主要贡献有

  1. 简单且准确地计算和比较不同分类器对对抗扰动的鲁棒性。
  2. 我们提出的方法比目前已知的方法更稳定,更有效;利用对抗样本扩大训练集可以明显提高对对抗扰动的鲁棒性
  3. 我们提出的方法可以更好地理解为什么不准确(计算对抗扰动)的方法会带来不同的鲁棒性的结论,以及==它(We show that using imprecise approaches for the com- putation of adversarial perturbations could lead to dif- ferent and sometimes misleading conclusions about the robustness. Hence, our method provides a better un- derstanding of this intriguing phenomenon and of *its influence factors.==的影响因子

DeepFool for binary classifiers

\hat k(\textbf x)=sign(f(\textbf x))
其中,f是任意标量的图像分类器
f : \mathbb R^n\rightarrow\mathbb R
\mathscr F\mathop{\Delta}\limits_{=}\{\textbf x : f(\textbf x)=0\}定义为零点

首先,f是affine分类器f(\textbf x)=\omega ^\top \textbf x+b

f\textbf x_0处的鲁棒性是\Delta(\textbf x_0; f),相当于\textbf x_0\mathscr F=\{\textbf x : \omega^\top \textbf x+b=0\}的距离 如下图
线性二分类的对抗样本
那么改变分类器选择的最小扰动r\textbf x\mathscr F上的垂直映射。
\textbf r_*(\textbf x_0) := arg min ||\textbf r||_2sign(f(\textbf x_0+\textbf r))\neqsign(\textbf f (x_0))= - \frac{f(\textbf x_0)}{||\omega||^2_2}\omega
f是适用大部分实验的二分分类器,我们采用迭代的操作估计鲁棒性\Delta(\textbf x_0; f)。特别的是,在每一个迭代中,f在当前点\textbf x_i是线性化的。
\mathop{arg min}\limits_{r_i}||r_i||_2f(\textbf x_i)+\nabla f(\textbf x_i)^T r_i=0
在迭代第i次的扰动r_i可以利用\textbf r_*计算,然后更新\textbf x_{i+1}。当\textbf x_{i+1}改变分类器的sign时,算法停止。

算法如下图DeepFool
在这里插入图片描述

x_0\in \mathbb R^n,绿色的平面是\textbf x \mapsto f(\textbf x_0)+\nabla f(\textbf x_0)^T(\textbf x-\textbf x_0)与分类器方程(线条\mathscr F\textbf x \mapsto f(\textbf x)成切线。切线(橙色的线)为f(\textbf x_0)+\nabla f(\textbf x_0)^T(\textbf x-\textbf x_0)=0
x_1是由x_0在切线(橙色的线)映射而得到的。

DeepFool for multiclass classifiers

\hat k(\textbf x)=\mathop{arg max}\limits_{k} f_k(\textbf x)
f_k(\textbf x)f(\textbf x)对应的第k^{th}个类别

Affine multiclass classifier

f(\textbf x)是affine分类器,f(\textbf x)=\omega ^\top \textbf x+b
\mathop{arg min}\limits_{\textbf r}||\textbf r||_2
使得 \exist k : \omega_k^{\top}(\textbf x_0+\textbf r)+b_k\geq \omega_{\hat{k}(\textbf x_0)}^\top(\textbf x_0+\textbf r)+b_{\hat{k}(\textbf x_0)}(零点)

其中,\omega_kW的第k^{th}列,

P=\bigcap\limits_{k=1}^c{\textbf x : f_{\hat{k}(\textbf x_0)}(\textbf x)}\geq f_k(\textbf x)
其中x_0位于P内,而在多面体P内的范围内,f的输出是\hat k(\textbf x_0)。如下图所示,P的范围由绿的范围标出,假如\textbf x_0属于第4类,则\mathscr F_k=\{\textbf x : f_k(\textbf x)-f_4(\textbf x)=0\}图4

\hat l(\textbf x_0)P的边界线。

\hat l(\textbf x_0)=\mathop{arg min}\limits_{k\neq \hat k(\textbf x_0)}\frac{|f_k(\textbf x_0)-f_{\hat{k}}(\textbf x_0)|}{||\omega_k-\omega_{\hat k(\textbf x_0)}||_2}
那么最小扰动为
r_*(\textbf x_0)=\mathop{arg min}\limits_{k\neq \hat k(\textbf x_0)}\frac{|f_{\hat{l}(\textbf x_0)}(\textbf x_0-f_{\hat{k}(\textbf x_0)})|}{||\omega_{\hat{l}(\textbf x_0)}-\omega_{\hat k(\textbf x_0)}||_2^2}(\omega_{\hat{l}(\textbf x_0)}-\omega_{\hat{k}(\textbf x_0)})

General classifier

在大多数情况,P并非多边形,它的边线经常是弯曲的,因此,在第i次迭代时,把P近视为\tilde{P}_i,则
\tilde{P}_i=\bigcap\limits_{k=1}^c{\{{\textbf x : f_{k}(\textbf x_i)-f_{\hat k (x_0)}(\textbf x_i)}+\nabla f_k(x_i)^\top x-\nabla f_{\hat k(x_0)}(x_i)^\top x\leq 0\}}
在这里插入图片描述

Extension to l_p norm

在加入l_2 规范后,上一小节中的算法中的\hat l r_i 都应该做如下变化,
\hat l \leftarrow \mathop{arg min}\limits_{k\neq \hat k(\textbf x_0)}\frac{|f'_k|}{||\omega'_k||_q}

r_i \leftarrow\frac{|f'_{\hat l}|}{||w'_{\hat l}||_q^q}|w'_{\hat l}|^{q-1}\odot sign(\omega'_{\hat l})
其中,\odot是点乘,且q=\frac{p}{p-1}
p=\infty时,有如下,
\hat l\leftarrow \mathop{arg min}\limits_{k\neq \hat k(\textbf x_0)}\frac{|f'_k|}{||\omega'_k||_1}

r_i \leftarrow\frac{|f'_{\hat l}|}{||w'_{\hat l}||_1}sign(\omega'_{\hat l})

问题

在介绍部分,定义鲁棒性中的两个式子\Delta(\textbf x; \hat k ):=\mathop{min}\limits_{\textbf r}||\textbf r||_2\rho_{adv} (\hat k) = \mathbb{E}_\textbf x \frac{\Delta(\textbf x; \hat k )}{||\textbf x ||_2}中,下角标2是什么意思?
答:代表第二范式,即L^2regularization。

在二分类中,sign(f(\textbf x_0+\textbf r))= - \frac{f(\textbf x_0)}{||\omega||^2_2}\omega中,- \frac{f(\textbf x_0)}{||\omega||^2_2}\omega是怎么来的?在这里插入图片描述
答:这个式子由点P(x_0,y_0)到线段L(Ax+By+C=0)的最短公式d=\frac{|Ax_0+By_0+C|}{\sqrt{A^2+b^2}}得来,其中f(\textbf x_0)为正,\omega的方向由负指向正,即指向f(\textbf x)>0的方向,因此添加一个负号。

这个示意图是多分类器,那么它是不是仅能代表的是三种类?假如x_0是距离三角形顶点最近,那么加的噪音后,分类器的判断可能就会给出两种选择,对吗?图4
答:这个示意图有6个分类。如国x_0是距离三角形顶点最近,那么加噪音后,分类器的判断就会给出顶点对应的那个区域,即一个分类。

在General classifier中,\tilde{P}_i=\bigcap\limits_{k=1}^c{\{{\textbf x : f_{k}(\textbf x_i)-f_{\hat k (x_0)}(\textbf x_i)}+\nabla f_k(x_i)^\top x-\nabla f_{\hat k(x_0)}(x_i)^\top x\leq 0\}}没有看懂这个式子。
答:这个式子中包含的梯度是曲线,即所有曲线重合的部分。与直线部分划分的多个区域相比P=\bigcap\limits_{k=1}^c{\textbf x : f_{\hat{k}(\textbf x_0)}(\textbf x)}\geq f_k(\textbf x),可知曲线的重合处,加上了与梯度相关的公式。

全部评论 (0)

还没有任何评论哟~