在确定了漏洞的存在以及攻击者破坏机器学习模型的各种方式之后,接下来的自然问题是:我们如何构建能够抵御这些威胁的系统?正如软件工程包含安全实践一样,机器学习也需要专门的防御策略来保护模型在训练和推理过程中的安全。本节对防御对抗性攻击的主要方法提供一个整体概览,为第5章中更详细的讨论奠定基础。开发有效的防御方法是一个活跃且富有挑战的研究方向。这些策略通常旨在阻止攻击成功,或对其进行检测和减轻。我们可以根据它们在机器学习流程中发挥作用的位置,对这些防御方法进行大致分类。主要防御策略类别修改训练过程(提升内在鲁棒性): 也许最直接的方法是在训练阶段使模型本身对对抗性扰动具有更强的抵抗力。目的是训练一个能学习到足够强大的特征以抵御微小输入变化的模型。对抗训练: 这是目前对抗规避攻击最有效且被广泛研究的防御技术之一。其主要思想简单但有效:在训练数据集中添加即时生成的对抗样本。通过强制模型在训练期间正确分类这些对抗性输入,模型能学会对攻击者使用的扰动类型不那么敏感。我们将在第5章考察基于投影梯度下降(PGD)的对抗训练等变体。正则化技术: 其他方法则修改训练目标或过程,以促使决策边界更平滑,或以间接提升鲁棒性的方式惩罚模型复杂度。修改输入(输入预处理): 这些防御方法不改变模型或其训练,而是在将数据输入模型之前对其进行预处理。目的是去除或减少输入中存在的对抗性扰动。输入转换: 空间平滑、JPEG压缩或特征挤压等技术作用于输入图像或数据点。其理念是对抗性扰动通常依赖于特定的高频模式,这些转换可能破坏这些模式,从而在分类前有效地“去噪”输入。虽然有时对特定攻击有效,但它们需要仔细评估,因为它们也可能轻微降低在正常输入上的性能。修改模型(架构或认证): 这一类别涉及改变模型架构,或采用提供形式化保证的鲁棒性技术。架构变更: 一些研究着眼于网络架构、激活函数的修改,或使用可能更有效的特定类型的层,尽管找到普遍有效的架构防御仍然困难。认证防御: 这类防御方法特别引人注意,它们提供在特定扰动幅度内(例如,对于半径为 $\epsilon$ 的 $L_p$ 球体内的任何输入扰动)可证明的鲁棒性保证。随机平滑是我们将介绍的一个重要例子,它通过分析模型在随机噪声增强输入版本上的预测,提供概率性鲁棒性证明。使用外部模型(检测与拒绝): 这些方法在主模型旁边增加独立的组件,以检测输入是否可能是对抗性的。对抗检测器: 这些通常是辅助分类器,训练用于区分正常输入和对抗样本。如果一个输入被标记为对抗性,它可以被拒绝或以不同方式处理。设计自身能抵御自适应攻击的检测器是一个很大的挑战。digraph G { rankdir=LR; node [shape=box, style=rounded, fontname="sans-serif", color="#495057", fontcolor="#495057"]; edge [color="#adb5bd"]; Defenses [label="防御策略", shape=box, style="rounded,filled", fillcolor="#e9ecef"]; Cat1 [label="修改训练\n(内在鲁棒性)", color="#1c7ed6", fontcolor="#1c7ed6"]; Cat2 [label="修改输入\n(预处理)", color="#12b886", fontcolor="#12b886"]; Cat3 [label="修改模型\n(架构/认证)", color="#7048e8", fontcolor="#7048e8"]; Cat4 [label="外部检测\n(附加模块)", color="#f76707", fontcolor="#f76707"]; Ex1 [label="对抗训练", shape=ellipse, color="#a5d8ff", fontcolor="#1c7ed6"]; Ex2 [label="输入转换\n(例如,平滑)", shape=ellipse, color="#96f2d7", fontcolor="#12b886"]; Ex3 [label="认证鲁棒性\n(例如,随机平滑)", shape=ellipse, color="#d0bfff", fontcolor="#7048e8"]; Ex4 [label="对抗检测器", shape=ellipse, color="#ffd8a8", fontcolor="#f76707"]; Defenses -> Cat1; Defenses -> Cat2; Defenses -> Cat3; Defenses -> Cat4; Cat1 -> Ex1; Cat2 -> Ex2; Cat3 -> Ex3; Cat4 -> Ex4; subgraph cluster_cats { label = "主要防御类别"; style=dashed; color="#adb5bd"; fontname="sans-serif"; Cat1; Cat2; Cat3; Cat4; } subgraph cluster_ex { label = "示例技术"; style=dashed; color="#adb5bd"; fontname="sans-serif"; Ex1; Ex2; Ex3; Ex4; } }对抗对抗性攻击的常见防御策略的一个概括性分类。严格评估的重要性谨慎对待防御机制是很重要的。从历史上看,许多提出的防御措施很快就被略微修改或自适应攻击攻破,这些攻击是专门设计来规避防御的。一个常见问题是梯度遮蔽或混淆,即防御措施使得基于梯度的攻击(如FGSM或PGD)更难找到对抗样本,从而造成虚假的安全感。然而,更强的基于优化的攻击或不同的攻击策略仍然可能成功。因此,严格评估防御措施以对抗强大、自适应的攻击者是非常必要的,我们将在第6章专门讨论这个话题。防御其他威胁尽管许多防御侧重于推理时的规避攻击,但也有减轻数据投毒、后门攻击(第3章)和推理攻击(第4章)的策略。防御投毒通常涉及数据净化、训练期间的异常检测或联邦学习中的聚合方法。防御与隐私相关的推理攻击常与差分隐私等技术相交叉。本概览介绍了防御策略。没有一种完美的防御;通常,有效的保护涉及多种技术的结合,并伴随着权衡,这通常体现在性能与正常数据上的标准准确性之间,或计算成本的增加。后续章节将对具体的先进攻击以及旨在防御它们的机制进行更详细的考察。