特征挤压(Feature Squeezing):检测深度神经网络中的对抗样本
Feature Squeezing: Detecting Adversarial Examples in Deep Neural Networks
作者提出 feature squeezing 防御:比较模型对原图与压缩后图像的预测差异来检测对抗样本,在 MNIST 上联合检测率达 98.15%。
攻击者对训练好的目标模型有完全访问权限(white-box),但不能影响模型;静态攻击者不知道防御方在做 feature squeezing,自适应攻击者则完全了解防御。
- DNN 易被对抗样本欺骗,而此前防御多修改模型本身,效果有限或计算昂贵。作者认为检测对抗输入与预测正确输出同样重要,需要低成本、不改模型的检测方法。
- 提出 feature squeezing:用降低颜色位深和空间平滑等压缩器减少攻击者可用的特征空间,比较模型对原输入与压缩后输入的预测向量 L1 距离,超过阈值即判为对抗样本;多个压缩器取最大距离做联合检测。
- 在 MNIST、CIFAR-10、ImageNet 上对 11 种攻击做实验,联合检测器对成功对抗样本的检测率分别为 98.15%、84.53%、85.94%,误报率约 5%;ε=0.3 时自适应攻击成功率接近 0%。
- 作者承认无法保证抵御自适应攻击者;对 FGSM、BIM 在彩色数据集上检测率偏低;仅在图像分类上做了实验;自适应攻击评估只在 MNIST 上进行。
- 威胁模型
- 攻击者对训练好的目标模型有完全访问权限(white-box),但不能影响模型;静态攻击者不知道防御方在做 feature squeezing,自适应攻击者则完全了解防御。攻击目标是让输入被误分类(targeted 或 untargeted),扰动受 L∞、L2、L0 范数约束。
- 被测模型
- 7-Layer CNNDenseNetMobileNet
- 基准
- MNISTCIFAR-10ImageNet
- 指标
- detection ratefalse positive rateROC-AUCaccuracy
弗吉尼亚大学研究者在 NDSS 2018 发表的论文中提出特征挤压(feature squeezing)方法,通过检测对抗样本来加固深度神经网络。该方法不改动模型本身,对输入做降低颜色位深或空间平滑等压缩,再比较模型对原始输入与压缩输入预测的 L1 差异,超过阈值即判为对抗样本。在 MNIST、CIFAR-10 和 ImageNet 上测试 FGSM、BIM、DeepFool、JSMA、Carlini/Wagner 等 11 种攻击,联合检测框架对静态攻击的检出率为 MNIST 98%、CIFAR-10 和 ImageNet 85%,误报率约 5%。该方法可与对抗训练组合,组合配置通常取得最高准确率,且成本远低于需要重训练的对抗训练;作者指出面对知晓防御的自适应攻击者仍需进一步研究,模型与代码开源于 evadeML.org/zoo。
推荐理由论文提出不改动模型、通过压缩输入检测对抗样本的特征挤压法,对 11 种攻击检出率高且误报约 5%,可与对抗训练组合使用。
深度解读
这篇论文试图解决什么问题?
如何低成本地检测 DNN 的对抗样本输入,而不修改模型本身。
核心问题:如何在不改动 DNN 模型的前提下,以低成本检测对抗样本(adversarial examples)输入。
- 问题场景与重要性:DNN 在恶意软件分类、人脸识别等安全敏感任务中被广泛使用,但攻击者可以通过对像素做难以察觉的修改迫使模型误分类。作者认为检测攻击尝试与预测正确输出同样重要:本地分类器检测到对抗输入后可告警或采取 fail-safe 措施;在线分类器运营方可借此识别恶意客户端。
- 现有方法的不足:按论文说法,此前防御多聚焦于修改 DNN 模型本身(如 adversarial training、gradient masking),要么成效有限,要么计算昂贵;基于样本统计的检测方法需要大量样本且无法检测单个对抗样本。
- 核心观察:作者认为输入特征空间往往过大,给攻击者留下了大量构造对抗样本的自由度;把多个特征向量"压缩"到同一样本可缩减攻击者的搜索空间。
- 论文提出的方案:提出 feature squeezing 检测框架——比较模型对原始输入与压缩后输入的预测,差异超过阈值即判为对抗样本;探索了降低颜色位深和空间平滑(局部与非局部)两类压缩方法,并组合成联合检测框架。
- 威胁模型:
- 攻击者目标:生成被模型误分类的输入,分 targeted(指定目标类)和 untargeted(任意非正确类)两种,扰动受 L∞、L2、L0 范数约束。
- 攻击者知识:对训练好的目标模型有完全访问权限(white-box 攻击技术)。
- 攻击者能力:不能影响目标模型本身;静态攻击者不知道防御方在做 feature squeezing,自适应攻击者(Section 5-D)则完全了解防御。
- 受害系统:图像分类 DNN(MNIST 的 7 层 CNN、CIFAR-10 的 DenseNet、ImageNet 的 MobileNet)。
有哪些相关研究?
相关工作分四类:对抗训练、梯度掩码、输入变换和对抗样本检测,本文属于预测不一致类检测。
对抗训练(Adversarial Training)
- Goodfellow et al.、Szegedy et al. 等——把对抗样本连同真实标签加入训练。论文指出其代价高(至少使训练成本翻倍),且效果依赖于训练时使用的攻击方法。
- Madry et al.——用带随机起点的 BIM(即 PGD 攻击)做对抗训练并扩大模型容量,作者声称可在 MNIST 上提供鲁棒性保证,但论文指出其在 CIFAR-10 上效果较差。本文在 Section 4-B 与该方法和 FGSM 对抗训练做了组合对比。
梯度掩码(Gradient Masking)
- Gu et al.——在训练目标中加入逐层 Jacobian 的 Frobenius 范数惩罚项;论文指出该惩罚会牺牲模型在多个任务上的准确率。
- Papernot et al.——defensive distillation,用平滑标签训练并替换 softmax 层;论文指出后续研究发现它无法抵御带除法技巧的 JSMA 变体和黑盒攻击。
输入变换(Input Transformation)
- Bhagoji et al.——用 PCA 降维做防御;论文指出 PCA 破坏了图像空间结构,使主流 CNN 模型不再适用。
- Meng and Chen(MagNet)——训练 autoencoder 作为图像过滤器;Osadchy et al.——独立提出用二值滤波和中值平滑消除对抗扰动,并主张通过加大扰动强度攻击此类防御。论文指出本文聚焦于检测任务,并在 Table 6 与 MagNet 做了性能对比。
对抗样本检测
- 样本统计类:Grosse et al.(maximum mean discrepancy 统计检验)、Feinman et al.(kernel density estimation)。论文指出前者需要大量样本、无法检测单个样本,后者计算昂贵;两者的实验都显示统计类方法检测性能不如其他方法。
- 训练检测器类:Metzen et al.(在原模型中间层挂 CNN 检测分支)、Grosse et al.(新增"对抗"类)。论文指出这类方法需要大量对抗样本训练,容易过拟合到特定攻击。
- 预测不一致类:Feinman et al.(Bayesian neural network uncertainty,借 dropout 产生多个预测)、Meng and Chen(比较原图与 autoencoder 过滤后图像的预测向量)。论文指出本文同属此类,但使用"硬编码"变换而非训练 autoencoder,训练阶段更便宜。
基线与基准:对比基线为 MagNet 检测器(Table 6)和 FGSM/PGD 对抗训练(Figure 4);实验基准为 MNIST、CIFAR-10、ImageNet 三个图像分类数据集。
作者将本文定位为:不改模型、成本低廉、可与其他防御组合的检测框架,属于预测不一致类检测方法,但用简单的硬编码压缩变换替代需要训练的过滤器。
论文如何解决这个问题?
比较模型对原输入与压缩输入的预测差异,用 L1 距离超阈值判定对抗样本,多压缩器取最大值联合检测。
整体思路:用特征压缩(feature squeezing) 缩减攻击者可用的输入空间,再比较同一模型对原始输入和压缩后输入的预测向量差异,差异大则判为对抗样本(Figure 1)。
问题设定
- 对抗样本定义为:对正确分类的种子样本 x 加受限扰动得到 x',使模型输出错误。targeted 攻击要求 g(x′) = t ∧ Δ(x, x′) ≤ ϵ,untargeted 攻击要求输出不同于 g(x);Δ 取 L∞、L2 或 L0 范数,ε 限制扰动强度。
- 检测要满足两个性质:在对抗样本上压缩能逆转扰动效果;在合法样本上压缩不明显影响模型预测。
压缩方法一:降低颜色位深
- 灰度图(MNIST)每像素 8 bit(256 个取值),彩色图每像素 24 bit;作者假设降低位深可减少对抗机会而不损害识别。
- 实现:降到 i bit 时,将像素值乘以 2^i − 1 后取整再除回去,输入输出保持 [0, 1] 数值范围,模型无需改动;MNIST 用 1-bit 二值滤波(0.5 为截断),彩色数据集测试 4-bit、5-bit 等。
压缩方法二:空间平滑
- 局部平滑(median smoothing):滑动窗口内取中值替换中心像素,窗口大小可配(实验用 2×2、3×3),边缘用 reflect padding;作者认为它对 L0 攻击产生的类椒盐噪声特别有效。用 SciPy 实现。
- 非局部平滑(non-local means):在大搜索窗口内找相似图像块,用高斯核加权平均替换中心块;记作 non-local means (a-b-c),a 为搜索窗口、b 为块大小、c 为滤波强度(实验用 11-3-2、11-3-4、13-3-2、13-3-4)。用 OpenCV 的 fast non-local means,在 CIELAB 空间分别去噪 L 与 AB 分量。
检测方法与联合框架
- 单个压缩器的检测分数为原预测向量与压缩后预测向量的 L1 距离:score(x, xsqueezed) = |g(x) − g(xsqueezed)|1,取值范围 0 到 2。
- 联合检测取多个压缩器分数的最大值(scorejoint = max),理由是不同压缩器对不同类型扰动有效;作者指出 max 也会选中对合法输入破坏最大的压缩器,可能抬高误报率。
- 阈值选择:只用合法样本训练,选取使合法样本误报率不超过 5% 的阈值,不依赖对抗样本,因此训练阶段成本低。
评测方式
- 检测率在三组样本上分别报告:成功对抗样本(SAE)、失败对抗样本(FAE)和合法样本(误报率);未特别说明时"检测率"指对 SAE 的检测率。
- 另报告 ROC-AUC(计算时排除 FAE);与 MagNet 对比时把误报率对齐到相同水平(MNIST 0.40%、CIFAR-10 1.28%)。
论文做了哪些实验?
在三个数据集、11 种攻击上测压缩器的鲁棒性与检测率,并评估了与对抗训练组合、MagNet 对比和自适应攻击。
实验设置
- 被测模型:MNIST 上用 7-Layer CNN(top-1 准确率 99.43%),CIFAR-10 上用 DenseNet(94.84%),ImageNet 上用 MobileNet(top-1 68.36%,top-5 88.25%)(Table 1)。
- 攻击:共 11 种——untargeted 的 FGSM、BIM、DeepFool,以及 targeted 的 JSMA、CW∞、CW2、CW0(各分 Next 与 LL 两种目标);FGSM/BIM/JSMA 用 Cleverhans 实现,DeepFool 与 CW 攻击用原作者实现。DeepFool 在 MNIST 上被排除(生成图像人眼不可辨认),JSMA 在 ImageNet 上因内存不足无结果。
- 种子样本:每个数据集取测试(或验证)集中前 100 个被正确分类的样本;攻击参数被调整为生成高置信度对抗样本。
- 检测数据集:合法样本与对抗样本等量——MNIST 共 2,000 条(1,000 合法 + 1,000 对抗),CIFAR-10 共 2,200 条,ImageNet 共 1,800 条;随机对半分为训练(选阈值)和验证。
- 指标与阈值:检测率(默认对成功对抗样本)、误报率(阈值选为训练集上合法样本误报不超过 5%)、ROC-AUC(排除失败对抗样本)。
- 硬件:i7-6850K CPU、64GiB 内存、GeForce GTX 1080。
主结果
Table 5 汇总的最佳联合检测器结果:
表格较宽,可左右滑动
数据集 检测器配置 阈值 检测率 (SAEs) 检测率 (FAEs) FPR ROC-AUC MNIST Bit Depth (1-bit) + Median (2×2) 0.0029 98.15% 20.00% 3.98% 99.44% CIFAR-10 Bit Depth (5-bit) + Median (2×2) + Non-local Means (13-3-2) 1.1402 84.53% 22.22% 4.93% 95.74% ImageNet Bit Depth (5-bit) + Median (2×2) + Non-local Means (11-3-4) 1.2128 85.94% 25.00% 8.33% 94.24% 据 Table 5。ImageNet 的 FPR 为 8.33%,高于 5% 的目标,论文未在表注中解释该数值与阈值选取规则的关系。
- 作者称联合检测通常与最佳单压缩器相当或更好:MNIST 上最大降幅是 CW0 (LL) 从 100% 降到 93%,CIFAR-10 上联合检测总优于最佳单压缩器,ImageNet 上 CW2 (Next) 从 95% 降到 91%(Table 4)。
- 作者指出对失败对抗样本的检测率(20%–25%)远低于对成功样本的检测率,但高于合法样本误报率。
- Figure 5 显示合法样本的 L1 分数峰值总在 0 附近、对抗样本峰值总在 2 附近;作者称两类分布可分。
鲁棒性实验(Section 4,Table 3)
- 测了什么:各压缩器直接作为输入预处理后,模型在对抗样本与合法样本上的分类准确率。
- 结果:MNIST 上 1-bit 滤波把 CW∞ 上的准确率从 0% 提到 100%,合法样本准确率从 99.43% 仅降到 99.33%;CIFAR-10 上 2×2 median smoothing 把四种 L0 攻击上的准确率从 0% 提到 75% 以上,但合法样本准确率从 94.84% 降到 89.29%;ImageNet 上 median smoothing 把 CW0 攻击上的准确率从 0% 提到 85%。
- 作者解读:位深压缩对 L∞、L2 攻击有效但对 L0 攻击无效(L0 攻击对少数像素做大改动);median smoothing 对 L0 攻击最有效。作者明确说不建议把单一压缩器当作独立防御。
与对抗训练组合(Section 4-B,Figure 4)
- 测了什么:MNIST 全部 10,000 张测试图上,比较 1-bit 滤波、对抗训练(FGSM 与 PGD,训练 ε=0.3)及二者组合在不同攻击强度 ε 下的准确率。
- 结果:对 FGSM 攻击,ε=0.3 时 1-bit 滤波准确率 93.03%,对抗训练 92.38%;对 PGD 攻击,ε=0.4 时 1-bit 滤波 87.60%、对抗训练 14.84%、组合方法 94.21%。
- 作者解读:组合方法通常取得最高或与最佳单方法相当的准确率;feature squeezing 几乎无成本,而对抗训练需要生成对抗样本并重训练多个 epoch。
与 MagNet 对比(Table 6)
- 测了什么:在相同误报率(MNIST 0.40%、CIFAR-10 1.28%)下,用本文目标模型和检测数据集比较两个检测器。
- 结果:MNIST 上 MagNet 更高(全部对抗样本 91.77% 对 69.08%,成功样本 95.61% 对 78.75%);CIFAR-10 上 feature squeezing 更高(60.87% 对 50.36%,成功样本 61.88% 对 50.46%)。
- 作者解读:MagNet 在 MNIST 上的优势不适用于 CIFAR-10;且 MagNet 需要在整个数据集上训练 autoencoder,成本更高,其管线端到端可微,易受白盒攻击。
自适应攻击(Section 5-D)
- 测了什么:采用 He et al. 的自适应攻击(在 CW2 上加 L1 预测距离惩罚项),攻击 MNIST 模型和 Table 5 的联合检测器,阈值 0.0029;另测了给二值滤波截断值加高斯随机性(均值 0.5、标准差 0.0625)的对抗措施,以及同时攻击 0.4/0.5/0.6 三个截断值的 ensemble-adaptive 攻击。
- 结果:无扰动幅度限制时,untargeted/targeted-next/targeted-ll 成功率分别为 68%、44%、24%(Figure 7 显示 ε=0.3 时三者分别为 1%、0%、0%);加随机性后降到 17.0±2.4%、16.2±2.6%、7.6±2.2%(10 次执行);ensemble-adaptive 攻击回升到 46.5±2.1%、34.5±3.5%、28.5±2.1%,但扰动更大。
- 作者解读:自适应攻击的成功率数字本身不能衡量鲁棒性,因为不限扰动时总能强制误分类,但产生的图像往往人眼不可辨认;作者承认无法保证抵御自适应攻击者。
其他消融与分析
- 单压缩器检测(Table 4):MNIST 上 1-bit 滤波对 7 种攻击检测率 100%,但对 CW0 仅 55.6%/56.3%;3×3 median 对 L0 攻击检测率 88% 以上。
- 负面结果:CIFAR-10 上最佳单压缩器对 FGSM 仅检出 18.75%、BIM 55%;ImageNet 上为 35.85% 和 55.56%(Table 4)。作者推测是因为这两种攻击扰动更大,而压缩器更适合小扰动。
- 阈值与破坏性(Table 4):MNIST 上 1-bit 滤波阈值仅 0.0005 即可满足 5% 误报,3×3 median 需 0.039;作者称阈值越低检测器越灵敏。
有什么可以进一步探索的点?
作者承认无法保证抵御自适应攻击,并列出改进联合检测、探索新压缩方法等方向。
作者指出的局限与后续方向
- 无法保证自适应攻击者无法攻破某个具体的 feature squeezing 配置,对自适应攻击者的鲁棒性需要在未来工作中进一步研究(Section 1、Section 5-D)。
- 对 FGSM 和 BIM 在彩色数据集上检测率偏低;作者称理解其原因并开发对这类攻击有效的压缩方法是重要的未来研究方向(Section 5-C)。
- 联合检测用单一阈值和 max 组合,作者计划研究更好的多压缩器组合方式(如每个压缩器用不同阈值)(Section 5-A、5-C)。
- 检测分数用的是 L1 范数,作者认为值得探索其他度量是否更好(Section 5-A 脚注)。
- 本文只实验了两类简单压缩方法,作者认为值得继续实验寻找更有效的压缩方法,并提到有损压缩(如 JPEG)和降维(如 eigenfaces)两个可能方向(Section 3-C)。
- 自适应攻击只在 MNIST 上评估,因为作者当时没有非局部均值滤波的 Tensorflow 实现(Section 5-D)。
实验覆盖范围
- 被测模型共 3 个:MNIST 的 7-Layer CNN、CIFAR-10 的 DenseNet、ImageNet 的 MobileNet(Table 1),均为图像分类模型。
- 攻击覆盖 11 种配置(FGSM、BIM、DeepFool、JSMA、CW∞/CW2/CW0 各两种目标),每种攻击用 100 个种子样本(Section 4)。
- 检测评估的对比基线为 MagNet(MNIST、CIFAR-10 两个数据集)和 FGSM/PGD 对抗训练(仅 MNIST)。
- 自适应攻击实验仅在 MNIST 上进行,种子样本与 Section 4 相同的 100 张图;随机化对抗措施的结果为 10 次执行的均值和标准差。
- 论文未报告检测阈值选取之外的重复次数,也未报告 ROC-AUC 的置信区间;除自适应攻击的 10 次执行外,其余实验未说明重复次数。
总结一下论文的主要内容
Feature squeezing 通过比较原图与压缩图的预测差异检测对抗样本,MNIST 联合检测率 98.15%,但不保证抵御自适应攻击。
一篇 NDSS 2018 的防御论文,提出 feature squeezing 框架检测深度神经网络的对抗样本。
- 要解决的问题:此前防御多修改模型本身、效果有限或计算昂贵;作者认为输入特征空间过大给了攻击者过多自由度,检测对抗输入本身就有价值。
- 方法要点:用降低颜色位深和空间平滑(median smoothing、non-local means)压缩输入,比较模型对原输入与压缩输入预测向量的 L1 距离,超过阈值即判为对抗样本;多个压缩器取最大分数做联合检测,阈值仅用合法样本按误报率不超过 5% 选取。
- 主要结果:
- 对 11 种静态攻击,最佳联合检测器对成功对抗样本的检测率:MNIST 98.15%(FPR 3.98%)、CIFAR-10 84.53%(FPR 4.93%)、ImageNet 85.94%(FPR 8.33%)(Table 5)。
- 作为输入预处理,1-bit 滤波把 MNIST 上 CW∞ 攻击后的准确率从 0% 恢复到 100%,合法样本准确率仅降 0.1 个百分点(Table 3)。
- 与对抗训练组合在 PGD ε=0.4 时准确率 94.21%,高于任一单方法(Figure 4)。
- 相同误报率下,CIFAR-10 上检测率高于 MagNet(60.87% 对 50.36%),MNIST 上低于 MagNet(Table 6)。
- 自适应攻击在 ε=0.3 时成功率接近 0%,但不限扰动时 untargeted 成功率达 68%(Figure 7)。
- 作者结论:作者称 feature squeezing 简单、低成本、可与其他防御组合,使自适应攻击者的任务变得更困难;但明确承认无法保证抵御自适应攻击,对 FGSM/BIM 在彩色数据集上检测率偏低的原因有待研究。