对抗模型,要对抗的是:

  • 噪音
  • human制造出来的有恶意的攻击

1. 什么是攻击

输入正常的x0,NN会得到正确的结果
但通过经心设计Δx\Delta x,使得NN会在x+Δxx+\Delta x上犯错,而人类无法分辨x+Δxx+\Delta x和x。

2. 怎样攻击

  • 正常训练

L(θ)=C(y0,ytrue) L(\theta) = C(y^0, y^{\text{true}})

x是固定的,调整θ\theta

  • 无目标攻击

L(x)=C(y,ytrue) L(x') = - C(y', y^{\text{true}})

θ\theta是固定的,调整x

  • 有目标攻击

L(x)=C(y,ytrue)+C(y,yfalse) L(x') = - C(y', y^{\text{true}}) + C(y', y^{\text{false}})

  • 额外限制

d(x0,x)ϵ d(x^0, x') \le \epsilon

不要被发现

2.1. d是怎么定义的?

L2-norm、L-infinity

图像应用上,L-infinity比L2-norm更合适

2.2. 怎样求解x

2.2.1. 方法一:梯度下降法

x=argmind(x0,x)ϵL(x) \begin{aligned} x^* = \arg\min_{d(x^0, x') \le \epsilon} L(x') \end{aligned}

这是一个带限制的最优化问题

  1. 将x'初始化为x0
  2. 用梯度下降法更新xt
    xt=xt1ηL(xt1) x^t = x^{t-1} - \eta \nabla L(x^{t-1})

  3. 增加限制
    如果{d(x^0, x') > \epsilon},则xt = fix(xt)

2.2.2. 方法二:FGSM

Fast Gradient Sign Method

x=x0ϵΔxΔx=sign(Lx) \begin{aligned} x^* = x^0 - \epsilon \Delta x \\ \Delta x = \text{sign} (\frac{\partial L}{\partial x'}) \end{aligned}

直观解释:
FGSM不在意Δx\Delta x的值,只在意它的方向
例如Δx\Delta x指向左右任意一个方向,x*都会走到右上角
可以看任是一个LR巨大的一次GD

3. White Box VS Black Box

3.1. 白盒攻击 - 知道NN的参数

以上方法都是白盒攻击

3.2. 黑盒攻击 - 不知道NN的参数,有NN的训练集

  1. 用training data训练一个NN proxy
  2. 用白盒攻击方法找到能攻击NN proxy的图像
  3. 用这张图像去攻击NN

3.3. 黑盒攻击 - 不知道NN的参数,没有NN的训练集

  1. 用自己的training data喂NN,得到output
  2. 用自己的training data + NN的output得到labelled data
  3. 用labelled data训练NN proxy
  4. 用白盒攻击方法找到能攻击NN proxy的图像
  5. 用这张图像去攻击NN

4. 其它攻击方法

4.1. Universal Adversal Attack

不是针对某个样本制作攻击
制作一张通过的Δx\Delta x图像
这张图像叠加到任意图像上都有攻击作用
可以用于white或者black

4.2. Adversarial Reprogramming

通过攻击改变一个NN的功能

results matching ""

    No results matching ""