NTU ML2023Spring Part2.10 来自人类的恶意攻击

License:CC BY-NC-SA 4.0

同步发表于我的新博客

假设你有一个图像识别的模型,输入图像,输出里面的东西。一般来说输入一张猫的图片,它会识别为猫;但如果给图片里的像素做特定的微小改动(attack),在人眼看不出来变化的情况下可以让机器识别的结果变成其他东西。

attack 按照预期目的可以分两类:

  • non-targeted:只要让机器的结果不对就行了,具体错成什么不重要。
  • targeted:要让识别结果从猫变成狗(target)。

其实这些 attack 还是最优化问题,但 loss 变成了机器识别的结果与真实结果间的差距(对于 targeted attack,还要算上识别结果与 target 之间的距离)。怎么确保人眼看不出来呢?还要加上限制条件:原输入与微小改变后的输入的距离不超过某个常数。

这里的「距离」有多种选择。假设原输入是 \(\mathbf{x}\),改动后的输入是 \(\mathbf{y}\),它们都是向量,一个自然的想法是用欧几里得距离 \(\| \mathbf{x} - \mathbf{y} \|\)(L2-norm),但也可以用 \(\min \limits_{i}(|\mathbf{x}_i - \mathbf{y}_i|)\)(L-infinity)。但是从人眼的角度来看,把每一个像素都改动一点,肯定是比把某个像素改动很多要难认出来的(这句话有点绕,其实就是说 L-infinity 更好)。但是这只是图像上的例子,对于 NLP,对于语音,又有不同的选择,和 domain knowledge 有关了。

处理最优化问题的时候,还是可以用熟悉的配方,上 gradient descent。但这里多的限制条件 \(d(\mathbf{x}, \mathbf{y}) \le \varepsilon\) 怎么处理呢?其实可以简单暴力地做:如果沿着 gradient 更新完后发现不满足限制条件,就直接修改到满足条件,比如说取个 min 什么的。

它的一个变体是 Fast Gradient Sign Method(FGSM),只更新一次参数,按梯度每一维的正负更新 \(\pm \varepsilon\). 当然这样只能过 simple baseline,所以还要多更新几次比较好。

对于参数公开的模型,我们可以用 gradient descent 攻击它(white box attack),那如果参数不公开呢,又要怎么攻击(black box attack)呢?

  • 如果你知道要攻击的模型是用什么数据训练出来的,可以自己用同样的数据再训一个模型,也许同样的攻击能生效(替身使者(?))。
  • 如果你不知道,可以先给攻击对象输入一堆数据,用这些输入输出来训练替身(蒸馏?)

[1].

black box 做 non-targeted attack 比较容易,但有 target 就不容易了。

如果想增加攻击的效果,可以用 ensemble attack。就是说你先攻击一些别的模型,如果都成功了那么这个大概率也会成功。

对于防止攻击,(有一部分人认为)主要问题还是在资料而非模型。

attack 造成的改动可能很小,甚至到 one pixel attack[2].

有可能对所有的图片都应用同一个改动,这叫作 universal adversarial attack[3].

除了图片,语音识别和 NLP[4] 等方向上都可以攻击。

攻击还可以发生在真实世界中(例如化妆骗过人脸检测)[5]

adversarial reprogramming:让机器做另外一件事。有点像赛博生命的寄生?[6]

在训练资料里可能会被加入类似「后门」的东西[7],导致对某张特定的图片辨识出错。

对于防御,也可以分为两类:

  • passive defense

    在模型前加一个 filter,给图片再改动一些(例如模糊化),使 attack signal 削减威力。

    还有其他做法,比如有损压缩[8][9],用 generator 生成一张一样的图片[10]

    加上随机性[11]可以提升防御效果。有点像算导里描述的全域散列?

  • proactive defense

    在训练的时候就要提高它的防御能力(adversarial training),就是训练一段时间开始攻击,然后把攻击过的图像也加入训练资料。有点像 GAN。


  1. https://arxiv.org/abs/1611.02770 ↩︎

  2. https://arxiv.org/abs/1710.08864 ↩︎

  3. https://arxiv.org/abs/1610.08401 ↩︎

  4. https://arxiv.org/abs/1908.07125 ↩︎

  5. https://users.cs.northwestern.edu/~srutib/papers/face-rec-ccs16.pdf ↩︎

  6. https://arxiv.org/abs/1806.11146 ↩︎

  7. https://arxiv.org/abs/1804.00792 ↩︎

  8. https://arxiv.org/abs/1704.01155 ↩︎

  9. https://arxiv.org/abs/1802.06816 ↩︎

  10. https://arxiv.org/abs/1805.06605 ↩︎

  11. https://arxiv.org/abs/1711.01991 ↩︎

posted @ 2025-04-13 16:39  383494  阅读(50)  评论(0)    收藏  举报