一、对抗样本(Adversarial Examples)
定义:对输入样本添加人眼无法察觉的细微干扰,导致模型以高置信度输出错误结果。对抗样本的分布通常偏离自然数据分布,与正常样本在模型中间层/输出层的分布存在差异。
核心目标:使模型输出与真实标签不同,破坏模型可靠性。
二、对抗样本防御方法
完全防御:
在检测到对抗样本的基础上, 同时还能够修正标签,输出 一个正确的标签给用户。
1. 输入层面防御
核心思想:破坏对抗样本的扰动结构,恢复原始特征。
方法:
输入变换:去噪、旋转、裁剪、滤波等预处理操作。
特点:依赖对抗样本的弱鲁棒性,可能影响正常样本性能。
2. 修改网络结构
方法:
对抗训练:在训练集中加入对抗样本,提升模型鲁棒性。
梯度掩蔽:遮盖Softmax层与前一层之间的梯度,防御基于梯度的攻击(但可能被替代模型绕过)。
局限性:无法防御迁移攻击(攻击者通过替代模型生成对抗样本)。
3. 附加网络
(1)防御性蒸馏
流程:
1. 教师网络:用真实标签训练原始模型。
2. 学生网络:学习教师网络Softmax输出的概率分布(非真实标签),平滑分类边界。
具体流程:
1. 教师网络使用标准的真实标签(Hard Labels)进行训练。例如,在分类任务中,真实标签是 one-hot 编码(如 [0, 0, 1, 0]
表示类别3)。训练完成后,教师网络会对输入样本输出一个概率分布(Soft Labels),即 Softmax 层的输出(如 [0.1, 0.2, 0.6, 0.1]
)。这个概率分布包含了模型对各类别的“置信度”,比 one-hot 标签更丰富(例如,模型可能认为某张图片有 60% 是猫,30% 是狗,10% 是其他)。
2. 学生网络不再直接学习原始的真实标签,而是学习教师网络生成的 Softmax 概率分布(Soft Labels)。例如,如果教师网络对某张图片的输出是 [0.1, 0.2, 0.6, 0.1]
,学生网络的目标是让自己的输出尽可能接近这个分布。用相同的训练数据输入教师网络,得到 Softmax 概率分布(Soft Labels)。学生网络以这些 Soft Labels 为监督信号进行训练(而不是原始的 Hard Labels)。
关键点:学生网络学习的是概率分布之间的相似性(如 KL 散度),而非单纯的正确类别。
为什么能提高鲁棒性?
平滑分类边界:
教师网络的 Softmax 输出(如
[0.1, 0.2, 0.6, 0.1]
)比 Hard Labels(如[0, 0, 1, 0]
)更平滑,能反映类别间的相似性(例如“猫”和“狗”可能有一定相似性)。学生网络通过模仿这种平滑分布,会学到更稳健的决策边界,减少对输入微小扰动的敏感度。
对抗样本的扰动失效:
对抗样本依赖模型的“尖锐”梯度(如通过微小扰动让模型从
[0, 0, 1, 0]
突变为[1, 0, 0, 0]
)。但学生网络的输出是平滑的,微小扰动难以显著改变概率分布(例如从
[0.1, 0.2, 0.6, 0.1]
到[0.2, 0.2, 0.5, 0.1]
),因此攻击更难成功。
仅检测方法:
模型能够识别输入的信息 是对抗样本,从而可以拒 绝对该样本的服务,例如 抛出错误或者不进行输出
1. 输入层面防御&附加网络
二分类器检测:
训练二分类器区分正常样本与对抗样本。
问题:泛化性差,易被新攻击绕过。
MagNet:
使用正常样本训练自编码器,检测重构误差。
去噪自编码器还原小扰动样本。
以图像数据为例,具体流程如下:
(1)编码器(Encoder)
输入图像(如
28x28
的 MNIST 图片)通过卷积层或全连接层逐步降维。最终输出一个低维的潜在向量(Latent Code),例如长度为 32 的向量。
这一步骤可以理解为“提取图像的核心特征”。
(2)解码器(Decoder)
将潜在向量通过反卷积层或全连接层逐步上采样,恢复原始尺寸。
(3)重构误差计算
通过损失函数(如 MSE)计算输入图像 x 和重构图像 x′ 的差异:
最终输出重构图像,尽量接近输入图像。
问题:检测能力有限,结构复杂。
2. 附加网络
Feature Squeezing:
对输入进行多种特征压缩(如降采样、平滑),比较压缩前后输出的差异。
差异超过阈值则判定为对抗样本。
问题:需针对不同数据集设计变换,实用性低。
三、防御方法总结对比
类型 | 代表方法 | 防御效果 | 局限性 |
---|---|---|---|
输入变换 | 去噪、滤波 | 完全防御 | 可能影响正常样本精度 |
对抗训练 | 加入对抗样本训练 | 完全防御 | 计算成本高 |
梯度掩蔽 | 遮盖Softmax梯度 | 部分防御 | 易被替代模型攻击 |
防御性蒸馏 | 教师-学生网络 | 完全防御 | 依赖概率分布迁移 |
二分类器检测 | 二元分类 | 仅检测 | 泛化性差 |
MagNet | 自编码器重构误差 | 仅检测 | 结构复杂,检测能力有限 |
Feature Squeezing | 多变换比较差异 | 仅检测 | 需定制化设计,适应性差 |
四、攻击者能力
类型 | 攻击者掌握信息 | 典型方法 | 特点 |
---|---|---|---|
白盒攻击 | 完整模型结构、参数、梯度 | FGSM、PGD、C&W | 攻击最强,计算成本高 |
黑盒攻击 | 仅输入输出接口(API访问) | 迁移攻击、梯度估计、局部搜索 | 依赖查询或替代模型 |
灰盒攻击 | 部分信息(如模型架构但无参数) | 结合白盒与黑盒方法 | 实际场景常见(如知道模型类型) |
五、白盒攻击方法
1. 基于优化的攻击(如C&W攻击)
模型及其参数固定不变,输入数据进行调整
特点:攻击扰动比较小,攻击计算量大
2. 基于梯度的攻击(如FGSM/PGD)
通过目标模型的梯度方向,指导对抗样本的生成过程,直到生成模型能够,输出造成目标模型产生错误分类但与输入视觉相似的样本,即对抗样本。
特点:速度快但攻击较弱(仅沿梯度符号方向添加固定幅度的扰动(ϵϵ),未考虑梯度的具体数值大小,可能导致扰动不够精准。且迁移性差)。
3. 基于边界的攻击(如Boundary Attack)
从已存在的对抗样本出发,沿决策边界随机游走,寻找最小扰动。
步骤:
初始化一个对抗样本(如随机噪声被误分类)。
沿边界移动,逐步减少扰动幅度。
六、黑盒攻击方法
1. 基于梯度估计的攻击(如ZOO)
利用算法根据模型的输出对其梯度进行近似估计, 从而利用近似梯度生成对抗样本。
使用了零阶随机坐标下降、降维、多尺度攻击、 重要性采样技术来进行攻击
2. 基于迁移性的攻击
核心思想:对抗样本可跨模型迁移(因模型决策边界相似性)。
步骤:
训练替代模型(Surrogate Model)模拟目标模型。
用白盒方法生成对抗样本,攻击目标模型。
3. 基于局部搜索的攻击(如POBA-GA)
原理:遗传算法局部搜索最优扰动:
变异:随机修改像素。
选择:保留使模型置信度下降的扰动。
七、LLM(大语言模型)对抗攻击
攻击方式 | 描述 | 示例 |
---|---|---|
Token操纵 | 微调输入中的关键Token(如同义词替换),保持语义但导致模型错误。 | 将"无害"改为"无害(拆字)"。 |
梯度攻击 | 基于梯度优化对抗文本(需可微分token嵌入,如BERT)。 | TextFooler |
越狱提示 | 设计绕过安全机制的提示(如"假设你是黑客...")。 | DAN(Do Anything Now)提示 |
红队攻击 | 人工或辅助模型模拟攻击,测试模型鲁棒性。 | OpenAI红队测试 |
八、对抗样本分类
基于攻击方掌握的信息:白盒攻击、黑盒攻击
基于攻击的目标:误分类、目标导向误分类
基于处理过程:数据投毒、后门攻击、提示攻击
基于处理对象:图像对抗样本、声音对抗样本、文本对抗样本
基于模型架构:机器学习模型、深度学习模型、联邦学习模型
基于攻击效果:隐私攻击、后门攻击、误导攻击
基于应用场景:人脸识别攻击、声音识别攻击、目标识别攻击、自动驾驶攻击