对抗机器学习

2025年8月1日 | 阅读14分钟

在计算机安全领域,“对手”(adversary)一词用于通过恶意的输入来愚弄或误导机器学习模型。网络安全是所有数据科学家和程序员都非常重要的概念之一,因为黑客总是试图通过各种技术来窃取数据。同样,对抗性机器学习也是一种通过欺骗性数据来误导任何机器学习模型的技术,从而降低模型的准确性和性能。在本文中,我们将讨论机器学习和人工智能中一个非常重要的概念,它可以帮助您保护机器学习模型免受数字攻击,并使其免受未经授权的攻击。那么,让我们开始对对抗性机器学习进行快速介绍。

Adversarial Machine Learning

什么是对抗性机器学习?

对抗性机器学习是指旨在通过恶意输入来愚弄或误导模型的网络攻击。它用于通过提供欺骗性输入来执行攻击,以破坏或扰乱机器学习模型。对抗性机器学习广泛应用于图像分类和垃圾邮件检测,其中对图像集进行一些更改会导致分类器产生不正确的预测。

对抗性机器学习的例子

对抗性机器学习的例子指的是旨在误导或破坏机器学习模型或计算机程序的欺骗性输入。有一些攻击者精心制作的图像示例,我们的模型无法正确预测。让我们以熊猫与长臂猿的流行示例来理解。尽管这两张图像不同,但人眼却无法区分。

Adversarial Machine Learning

左边的图像是 ImageNet 数据集中一个干净的图像,用于训练 GoogLeNet 模型。

然而,第一张图像与第三张图像略有不同,甚至可以说是第一张图像的修改版本。右侧图像是通过在中间图像中引入微小扰动而创建的。

模型预测第一张图像为熊猫,正如预期的那样,而右侧图像则以高置信度被识别为长臂猿。

因此,当引入具有对抗性输入的典型图像时,它可能会导致分类器将熊猫误认为长臂猿。

现在,以另一个例子来说明,它展示了作者打印的 3D 乌龟的不同视图以及 Google Inception v3 模型的错误分类。

对抗性机器学习已产生各种结果,从有趣、良性到令人尴尬(例如,将乌龟误认为步枪)到潜在有害的例子,例如自动驾驶汽车将停止标志误认为限速标志。

什么是对抗性白盒攻击和黑盒攻击?

机器学习中的攻击有两种分类方式。它们如下:

  • 黑盒攻击
  • 白盒攻击

黑盒攻击:黑盒攻击是指攻击者不了解目标模型的信息,也无法访问其架构、参数和梯度的情况。

白盒攻击:这些攻击与黑盒攻击相反,攻击者可以完全访问目标模型及其架构、参数和梯度信息。

黑盒攻击和白盒攻击进一步分为两种类型,如下所示:

  • 定向攻击:在这种类型的攻击中,攻击者以某种方式破坏输入,使得模型预测一个特定的目标类别。
  • 非定向攻击:在这种类型的攻击中,攻击者以某种方式破坏输入,使得模型预测一个类别,但该类别不应该是真实的类别。

如何防御对抗性示例?

虽然对抗性机器学习总是对模型的安全不利,但我们可以通过进行对抗性训练来保护我们的模型。正如一般的机器学习模型通过旧数据或经验进行训练以预测结果一样,对抗性机器学习模型也提供训练。在该训练中,模型在各种对抗性示例上进行训练,以使其能够抵御数据中的故障。

Adversarial Machine Learning

尽管如此,给模型进行对抗性训练并不容易,因为这是一个非常缓慢且昂贵的过程。每个训练示例都必须针对对抗性弱点进行探测,然后必须在所有这些示例上重新训练模型。科学家们正在开发方法来优化在机器学习模型中发现和修补对抗性弱点的过程。此外,一些人工智能研究人员还通过结合并行神经网络和通用神经网络来利用深度学习概念来防止此类攻击。

对抗性攻击的类型

有许多类型的对抗性攻击会损害您的机器学习系统。这些对抗性攻击的目的是降低分类器在特定任务上的准确性和性能,并误导模型。对抗性机器学习是研究这些攻击并减少其对模型影响的一个部门。

以下是一些重要的对抗性攻击类型:

投毒攻击

当机器学习模型在训练或部署期间时,会发生投毒攻击。它也被称为污染攻击。

在投毒攻击中,攻击者在模型训练阶段会影响数据或其标签,这会导致系统在未来出现偏差或生成不准确的决策。它会降低机器学习系统的准确性和性能。

此外,当机器学习模型在部署期间重新训练时,攻击者会引入恶意输入并破坏模型。数据研究人员很难识别数据何时被污染以及在特定类型的输入样本上出现错误。此外,也很难检测到哪种类型的样本数据会触发机器学习模型出现错误行为。

让我们以一个毒化聊天机器人的例子来理解。微软曾为 Twitter 推出了一个聊天机器人,通过与其他用户的反复互动来学习进行对话。最初,它与用户进行了随意而有趣的对话,但后来他们发现该聊天机器人没有适当的过滤器。因此,该系统开始将其算法中的辱骂性推文。随着用户数量的增加,辱骂性推文也随之增加。因此,微软不得不在同一天关闭了这个聊天机器人。

规避攻击

这些攻击与投毒攻击正好相反,攻击发生在机器学习系统已经训练之后。这些攻击是机器学习中常见的攻击类型。

当 ML 模型计算新样本的概率时,就会发生这种情况,并且通常是通过反复试验的方法开发的。攻击者在部署期间操纵数据,但他们不知道机器学习模型何时会出错。

让我们举个例子来说明。假设攻击者想要研究用于过滤垃圾邮件内容的机器学习模型的算法。然后,攻击者可能会对不同的电子邮件进行各种实验,通过引入包含足够多额外词语来“提示”算法并将垃圾邮件分类为非垃圾邮件,从而绕过垃圾邮件过滤器。

这些攻击可能会影响机器学习模型的正确性和保密性,从而导致其提供攻击者预期的恶意输出。这些攻击还可以用于泄露私人或敏感信息。规避攻击最普遍的例子之一是针对生物识别验证系统的欺骗攻击。

模型提取

模型提取是指黑盒机器学习系统。它用于通过提取训练它的数据来重建模型。它有助于窃取股票市场预测模型,然后攻击者会重建一个与先前模型相似的新模型以谋取自身经济利益。当训练数据或模型本身敏感且保密时,模型提取攻击很重要。

生成对抗性攻击使用的技术/方法

方法描述优点缺点
有限内存 BFGS (L-BFGS)有限内存 Broyden-Fletcher-Goldfarb-Shanno (L-BFGS)。它用于最小化添加到图像的干扰。它基于非线性梯度下降数值优化算法。它对于生成对抗性示例很重要。这是一个非常复杂的方法,因为它是一种计算密集型的优化技术。此外,它相对更耗时。
FGSM它是快速梯度符号法的缩写。这是一种相对简单且快速的基于梯度的对抗性机器学习方法。它的计算量相对较小。在此方法中,干扰被添加到模型中的每个属性。
JSMA它代表基于雅可比矩阵的显著图攻击。它有助于通过特征选择来减少分类错误。与 FGSM 相比,它干扰的属性更少。与 FGSM 方法相比,它的计算量更大。
Deepfool 攻击Deepfool 攻击是指一种非定向对抗性攻击生成方法。它专注于减小恶意训练数据与原始训练数据之间的欧几里得距离。在此方法中,估计决策边界,并迭代地添加干扰。它能够产生干扰更少、分类率更高的对抗性示例。与 FGSM 和 JSMA 方法相比,它的计算量更大,且示例不合适。
C&W它代表 Carlini & Wagner 攻击。这项技术也与 L-BFGS 攻击类似,但唯一区别在于边界约束和不同的目标函数,因为它不包含边界约束,这使得该方法在生成对抗性示例方面更有效。它是生成机器学习中对抗性示例的最有效方法,并且还可以误导对抗性防御技术。与 Deepfool、FGSM 和 JSMA 方法相比,它的计算量更大,且示例不合适。
GAN它代表生成对抗网络,用于生成具有两个神经网络的对抗性攻击。一个充当生成器或生成样本,另一个充当判别器或误分类它们。因此,两个神经网络都扮演零和博弈。判别器还试图区分真实样本和生成器生成的样本。它生成与训练样本不同的样本。它的计算量非常大。
ZOO它代表零阶优化攻击。它使我们能够在不接触分类器的情况下估计分类器的梯度。其性能与 C&W 攻击相当,且无需对分类器进行训练。它需要对目标分类器进行大量查询。

应用

ZHAW 增强计算机视觉模型鲁棒性

  • 计算机视觉机器学习。在计算机视觉领域,对抗性机器学习被广泛用于测试和增强模型的鲁棒性。存在图像分类器对 FGSM 和 PGD 等操纵输入的鲁棒性的对抗性评估。这些方法尤其适用于视觉误分类可能产生灾难性后果的情况,例如自动驾驶或医学成像。研究人员和模型开发者可以使用对抗性示例来开发更鲁棒的模型,从而在关键情况下做出可靠的决策。

安全的生物识别身份验证系统

  • 生物识别系统的例子包括面部识别、指纹和虹膜识别,它们都容易受到对抗性示例的影响,这些示例是对输入数据的微小操纵,会欺骗生物识别系统。对抗性攻击可以帮助开发者更多地了解这些漏洞以及如何通过对抗性训练或输入清理等防御措施来减轻它们。例如,面部图像的微小改动可能会欺骗面部识别系统,这对于智能手机和边境安全来说是一个严重的问题。对抗性 ML 有助于增强身份验证协议,确保其能够抵御这些欺骗攻击。

识别和防止垃圾邮件和恶意软件

  • 对抗性机器学习应用于评估和优化垃圾邮件过滤器和恶意软件检测。对手总是会生成对抗性样本来规避安全机制,包括修改电子邮件的头部和尾部或操纵一段代码。通过模拟这些对抗性输入,防御者可以加强系统。例如,在网络安全领域,模型的对抗性训练可以用来识别那些经过精心修改以规避检测的恶意软件变种。该应用程序对于维护网络完整性和最小化网络威胁至关重要。

基于自动驾驶汽车的压力测试 AI

  • 在自动驾驶汽车中,对抗性 ML 可用于测试 AI 模型在街道标志被更改或对象识别任务出现问题时的反应程度。例如,通过对抗性贴纸,停止标志可能对计算机视觉模型不可见,这可能会导致危险事故。人工智能系统被对抗性输入破坏的能力有助于制造商构建更强大的识别和导航算法。此类模拟构成了在将自动驾驶汽车投入使用前必须进行的严格安全措施。

改进金融欺诈检测系统

  • 人工智能模型帮助金融机构识别欺诈交易。对手将利用交易模式来欺骗系统。对抗性机器学习有助于模拟这些高级欺诈模式并提高模型的检测能力。机构可以通过教授模型识别即使是对抗性模式来训练模型专注于误报(False Negatives),从而增强安全性。此类应用在在线银行和保险等领域至关重要,在这些领域,异常行为可能在短时间内导致巨额资金损失。

自然语言处理模型测试

  • 对抗性机器学习可用于 NLP 来测试 BERT、GPT 和 LSTM 等模型的鲁棒性。恶意用户可以通过附加或替换句子中的单词,导致模型得出完全错误的结论(例如情感分类或垃圾邮件识别)。在使用聊天机器人和电子邮件过滤器中的内容审核系统时,此类测试非常重要。通过使用对抗性文本样本或输入转换来增强这些模型的鲁棒性,以降低对这些干预的敏感性。

工具和框架

CleverHans:对抗性鲁棒性基准测试

  • CleverHans 是由 Google Brain 开发的一个开源机器学习基准测试工具,常用于对机器学习系统部署网络攻击。它提供了一个通用的 API 来运行一系列攻击,例如 FGSM、DeepFool 和 PGD,以及对抗性训练等防御措施。CleverHans 可以与 TensorFlow 和 PyTorch 等著名深度学习库一起使用。研究人员利用它在相同的攻击条件下进行鲁棒性测试和模型比较。它具有模块化结构,可以快速原型化新的攻击或防御技术,并提高对抗性 ML 研究的重现性和透明度。

Foolbox:多工作框架攻击

  • Foolbox 是一个免费的开源 Python 对抗性工具箱库。它包括 TensorFlow、PyTorch 和 JAX 等多种机器学习后端。使用 Foolbox 可以轻松执行和分析白盒和黑盒攻击,它提供了 30 多种攻击类型。它的主要优点是能够通过单个 API 跨框架检查模型的鲁棒性。此外,由于 Foolbox 是在 EagerPy 中构建的,可以灵活地进行输入操纵和快速计算,并且可用于学术研究和工业 AI 鲁棒性评估。

IBM 对抗性鲁棒性工具箱 (ART)

  • Adversarial Robustness Toolbox (ART) 是由 IBM Research 开发的一个强大库,支持对抗性攻击和防御。它与 TensorFlow、PyTorch、Keras 和 Scikit-learn 兼容。ART 可以帮助模拟更复杂的攻击,例如 Carlini-Wagner、DeepFool 和对抗性补丁。它还提供输入过滤、对抗性训练和认证防御工具。ART 广泛应用于企业级应用,企业客户希望在金融和医疗保健等高度受控的领域测试 AI 系统的弹性,在这些领域,可解释性和安全性至关重要。

Robustness Gym:模块化测试台

  • Facebook AI (Meta) 开发了一个名为 Robustness Gym 的框架,允许评估任何 NLP 模型对扰动的抵抗力。它提供了语法、词汇和语义鲁棒性测试模板,这尤其有助于自然语言处理的应用。Robustness Gym 使研究人员能够构建可重现的测试用例,并针对精心策划的以及真实世界的对抗性数据集稳健地测试模型。它具有学术性,允许模块化和可扩展性,因此能很好地与生产系统以及测试 Transformer 和 LLM 相结合。

AdvBox:PaddlePaddle 对抗性示例工具包

  • 百度 PaddlePaddle 团队开发了 AdvBox 工具包。它有助于构建图像、音频和视频模型的对抗性示例。AdvBox 利用生成对抗性威胁的概念来测试人脸识别、语音识别和自动驾驶系统的鲁棒性,以模拟真实世界的场景。它还支持移动设备模拟,以便边缘设备开发者能够意识到这些对抗性漏洞。AdvBox 支持 TensorFlow、PyTorch 和 PaddlePaddle,并且可以灵活地用于跨平台实验和生产环境中对抗性攻击的测试。

SecML:可解释和安全的 ML 框架

  • SecML 是一个关于对抗性机器学习安全性和可解释性的框架。它作为分类器针对规避、投毒和推理攻击的稳健测试工具。它在 NumPy 和 SciPy 上实现。它尤其用于可解释人工智能 (XAI) 的研究,在那里他们希望识别对抗性行为发生的地方并进行可视化。SecML 还利用支持向量机 (SVM)、决策树和神经网络。其主要应用场景是强健且可理解的机器学习结构的学术研究。

结论

好吧,这样我们就理解了对抗性机器学习示例在机器学习和人工智能的安全角度有多么重要。希望阅读完本教程后,您能对对抗性机器学习获得完整的基本信息。

常见问题解答

什么是对抗性机器学习?我们为什么应该关心?

对抗性机器学习 (AML) 是机器学习的一个子分支,研究通过定制的修改或误导性输入——对抗性示例——获得的模型的漏洞。这些输入旨在让模型做出错误的预测或分类。AML 的重要性在于它揭示了 AI 系统在现实世界中的使用漏洞,例如面部识别、自动驾驶、医疗诊断以及对金融欺诈的恐惧。AML 的知识使研究人员和工程师能够开发出安全强大的模型,这些模型可以承受攻击,从而提供信任、安全和可靠性。

那么,有哪些生成对抗性示例的方法,它们是如何创建的?

对抗性示例是通过对输入进行微小、通常不易察觉的扰动来创建的,这些扰动会导致机器学习模型做出错误的预测。这些扰动的计算是通过检查模型损失函数的梯度来完成的。典型方法是快速梯度符号法 (FGSM),它利用梯度沿最大化模型损失的方向计算噪声。更常见的方法是投影梯度下降 (PGD)、DeepFool 和 Carlini & Wagner (C&W) 攻击。这些方法在复杂性、能力和对攻击者可访问性的假设方面有所不同。

在对抗性攻击方面,主要的防御机制是什么?

对抗性防御。有多种策略可以防御对抗性攻击,包括检测对抗性示例或提高模型鲁棒性。一种显而易见的对策是对抗性训练,即使用正常和对抗性示例来训练模型。该方法可提高弹性,但也可能延长训练时间并降低泛化能力。其他对策包括输入预处理(例如,图像去噪或压缩)、梯度掩蔽(用于混淆攻击者的梯度)以及防御性蒸馏(一种平滑决策边界的方法)。

对抗性机器学习在自然语言处理 (NLP) 方面发挥着什么作用?

NLP 中对抗性攻击的策略是修改文本输入,使其对人类不可感知,但对模型来说却很清楚。例如,用同义词替换单词、改变语法或批评性陈述。这些攻击有可能改变模型在情感分析、垃圾邮件检测或机器翻译中的输出,揭示了 BERT 或 GPT 等知名模型的弱点。由于文本数据是离散的,语言也很复杂,因此防御 NLP 模型并不容易。NLP 模型通过诸如对抗性数据增强、词嵌入正则化和弹性标记化方法等技巧得到加强。NLP AML 促进语义完整性和基于语言的防御。