规避攻击的防御侧重于在推断时强化模型以抵御恶意输入,而应对数据投毒和后门攻击则带来不同的难题。在此类攻击中,攻击者破坏的是训练过程本身,将弱点或特定的恶意行为(后门)直接植入模型参数中,甚至在模型部署前就已完成。不同于规避攻击中我们对不良输入做出反应,这里我们必须在训练期间阻止投毒生效,或在训练后对模型进行修正。
主要难点在于,投毒数据,特别是在复杂的干净标签攻击中,几乎无法与良性数据区分。后门被设计成隐蔽的,仅当输入中存在特定的、通常看起来无害的触发器时才会被激活。应对这些训练时期的威胁需要结合检测和缓解方法,这些方法可以在模型训练前、训练中或训练后应用。
一个典型的流程,说明了可以何时整合针对投毒和后门的防御点:在数据预处理期间、训练算法内部或通过训练后的分析和修改。
检测方法:发现投毒或后门
识别恶意数据点或隐藏后门是第一道防线。
数据层检测
这些方法旨在在训练开始前识别并过滤掉可疑数据点。
- 异常值检测: 标准的异常检测技术有时能标记出投毒样本,尤其当攻击者显著修改特征时。基于距离度量(如 k-近邻距离)或密度估计的方法可能识别出与良性数据分布相距较远的点。
- 影响函数: 这些技术估计移除特定训练点对模型参数或预测的影响。被识别为具有异常高(且可能恶意)影响的数据点可以被标记以便检查或移除。然而,计算影响函数可能计算成本较高。
- 局限性: 这些方法在应对干净标签攻击时面临困难,因为投毒样本被故意设计成在统计上与干净数据相似,使其仅凭特征或初始影响难以区分。
模型层检测 (训练后)
如果怀疑存在投毒或作为常规安全审计,可以检查已训练模型本身是否存在被损害的迹象。
- 激活分析: 包含后门功能的模型在处理包含触发器的输入时,可能会表现出异常的激活模式。激活聚类等技术试图识别出在处理后门输入时与干净输入表现不同的内部神经元子集。
- 谱特征: 一些研究表明,包含后门功能的模型的权重矩阵可能具有独特的谱特性(例如,特征值或特征向量中的异常值),这与通过干净数据训练的模型不同。分析网络层的谱有时可以显示出表明存在后门的异常。
- 触发器重构: 像 Neural Cleanse 这样的方法试图为每个输出类别逆向工程出后门触发器。它们优化最小的输入扰动,以使模型将干净输入错误分类到目标类别。如果为一个类别找到了一个小的、一致的模式(潜在的触发器),这表明可能存在后门。
缓解和鲁棒性方法
检测之后,各类技术旨在使训练过程本身更能抵御投毒,或在训练后“清除”后门。
数据净化与训练
- 数据过滤: 如果检测方法成功识别出可疑样本,最简单的缓解办法就是将它们从训练集中移除。
- 损失函数/优化器: 训练可以使用对异常值不那么敏感的方法,而不是标准的经验风险最小化。例如,使用截断损失,在梯度更新期间丢弃损失最高(可能是投毒的)样本的贡献,可以提升表现。
- 聚合 (联邦学习): 在联邦学习等分布式环境中,数据来自多个可能不可信的来源,Krum、Multi-Krum 或逐坐标中位数等聚合规则可以帮助过滤掉投毒攻击者提交的恶意模型更新,确保全局模型不被少数不良参与者过度影响。
- 差分隐私 (DP): 使用差分隐私(例如 DP-SGD)进行训练会在训练期间添加噪声,以提供形式化的隐私保障。一个副作用是限制任何单个数据点(包括投毒数据点)对最终模型参数的影响。虽然它不是直接的投毒防御,但可以提供一定程度的缓解,通常以降低模型效用(准确性)为代价。
后门移除 (事后缓解)
如果在已训练模型中检测到或强烈怀疑存在后门,有几种技术尝试移除它:
- 神经元修剪: 识别主要导致后门行为的神经元(通常通过激活分析或触发器重构方法识别),并将其从网络中修剪。模型之后可能需要进行一些微调以恢复正常表现。
- 微调: 在一小部分干净、可信的数据上重新训练模型有时可以覆盖与后门相关的权重,特别是当干净数据分布与后门行为强烈矛盾时。然而,复杂的后门可能会在简单的微调后仍然存在。
- 遗忘学习: 比微调更具针对性,遗忘学习技术旨在专门移除模型中已识别的投毒数据点的影响,有效地使模型表现得像是从未见过这些特定样本一样。
应对投毒和后门攻击的难题
应对这些训练时期的攻击仍然是一个活跃的研究方向,存在不少难题:
- 隐蔽性: 干净标签攻击和精心设计的后门本身就难以检测。
- 可迁移性: 一些投毒方法可以产生可被不同于投毒时使用的触发器利用的弱点。
- 可扩展性: 许多检测和缓解技术计算成本高昂,特别是对于大型数据集和模型。
- 效用权衡: 某些防御措施,如强差分隐私或激进的修剪/过滤,可能会对模型在良性任务上的表现产生负面影响。
- 自适应攻击者: 随着新的防御措施的出现,攻击者会调整其方法以绕过它们,从而导致持续的攻防对抗。
有效保护模型需要一种纵深防御的方法,可能结合数据验证、训练规程和训练后审计,以最大限度地降低投毒和后门攻击带来的风险。