到 2014 年,最先进的神经网络存在一个已知但无法解释的故障:对图像进行微小、刻意的最坏情况扰动——通常小到人眼无法察觉——网络就会以高置信度错误分类。同样的篡改图像往往会欺骗许多在不同数据上训练的不同架构,这表明缺陷出在训练方法本身,而非某个单一网络。

早期的解释归咎于深度网络所谓的极端非线性以及过拟合,但标准修复方法如 dropout、预训练和模型平均并未消除该漏洞。Goodfellow、Shlens 和 Szegedy 测试了相反的假设:训练良好的架构(ReLU、maxout、LSTM)设计上几乎是线性的,而在高维输入空间中,仅线性就足以导致问题。对于数十万像素,每个像素的扰动小于图像精度的 1 位,点积中的小项累积成网络激活的大变化。

这种观点产生了一种快速攻击:在输入周围线性化成本,然后用梯度的符号扰动输入,这只需一次反向传播。在 MNIST 上,该方法使一个浅层 softmax 模型达到 99.9% 的错误率,maxout 网络达到 89.4% 的误分类,且高置信度;在 ImageNet 上,每像素仅 0.007 的扰动将熊猫变成了长臂猿。廉价的生成也改变了防御:在这种示例上进行对抗训练提供了超越 dropout 的正则化并降低了测试集错误。

这项工作也为工程师揭秘了故障。2015 年 12 月下旬,Recurse Center 的 Codewords 发布了 Julia Evans 的图解演练,用 Dockerized 笔记本在 GoogLeNet 上重现了攻击——黑色图像变成纸毛巾,熊猫变成秃鹫——Hacker News 的讨论获得了 268 分和 66 条评论,读者指出该论文仍然适用于后来的神经网络浪潮。

假设线性:沿梯度符号扰动,然后在攻击上训练

早期尝试归咎于非线性和过拟合;假设相反使对抗样本变得可预测而非神秘

该机制随维度缩放:低于传感器精度的扰动在数十万像素上累积,导致输出决定性变化

每次攻击单次反向传播,使对抗训练可行,将故障模式转化为超越 dropout 的正则化器

这解释了迁移性:任何在高维中表现线性的模型共享盲点,因此一个示例欺骗多个架构和训练集

当模型以看似神秘的方式失败时,先测试最廉价的解释——如果能廉价地产生失败,也能廉价地对抗训练。

首版于 2014 年 12 月 20 日发布在 arXiv,并在 2015 年 3 月修订;其扰动 0.007 时的熊猫变长臂猿图像成为对抗样本经典画面。一年后,Julia Evans 的 Codewords 演练让读者在无 GPU 的笔记本上重现该技巧——熊猫变秃鹫,黑屏变纸毛巾——并在 Hacker News 上获得 268 分和 66 条评论,有读者称该论文在很大程度上仍适用于后来的神经网络浪潮。

从这里,追溯依据

参考来源

  1. Explaining and Harnessing Adversarial Examples (arXiv:1412.6572) arxiv.org
  2. How to trick a neural network into thinking a panda is a vulture codewords.recurse.com
  3. How to trick a neural network into thinking a panda is a vulture — Hacker News discussion news.ycombinator.com