使用对抗性样本攻击机器学习
TL;DR
对抗性样本是故意设计的输入,导致机器学习模型出错,充当“机器的光学幻觉”。它们的存在表明,即使是简单的现代算法也可能以设计者未预料的方式行为,代表着 AI 安全的一个具体且紧迫的挑战。
理解对抗性样本
对抗性样本是专门设计的输入,用于欺骗机器学习模型,使其对数据进行错误分类或执行错误操作。这些扰动通常非常微妙,以至于人类难以察觉,但对 AI 系统却非常有效。
跨介质漏洞
对抗性攻击具有鲁棒性,可以在各种格式中表现出来:
- 数字图像:在熊猫图像上添加微小扰动,可能导致模型高度置信地将其识别为长臂猿。
- 物理世界:对抗性样本可以打印在普通纸张上,并用智能手机拍摄,仍能成功欺骗分类器(例如,将“洗衣机”标记为“保险箱”)。
- 关键基础设施:攻击者可能使用贴纸或油漆修改停止标志,导致自动驾驶汽车将其解释为“让行”标志或其他标记。
对强化学习(RL)的影响
除了图像分类,强化学习代理也容易受到影响。涉及 DQN、TRPO 和 A3C 算法的研究表明,对抗性输入会降低性能,导致代理将乒乓球拍向错误方向移动,或在 Seaquest 中未能发现敌人,即使扰动对人类感知来说太微妙。
尝试的防御及其局限性
传统的鲁棒性技术,如权重衰减和 dropout,通常对对抗性样本无效。只有两种专门的方法提供了显著的防御,尽管两者都仍然容易受到攻击者增加的计算能力的影响。
有效的防御策略
- 对抗训练:一种暴力方法,通过在大量生成的对抗性样本上显式训练模型,以防止其被欺骗。
- 防御性蒸馏:一种策略,通过训练模型输出不同类别的概率而不是硬决策。这些概率由先前在同一任务上训练的模型提供,这使得模型的表面变得平滑,增加了攻击者寻找可利用调整的难度。
梯度掩蔽的失败
“梯度掩蔽”描述了一类失败的防御,这些防御试图阻止攻击者获得有用的梯度。由于大多数攻击使用模型的梯度来确定扰动输入的方向以增加错误类别的概率,因此掩蔽梯度(例如,仅输出最可能的类别而不是概率)似乎有效。
然而,梯度掩蔽失败的原因有两点:
- 漏洞的持续存在:模型防御中的“漏洞”仍然存在;攻击者只是获得的线索更少。
- 替代模型:攻击者可以训练一个“替代模型”——一个平滑的副本,通过观察其标签来模仿被防御的模型。然后,攻击者使用替代模型的梯度生成对抗性样本,这些样本常常能成功欺骗原始被防御的模型。
OpenAI 指出,对抗训练和防御性蒸馏实际上会无意中执行一种梯度掩蔽的形式,常常导致模型变得平坦,而不是确保更多点被正确分类。
为什么防御对抗性样本很困难
保护机器学习模型免受对抗性攻击是一个复杂的研究问题,原因有几个基本方面:
- 缺乏理论模型:对抗性样本是非线性和非凸优化问题的解决方案。由于缺乏描述这些解决方案的理论工具,很难证明一种防御能够排除特定的一组对抗性样本。
- 输入空间复杂性:模型必须对所有可能的输入产生正确的输出,但目前大多数模型仅在可能遇到的所有输入的一小部分上表现良好。
- 非自适应防御:大多数当前策略不是自适应的;它们可能阻止一种特定的攻击,但会让其他漏洞暴露给了解防御机制的攻击者。