对抗样本学习报告


Ⅰ.背景

随着深度学习的快速发展,在众多机器学习领域取得了重大进步,深度学习在许多至关重要的安全环境中得到应用。但,最近几年研究者发现,输入一些精心设计的样本时,深度学习表现出极大的脆弱性,这些精心设计的样本就是对抗样本。

对抗样本(Adversarial Examples),就是向原始样本中添加一些人眼无法察觉的噪声,添加这些噪声后不会影响人类的识别,但是却很容易欺骗深度神经网络(Deep Neural Networks, DNNs),使其作出与正确结果完全不同的判定。对抗样本的存在导致了DNNs的脆弱性,成为了DNNs在许多关键的安全环境上的主要风险之一。

深度学习广泛地被当作 黑箱技术 –它性能好,但是却不知道为什么性能好,具有不可解释性。通过研究对抗样本,有助于提高神经网络的鲁棒性和可解释性。



Ⅱ.攻击方法分类

威胁模型(Threat Model)和扰动(Perturbation)两个维度对产生对抗样本的方法进行分类,可分类为:

详细分类情况:

  1. 假正例攻击(False Positive Attacks) 与 假反例攻击(False Negative Attacks)

    • 假正例攻击(False Positive Attacks)是指,生成一个反例(negative sample)但被攻击模型误分类为正例(positive sample),属于第 Ⅰ 类错误。例如:一张人类不可识别的图像,被DNNs以高置信度分类为某一类。如下图4中,将人类不能识别的图像识别成知更鸟

    • 假反例攻击(False Negative Attacks)是指,生成一个正例(positive sample)但被攻击模型误分类为反例(negative sample),这是典型的第 Ⅱ 类错误。例如:人类能够正常识别,但是神经网络不能识别或者对其误分类。大多数对抗样本的生成方法都是假反例攻击。如下图3中,将熊猫识别成长臂猿

  2. 白盒攻击(White Box Attacks) 与 黑盒攻击(Black Box Attacks)

    • 白盒攻击(White Box Attacks)假定攻击者可以完全访问他们正在攻击的神经网络模型的结构和参数,包括训练数据,模型结构,超参数情况,激活函数,模型权重等。
    • 黑盒攻击(black-box attacks)假定攻击者不能访问神经网络模型,只能访问被攻击模型的输出(标签和置信度)。
  3. 目标攻击(Target Attack) 与 无目标攻击(Non-target Attack)

    • 目标攻击(Target Attack)生成的对抗样本被DNNs误分类为某个指定类别。目标攻击一般发生在多分类问题中。
    • 无目标攻击(non-target attack)生成的对抗样本识别结果和原标注无关,即只要攻击成功就好,对抗样本最终属于哪一类不做限制。因为无目标攻击有更多的选择和更大的输出范围,所以比目标攻击更易实现。
  4. 单步攻击(One-time Attack) 与 迭代攻击(Iteration Attack)

    • 单步攻击(One-time Attack)只需一次优化即可生成对抗样本。
    • 迭代攻击(Iteration Attack)需要多次更新对抗样本。迭代攻击生成的对抗样本比单步攻击的攻击效果更好,但迭代攻击需要更多的时间生成对抗样本。
  5. 个体攻击(Individual Attack) 与 普适性攻击(Universal Attack)

    • 个体攻击(Individual Attack)对于每个输入的原始数据添加不同的扰动。大多数攻击方法都属于个体攻击。
    • 普适性攻击(Universal Attack)对整个数据集训练一个通用的扰动。
  6. 优化扰动(Optimized Perturbation) 与 约束扰动(Constrained Perturbation)

    • 优化扰动(Optimized Perturbation)表示扰动大小作为优化过程中的优化目标。该方法旨在生成人类无法识别情况下的最小化扰动的对抗样本。
    • 约束扰动(Constrained Perturbation)表示所添加扰动仅需满足约束即可,该方法只要求扰动足够小。


Ⅲ.数学符号声明

数学符号 意义
x x x 原图像
l l l 分类标签
x x' x 对抗样本
l l' l 目标分类标签
f ( ) f(·) f() 深度学习模型
θ \theta θ f f f 的参数
J f ( , ) J_f(·,·) Jf(,) 损失函数
p \left\|·\right\|_p p l p l_p lp 范数
η \eta η 扰动(即 η = x x \eta = x' - x η=xx
\nabla 梯度

Ⅳ.攻击方法介绍

1. L-BFGS Attack

提出:

S z e g e d y Szegedy Szegedy 等人发表于 I C L R <mtext>   </mtext> 2014 ICLR~2014 ICLR 2014,首次提出了使用对抗样本攻击深度神经网络。

原理:

找到一个扰动 r r r,最小化
c η 2 + J ( x + η , l ) c||\eta||_2 + J_(x + \eta, l') cη2+J(x+η,l)
其中 c c c 是个常数 ( c > 0 ) (c > 0) (c>0) L B F G S L-BFGS LBFGS 算法通过线性搜索 c > 0 c > 0 c>0 的所有情况,找到 c c c 的近似值。

缺点:

花时间长
不切实际


2. Fast Gradient Sign Method

提出:

G o o d f e l l o w Goodfellow Goodfellow 等人发表在 I C L R <mtext>   </mtext> 2015 ICLR~2015 ICLR 2015

原理:

x x x 沿着梯度方向移动来生成 x x' x,从而来最大化损失函数。
设定一个 ϵ \epsilon ϵ,满足
x x ϵ \|x' - x\|_∞ \leq \epsilon xxϵ
那么扰动 η \eta η ϵ s i g n ( x J θ ( x , <mtext>   </mtext> l ) ) \epsilon sign(\nabla_xJ_{\theta}(x,~l)) ϵsign(xJθ(x, l))

解释:

假设 J θ ( x , <mtext>   </mtext> l ) J_{\theta}(x,~l) Jθ(x, l) x x x 成线性关系,那么有
J θ ( x , <mtext>   </mtext> l ) = J θ ( x , <mtext>   </mtext> l ) + ( x x ) T x J θ ( x , <mtext>   </mtext> l ) J_{\theta}(x',~l) = J_{\theta}(x,~l) + (x' - x)^{T}\nabla_xJ_{\theta}(x,~l) Jθ(x, l)=Jθ(x, l)+(xx)TxJθ(x, l)
要最大化 J θ ( x , <mtext>   </mtext> l ) J_{\theta}(x',~l) Jθ(x, l),只需让 ( x x ) T (x'-x)^{T} (xx)T 与 梯度同向即可。

疑问:

1. 为什么要设置 ϵ \epsilon ϵ ?

1、为了控制最大扰动的 l l_∞ l 距离
2、控制每个像素的最大变化值

2. 算法局限性

1、 ϵ \epsilon ϵ 要人工选择
2、只适用于损失函数是线性的神经网络

2.1 One-step Target Class Method (OTCM)

提出:

A . K u r a k i n G o o d f e l l o w A. Kurakin, Goodfellow A.KurakinGoodfellow 等人在 I C L R <mtext>   </mtext> 2017 ICLR~2017 ICLR 2017 提出

原理:

F G S M FGSM FGSM 拓展成有目标攻击,即
x = x ϵ s i g n ( x J θ ( x , l ) ) x' = x - \epsilon sign(\nabla_{x}J_{\theta}(x,l')) x=xϵsign(xJθ(x,l))

注意加号变成了减号

2.2 RAND-FGSM

提出:

F . T r a m <mover accent="true"> e ˋ </mover> r A . K u r a k i n F. Tramèr,A. Kurakin F.TrameˋrA.Kurakin 等人在 I C L R <mtext>   </mtext> 2018 ICLR~2018 ICLR 2018 提出

原理:

先对 x x x 添加一个小的随机扰动生成 x t m p x_{tmp} xtmp,再用 x t m p x_{tmp} xtmp 来生成对抗样本,即
x t m p = x + α s i g n ( N ( 0 d , I d ) ) x = x t m p + ϵ s i g n ( x t m p J θ ( x t m p , l ) ) x_{tmp} = x + \alpha sign(\mathcal{N}({0^\mathcal{d}}, I^d))\\x' = x_{tmp} + \epsilon sign(\nabla_{x_{tmp}}J_{\theta}(x_{tmp},l)) xtmp=x+αsign(N(0d,Id))x=xtmp+ϵsign(xtmpJθ(xtmp,l))
其中 a < ϵ a < \epsilon a<ϵ

3. BIM (I-FGSM)

提出:

A . K u r a k i n G o o d f e l l o w A. Kurakin, Goodfellow A.KurakinGoodfellow 等人在 I C L R <mtext>   </mtext> 2017 ICLR~2017 ICLR 2017 提出

原理:

F G S M FGSM FGSM 中变成迭代版,每次只改变一点点。迭代方法如下:
x 0 = x x n + 1 = C l i p x , ξ { x n + ϵ ( s i g n ( J θ ( x n , l ) ) ) } x_0 = x\\x_{n+1} = Clip_{x,\xi}\{x_n + \epsilon(sign(J_{\theta}(x_n,l)))\} x0=xxn+1=Clipx,ξ{xn+ϵ(sign(Jθ(xn,l)))}
其中, C l i p Clip Clip 截断函数如下:
C l i p x , ξ { x } = m i n { 255 , x + ξ , m a x { 0 , x ϵ , x } } Clip_{x,\xi}\{x'\} = min\{255,x + \xi,max\{0, x - \epsilon, x'\}\} Clipx,ξ{x}=min{255,x+ξ,max{0,xϵ,x}}

优点:

F G S M FGSM FGSM 适用于非线性情况,且生成的扰动更小。

3.1 ILLC (iterative least-likely class method)

提出:

由上述的人提出

原理:

B I M BIM BIM 拓展成有目标攻击。即
x 0 = x y L L = a r g <mtext>   </mtext> <munder> min y </munder> { p ( y x ) } x n + 1 = C l i p x , ξ { x n ϵ ( s i g n ( J θ ( x n , y L L ) ) ) } x_0 = x\\y_{LL} = arg~\min\limits_y\{p(y|x)\}\\x_{n+1} = Clip_{x,\xi}\{x_n - \epsilon(sign(J_{\theta}(x_n,y_{LL})))\} x0=xyLL=arg ymin{p(yx)}xn+1=Clipx,ξ{xnϵ(sign(Jθ(xn,yLL)))}

上述几种方法比较

4. DeepFool

提出:

M o o s a v i D e z f o o l i Moosavi-Dezfooli MoosaviDezfooli 等人发表在 C V P R <mtext>   </mtext> 2016.6 CVPR~2016.6 CVPR 2016.6

原理:

通过迭代求取原图像 x x x 到分类器边界的最小距离来作为扰动 η \eta η

先考虑二分类问题

二维平面内的点到直线距离公式:
d = A x + B y + C A 2 + B 2 d = \dfrac{|Ax+By+C|}{\sqrt{A^2 + B^2}} d=A2+B2 Ax+By+C
由类比可得,对于***的情况,点到超平面的距离公式为:
d = f ( x ) ω 2 d = \dfrac{|f(x)|}{\|\omega\|_2} d=ω2f(x)
1、 如果分类器是线性的,如图,即
f ( x ) = ω T x + b f(x) = \omega^{T}x + b f(x)=ωTx+b


分类边界: F = { x : f ( x ) = 0 } \mathscr{F}=\{x:f(x) = 0\} F={x:f(x)=0},两边为正负类
那么生成的最小扰动
η ( x ) = f ( x ) ω <mstyle mathsize="0&#46;5em"> 2 </mstyle> 2 ω \eta^{*}(x) = -\dfrac{f(x)}{\|\omega\|_{{\tiny 2}}^{2}}\omega η(x)=ω22f(x)ω
有负号是因为扰动 η \eta η 指向分类方向

2、 分类器为非线性的
当移动的距离很小时,可以近似认为分类器是线性的,可以用多次迭代来逼近分割平面。每次扰动方向为梯度的反方向,即
η i = f ( x i ) f ( x i ) 2 f ( x i ) \eta_{i} = -\dfrac{f(x_i)}{||\nabla f(x_i)||^{2}} \nabla f(x_i) ηi=f(xi)2f(xi)f(xi)
迭代过程如图:

对于多分类问题

仍然先假设各个分类边界是线性的。

类标数 c c c:即映射空间 R n R c R^{n} \rightarrow R^{c} RnRc
分类函数: f ( x ) = <mtext mathvariant="bold"> W </mtext> T x + <mtext mathvariant="bold"> b </mtext> f(x) = \textbf{W}^{T}x + \textbf{b} f(x)=WTx+b
分类器: <mover accent="true"> k ^ </mover> ( x ) = a r g <mtext>   </mtext> <munder> max k </munder> f k ( x ) \hat{k}(x) = arg~\max\limits_{k}f_k(x) k^(x)=arg kmaxfk(x) f k ( x ) f_k(x) fk(x) f f f 向量的第 k k k 维。
那么扰动向量 η \eta η 可表示为:
η = a r g <mtext>   </mtext> <munder> min r </munder> r s . t . <mtext>    </mtext> <mtext>   </mtext> k : <mtext mathvariant="bold"> w </mtext> k T ( x 0 + <mtext mathvariant="bold"> r </mtext> ) + b k <mtext mathvariant="bold"> w </mtext> <mover accent="true"> k ^ </mover> ( x ) T ( x 0 + <mtext mathvariant="bold"> r </mtext> ) + b <mover accent="true"> k ^ </mover> \eta = arg~\min\limits_{r}\|r\|\\s.t.~~\exist~k:\textbf{w}_{k}^{T}(x_0 + \textbf{r}) + b_k\geq \textbf{w}_{\hat{k}(x)}^T(x_0+\textbf{r}) + b_{\hat{k}} η=arg rminrs.t.   k:wkT(x0+r)+bkwk^(x)T(x0+r)+bk^
其中 <mtext mathvariant="bold"> w </mtext> k \textbf{w}_k wk <mtext mathvariant="bold"> W </mtext> \textbf{W} W 的第 k k k 列,即第 k k k 个子分类器的权值向量
即存在 k <mover accent="true"> k ^ </mover> ( x ) k \neq \hat{k}{(x)} k=k^(x), 满足 f k ( x ) f <mover accent="true"> k ^ </mover> ( x ) f_k(x) \geq f_{\hat{k}{(x)}} fk(x)fk^(x)
k k k 个分类边界 F k = { x : f k ( x ) f <mover accent="true"> k ^ </mover> ( x ) = 0 } \mathscr{F}_k=\{x:f_k(x) - f_{\hat{k}{(x)}} = 0\} Fk={x:fk(x)fk^(x)=0}

<mover accent="true"> l ^ </mover> ( x 0 ) = a r g <mtext>   </mtext> <munder> min k <mover accent="true"> k ^ </mover> ( x 0 ) </munder> f k ( x ) f <mover accent="true"> k ^ </mover> ( x 0 ) ( x ) <mtext mathvariant="bold"> w </mtext> k <mtext mathvariant="bold"> w </mtext> <mover accent="true"> k ^ </mover> ( x 0 ) 2 \hat{l}(x_0)=arg~\min\limits_{k\neq \hat{k}(x_0)}\dfrac{|f_k(x)-f_{\hat{k}(x_0)}(x)|}{\|\textbf{w}_k-\textbf{w}_{\hat{k}(x_0)}\|_{2}} l^(x0)=arg k=k^(x0)minwkwk^(x0)2fk(x)fk^(x0)(x)
那么最小扰动为 η ( x 0 ) \eta^{*}(x_0) η(x0) 为:
η ( x 0 ) = f <mover accent="true"> l ^ </mover> ( x 0 ) ( x ) f <mover accent="true"> k ^ </mover> ( x 0 ) ( x ) <mtext mathvariant="bold"> w </mtext> <mover accent="true"> l ^ </mover> ( x 0 ) <mtext mathvariant="bold"> w </mtext> <mover accent="true"> k ^ </mover> ( x 0 ) <mstyle mathsize="0&#46;5em"> 2 </mstyle> 2 ( <mtext mathvariant="bold"> w </mtext> <mover accent="true"> l ^ </mover> ( x 0 ) <mtext mathvariant="bold"> w </mtext> <mover accent="true"> k ^ </mover> ( x 0 ) ) \eta^{*}(x_0) =-\dfrac{|f_{\hat{l}(x_0)}(x)-f_{\hat{k}(x_0)}(x)|}{\|\textbf{w}_{\hat{l}(x_0)}-\textbf{w}_{\hat{k}(x_0)}\|_{\tiny 2}^2}(\textbf{w}_{\hat{l}(x_0)}-\textbf{w}_{\hat{k}(x_0)}) η(x0)=wl^(x0)wk^(x0)22fl^(x0)(x)fk^(x0)(x)(wl^(x0)wk^(x0))