对抗攻击(Adversarial Attack)

文章目录

对抗攻击

图片可以看成一个很长的向量,如果在图片的每个像素上都加上一个很小的pertubation(扰动、杂讯),再把它输入到神经网络,这个时候分类器可能就会误判。
没有被攻击的图片一般称为Benign Image,被攻击的图片称为Attacked Image。
通常攻击可以分为定向攻击和非定向攻击:
定向攻击(targeted attack):误分类成一个特定的类
非定向攻击(non-targeted attack):误分类成其他类(只要不是cat类)

对抗攻击(Adversarial Attack)

该如何去攻击?
假设benign image是x 0 x^0 x 0,输入到神经网络,输出y 0 = f ( x 0 ) y^0=f(x^0)y 0 =f (x 0 ) ,x 0 x^0 x 0的真实值是 y ^ \hat{y}y ^​
被攻击后输入是x x x,输出y 0 = f ( x ) y^0=f(x)y 0 =f (x );
想要攻击成功,就得让 y y y 和 y ^ \hat{y}y ^​ 相差较大

对抗攻击(Adversarial Attack)
这个问题的 loss函数是:
Non-targeted: L ( x ) = − e ( y , y ^ ) L(x)=- e(y,\hat{y})L (x )=−e (y ,y ^​)
targeted: 不仅需要 y y y 与 y ^ \hat{y}y ^​ 越远越好,还要保证 y y y 与 y t a r g e t y^{target}y t a r g e t 越近越好
L ( x ) = − e ( y , y ^ ) + e ( y , y t a r g e t ) L(x)=- e(y,\hat{y})+e(y,y^{target})L (x )=−e (y ,y ^​)+e (y ,y t a r g e t )
另外还期待加入的pertubation越小越好,这样就不容易被人类观察到(not perceived by humans),即 x x x 和 x 0 x^0 x 0之间差距越小越好
所以完整的优化问题表达式是:
x ∗ = a r g min ⁡ d ( x 0 , x ) ≤ ϵ L ( x ) x^* = arg \min \limits_{d(x^0,x) \leq \epsilon} L(x)x ∗=a r g d (x 0 ,x )≤ϵmin ​L (x )
怎么计算d ( x 0 , x ) d(x^0,x)d (x 0 ,x )呢,这里采用的是 L-norm(范数)
  • L2-norm:d ( x 0 , x ) = ∣ ∣ Δ x ∣ ∣ 2 = ( Δ x 1 ) 2 + ( Δ x 2 ) 2 + ⋯ d(x^0,x)=||\Delta x||^2=(\Delta x_1)^2+(\Delta x_2)^2+\cdots d (x 0 ,x )=∣∣Δx ∣∣2 =(Δx 1 ​)2 +(Δx 2 ​)2 +⋯
  • L-infinity:d ( x 0 , x ) = ∣ ∣ Δ x ∣ ∣ ∞ = max ⁡ ( ∣ Δ x 1 ∣ , ∣ Δ x 2 ∣ , ⋯ ) d(x^0,x)=||\Delta x||_{\infty}=\max (|\Delta x_1|,|\Delta x_2|,\cdots)d (x 0 ,x )=∣∣Δx ∣∣∞​=max (∣Δx 1 ​∣,∣Δx 2 ​∣,⋯)

与神经网络不同更新参数不同的是,对抗攻击是更新输入,同样也用梯度下降的方法,如下图所示:

对抗攻击(Adversarial Attack)

首先可以从x 0 x^0 x 0开始,然后进行梯度下降,但是迭代过程中要注意限制,保证
d ( x 0 , x ) ≤ ϵ d(x^0,x) \leq \epsilon d (x 0 ,x )≤ϵ(以L-infinity为例,限制就是需要在以ϵ \epsilon ϵ为边长的正方形内)
可以看出,不同的攻击就是有不同的优化方法或者不同的限制。
几种著名的方法:

  • FGSM
    论文链接:Explaining And Harnessing Adversarial Examples
    论文笔记链接:
    主要思路就是只需要一次迭代就可以达到攻击,另外在对loss求导外面加了一个符号函数sign(大于0输出1,小于0输出-1),这样确保了扰动的限制

对抗攻击(Adversarial Attack)

白盒攻击&黑盒攻击

对抗攻击(Adversarial Attack)

简单说就是白盒攻击知道模型的参数,黑盒攻击不知道模型的参数

黑盒攻击(black-box attack)

If you have the training data of the target network Train a proxy network yourself
Using the proxy network to generate attacked objects

黑盒攻击,不知道模型的参数,此时该怎么攻击?
如果知道目标网络的训练资料,可以训练一个替代模型,使用替代网络去产生被攻击的对象
那么黑盒攻击容易成功吗?
从论文(Delving into Transferable Adversarial Examples and Black-box Attacks)的实验来看,是容易成功的。
下图的表格,列代表被攻击的模型,行代表代理(proxy)模型。单元格(i,j)表示为模型 i(行)生成的对抗图像在模型 j(列)上评估的准确性。
对角线由于是同一模型,所以看成是白盒攻击。 不同行不同列即为黑盒,例如由ResNet-152生成的对抗样本在ResNet-101上的准确率仅为13%。准确率越低,表示攻击越成功。具体可以看这篇

对抗攻击(Adversarial Attack)
另外还有很多黑盒攻击:
  • one-pixel attck
    只需改变一个像素就可以达到攻击的目的
    论文链接:One Pixel Attack for Fooling Deep Neural Networks
    论文笔记链接:
  • Universal Attack Perturbation(UAP)
    一个通用(与图像无关)和非常小的扰动向量,就可以让攻击成功(以往是针对不同的图像需要设计不同perturbation产生对抗样本)
    论文链接:Universal adversarial perturbations
    论文笔记链接:
  • BackDoor Attack(后门攻击)
    攻击在训练阶段已经开始,对某张图片加了一些扰动,丢入神经网络进行训练

对抗攻击还被应用在 语音,自然语言处理

; 对抗防御

1.主动防御
对抗训练

2.被动防御

  • 加一个filter(滤波器)
  • 图像压缩(先压缩再解压避开攻击)
  • Generator(按照对抗样本根据generator生成一张图片)
  • Randomization(随机的防御)

参考链接:
https://speech.ee.ntu.edu.tw/~hylee/ml/2022-spring.php

Original: https://blog.csdn.net/ji_meng/article/details/123931315
Author: nanyidev
Title: 对抗攻击(Adversarial Attack)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/649467/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球