对抗样本是什么?人眼看不出差别,却能让 AI 判断出错的输入
对抗样本(Adversarial Examples)是指在正常的输入数据上,加入经过精心设计的、极其微小的扰动之后得到的样本。这种扰动小到人类几乎完全察觉不到,但却能让机器学习模型,尤其是深度神经网络,以很高的置信度做出完全错误的判断。
一个著名的例子
2014 年,Ian Goodfellow 等人在论文中展示了一个经典的例子:一张熊猫的图片,图像识别模型以约 57.7% 的置信度判断它是熊猫。研究者在这张图片上叠加了一层非常微弱的、看起来像随机噪声的扰动,对于人眼来说,修改后的图片和原来的图片看起来一模一样,仍然是一只熊猫。但模型却以 99.3% 的置信度把它判断为长臂猿。这个例子生动地揭示了神经网络的一个令人意外的弱点。
它的发现
对抗样本现象由 Christian Szegedy 等人在 2013 年发表的论文《神经网络的有趣性质》中首次系统地揭示。研究者发现,在当时表现非常出色的图像识别网络中,几乎对任何一张图片,都能找到一个人眼难以察觉的微小扰动,让网络的判断出错。而且,针对一个模型生成的对抗样本,常常也能骗过另一个结构不同、用不同数据训练的模型,这种现象叫作“迁移性”。这意味着,攻击者即使不知道目标模型的具体细节,也可能用自己的模型生成对抗样本来攻击它。
为什么会存在对抗样本
研究者对此提出了多种解释。Goodfellow 等人认为,原因之一在于神经网络在高维空间中的“线性”行为:一张图片有成千上万个像素,即使每个像素只改变一点点,但如果这些改变都朝着让模型出错的方向,它们累加起来的效果就可能非常大。另一种观点认为,模型学到的很多特征,虽然对于分类是有用的,但它们是人类无法感知的、非常脆弱的特征,对抗样本正是利用了这些特征。也有观点从数据流形的角度解释:对抗样本可能落在了真实数据分布之外,模型在那些从未见过的区域中的行为是不可靠的。
如何生成对抗样本
最经典的方法是 Goodfellow 等人提出的快速梯度符号法(FGSM):计算模型的损失对输入图片的梯度,梯度指出了每个像素朝哪个方向变化会让模型的错误增加得最快,然后让每个像素沿着梯度的符号方向移动一个微小的量。这样一步就能生成对抗样本。后来出现了更强的迭代方法,比如投影梯度下降(PGD),以及能找到更小扰动的 C&W 攻击等。除了数字图片中的攻击,研究者还展示了物理世界中的对抗样本:比如在交通标志上贴几块特殊的贴纸,就可能让自动驾驶系统把“停车”标志识别成限速标志;戴上特殊图案的眼镜,就可能骗过人脸识别系统。对抗样本也存在于语音识别、文本分类等其他领域;在大语言模型中,经过特殊设计的提示也可以被看作一种对抗输入。
为什么值得重视,以及如何防御
对抗样本揭示了当前人工智能系统在安全性和鲁棒性方面的严重隐患。在自动驾驶、人脸识别、医学影像诊断、内容审核等关系到安全和重大利益的应用中,如果模型容易被对抗样本欺骗,可能会被恶意地利用,造成严重的后果。目前最有效的防御方法之一是对抗训练:在训练过程中不断地生成对抗样本,并把它们加入训练数据中,让模型学会抵抗这类扰动。此外还有输入预处理、检测对抗样本、可证明鲁棒性的方法等。不过,对抗攻击与防御之间至今仍是一场“猫鼠游戏”,许多提出的防御方法后来被证明可以被更强的攻击所突破,如何构建真正鲁棒的模型,仍然是人工智能安全领域的一个重要的开放问题。