京公网安备 11010802034615号
经营许可证编号:京B2-20210330
作者 | Alex Adam
来源 | 机器之心
很多人都大概了解对抗样本是什么:在数据中加入人眼不可察觉的扰动,使得模型对数据的标签预测发生混淆和错误。但是,这句话背后的技术细节是什么?怎样才能确保生成的对抗样本符合这样的定义?本文深入解析了对抗样本背后的数学定义,并帮助读者重新理解对抗样本的定义。
对抗样本是各种机器学习系统需要克服的一大障碍。对抗样本的存在表明模型倾向于依赖不可靠的特征来最大化性能,如果特征受到干扰,那么将造成模型误分类,可能导致灾难性的后果。对抗样本的非正式定义:以人类不可感知的方式对输入进行修改,使得修改后的输入能够被机器学习系统误分类,尽管原始输入是被正确分类的。这一修改后的输入即被称为对抗样本。下图阐明了这一概念:
原始图像(左图),对抗噪声(中图),扰动后的图片即对抗样本(右图)被错误地分类为数字 2
对抗样本的正式定义如下所示:
对抗样本的定义
其中 L 是我们试图最大化的损失函数,x_orig 是原始图像,是扰动,y 是真实标签,所选的ε用于确保扰动后的图像看上去没有那么杂乱,并且对于人类来说仍然像是原始类别的图片。
一些攻击,如 FGS,IGS 和 PGD 都使用 L-∞范数来约束扰动图像和原始图像之间的距离。在这篇文章中,我们将探讨对于 MNIST 数据集选择ε的难点。我们也将看看最近有关不依赖于在原始图像上进行扰动而生成对抗样本的技术,探究这样生成的图片是否满足对抗样本的定义。
MNIST 图像距离分析
让我们首先简单分析一下相同类别图像以及不同类别图像之间的平均距离。也许这些距离能够帮助我们以一种更量化更客观的方式选择ε。我博客上有一个包含这一分析的 Jupyter notebook (http://alexadam.ca/ml/2019/09/05/adversarial-examples-rethinking-the-definition.html)。
我们从每个类别中随机采样了 100 张图片,在不同的范数下计算两两图像距离的平均值。这里只展示 L-2 范数的结果以避免混乱,同时也因为 L-∞范数的热力图在每个 cell 中都是 1,没有提供什么有用的信息。
L-2 范数训练集距离
一个合理的假设是处于热力图对角线上的元素值(类内图像的距离)应该要比同一行/列中的非对角线上的元素(类间图像距离)小。然而,上图的结果中数字 2 的类内距离 10.1 大于数字类别 2 与数字类别 1 的类间距离 9.8,数字类别 8 的类内距离 9.4 大于数字类别 8 与 1 之间的距离 9.3。这起初让人惊讶,但它只是表明,对于一个给定的数字,相比切换成另一个类别的数字,样式上的变化可能会可能会造成更多像素上的差异。可以认为对于每一个数字,有一个不变的像素集,它不会随图片而改变,当两个数字的不变集高度重合时,像上图那种意料之外的结果就有可能发生。
选择ε
当谈到选择ε的时候,这一切意味着什么呢?当使用 L-∞范数时,ε最常见的值是 0.3,对于 L-2 范数而言一个比较大的值是 4.5 。对于 L-∞范数,如果我们考虑最极端的值ε=1.0,我们将无法控制扰动图像的真实类别,并可能最终生成一个使得人类和图像分类模型都误识别为其它类别的图像。这也允许我们在训练集和测试集之间任意篡改图像 x』 = rx_train * (1-r)x_test,如果我们的模型恰好错误分类了 x_test,那么该图像将被标记为对抗样本。这里有很多限制条件必须要满足:
根据观察,(1) 通常暗含 (2)。ε=0.3 当然满足 (2),因为所有图像的 L-∞距离接近 1.0。让我们看看如果我们生成如下的结合了两个类别的图像将会发生什么。
在 L-∞距离约束下的均值图像
将原始图像和精心扰动的图像之间的 L-∞距离限制到ε,但是任意一个人类观察者都能轻易地发现两张图之间的区别,如下图所示:
与原始图像的 L-∞距离在ε=0.3 之内精心制作的扰动图像
很明显,最右边的图像有一些不足。事实上,如果没有被告知这是一张数字 0 和数字 1 图片的组合,有的人可能会说它只是一个抽象的符号。因此,用这样一个简单的例子,我们已经表明 ε=0.3 违反了条件 (1)。即使给一个更小的值,比如ε=0.2,也会得到类似的结果。MNIST 让我们轻易地识别出扰动的像素。在许多情况下,通过简单检查背景像素是否修改来为对抗样本创建检测机制是微不足道的。如果攻击者知道了这种检测机制,就能够绕过它。那我们要如何选择ε呢?
这里给出一个对每张图片并不使用相同ε的例子。对于一些类别,数字本身围成的框内是否发生了像素的变化更容易被发现,就像上图中的 0 那样。对于这种类别,ε应该设置成一个更小的值。
此外,对于像 L-2 或者 L-∞这样的典型范数用于计算图像距离时是没有包含图像的语义相似性的。如果能够在输入空间中给出图像间的语义相似度,那么构造一个简单的 KNN 图像分类器就能干掉卷积神经网络在过去 7 年来的进步。对于这个问题,可能的解决方案是使用度量学习(metric learning)。通过学习嵌入,这些嵌入之间的 L-2 或者 L-∞距离包含语义相似性,那么我们就可以在这个空间而不是输入空间中调整ε。
还有种这样的技术叫做三胞胎网络 (triplet networks)。三胞胎网络通过同时将 3 张图片一次传递到三个相同的嵌入网络并行运行。类别 y 的 anchor 通过时,会伴随着一个同类别的正样本和一个不同类别 y』的负样本。损失函数将确保 anchor 和正样本之间的距离至少比 anchor 和负样本之间的距离小。
三胞胎网络示意
使用像三胞胎网络这样的度量学习技术仍旧需要手动实验验证以确保ε没有过大以至于类别发生改变。此外,我们必须考虑条件 (2),我们不能利用扰动使得我们数据集中的一张图像被分为另外一张相同类别的图像。像 PGD 这样的攻击方法是在损失函数的梯度方向迭代地移动以增加损失,然后将结果图像映射到满足原始图像距离约束的输入子空间。不是在输入空间中做这一映射,而是使用我们的度量学习算法在嵌入空间上完成。
生成式对抗样本
有篇非常酷的论文介绍了一种新的制作对抗样本的方法。不是使用精心制作的对抗性噪声扰动已有的图片,而是使用 GAN 从头生成能够愚弄目标模型的图片。
具体来说,他们使用一个辅助分类器 GAN(AC-GAN),能够对图像类别进行调节,以便控制所生成图像的类别。这产生了「无约束对抗样本」,因为从头生成的图像没有距离可供约束。
然而,这并不满足先前提及的标准 (1) 或 (2)。尽管他们的方法很有用,也允许模型调试和通过生成新的能使模型失败的图片进行数据增强,但他们的分析将泛化性能和对抗的鲁棒性看作同一件事。为了恰当地分析模型的鲁棒性,我们需要能够分开泛化性能和对抗鲁棒性两个指标,因为它们彼此不一致 。因此,尽管抛弃对抗样本的基于扰动的定义是十分诱人的,但是现在它们是唯一能够以独立的、非混淆的方式研究对抗鲁棒性的方法。
总结
对抗样本的当前定义对于像 MNIST 这样的数据集来说存在些微的缺陷。尽管对于 ImageNet 这样的数据集来说更有意义,因为向它添加扰动更难被人注意到,也不会使得图片看上去像是不同类别的奇怪组合。
对于每张图片或类别使用相同的阈值ε并不是一个好的打算,因为很容易就能检测出特定类别图像上的噪声。图像是一种对于人类而言很轻易就能分析和评判出是否有可疑痕迹的数据类型。然而,在许多领域里的数据是以数字的抽象向量形式出现的,这些向量很难理解和可视化。在这些领域中定义什么是对抗样本可能会超出我们的想象极限,因为我们本来就不理解原始数据。在这样的情况下,用定量的方法选取ε是十分必要的。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
一、问题:为什么 ID 会"断号" 很多刚接触 MySQL 的同学都会有一个困惑:表里的主键 ID 是自增的,删了中间几行数据之后,ID 变 ...
2026-10-22一、问题场景:为什么会重复 JOIN 同一个子查询 在写复杂 SQL 时,经常遇到这种需求:同一张表或同一个聚合子查询,要和主表关联 ...
2026-10-22人力资源专员是HR体系的执行入口。招聘信息发布、简历初筛、面试安排、考勤汇总、入离职手续、劳动合同与档案管理,大多由这个岗 ...
2026-10-22人力资源经理问“必学技巧”,真正要解决的不是知识清单不够长,而是时间有限、业务催得紧,学完却用不上。更有效的路径是:先用 ...
2026-10-22内容营销岗位的核心任务,不是“把文案写得更漂亮”,而是围绕目标受众,用持续的内容供给影响认知、推动转化并沉淀复购。它至少 ...
2026-10-22理财经理培训课程很多,难的是判断“先学什么、后学什么、学完能做什么”。与其按课程名称罗列,不如先看岗位任务:客户分层与维 ...
2026-10-22理财经理的知识结构,可以先用一句话概括:合规与产品知识决定“不出错”,客户经营与资产配置决定“够不够专业”,市场研判与数 ...
2026-10-22经济学背景做数据分析,优势不在工具,而在问题意识:供需如何相互作用、成本与收益如何权衡、变量之间是相关还是因果。真正的缺 ...
2026-10-22需要,但要把“需要”理解准确。经济学本身就在处理数据:GDP、物价、就业、企业营收、问卷调研,都是经济分析的原料。真正的区 ...
2026-10-22经济学分析能力不是单一技能,它至少由三层构成:把现实问题转成可检验假设的理论框架能力、用数据与统计方法验证假设的工具能力 ...
2026-10-22金融分析师的知识提升,先补的不是更多模型,而是让结论可复核的底层能力。按任务顺序,大致是四层:财务与业务理解、指标口径管 ...
2026-10-22金融分析师的“通用技能”,指换到不同机构、不同行业组仍用得上的底层能力,而非某家公司内部系统的操作经验。按任务拆,日常要 ...
2026-10-22先给结论:数据分析证书不是金融分析师的准入条件,招聘方也不会因为一张证书就直接判断你能做分析。要不要考,取决于你当前任务 ...
2026-10-22金融分析师的核心技能,不是“会看K线”或“会讲宏观”,而是能把一家公司、一个行业或一类资产,转化为可核查的数据判断与书面 ...
2026-10-22产品经理的知识提升,不是把需求文档、原型、SQL、数据分析、项目管理都学一遍,而是先对准目标岗位的真实任务,找出自己最缺的 ...
2026-10-22产品专员提升工作知识,最有效的方式不是先囤课程,而是围绕日常交付的四件事来补:需求调研与优先级判断、原型与PRD表达、竞品 ...
2026-10-22产品运营专员提升个人能力,常见误区是先把Excel、SQL、Python列成一张学习清单,然后从第一个工具开始学。更有效的做法是先回答 ...
2026-10-22产品运营的能力提升,最怕从“课程目录”出发:今天学增长模型,明天背SQL语法,学完却说不清自己负责的功能为什么激活率低。更 ...
2026-10-22产品经理的技能和影响力不是两条分开的赛道。技能决定你能不能把问题分析清楚、把方案设计对;影响力决定你的判断能否被团队接受 ...
2026-10-22产品经理要学的数据分析能力,不是“会写SQL”或“会用BI工具”这么简单。更准确地说,是围绕需求评估、功能迭代、指标监控、实 ...
2026-10-22