京公网安备 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
在Python数据分析中,Pandas库的DataFrame是最核心、最常用的结构化数据表对象,类似于Excel的二维表格,具备规整的行列结构、字 ...
2026-09-07在数据分析、经营复盘、业绩预测与经济统计工作中,平均增速(平均增长率)是衡量数据长期变化趋势、业务发展快慢的核心指标。不 ...
2026-09-07 很多数据分析师精通Excel单元格操作,但当被问到“表结构数据的基本处理单位是什么”“字段和记录的本质区别”“为什么表结 ...
2026-09-07随着大数据技术的快速发展,商业竞争逐步从传统的经验式经营转变为数据驱动的精细化运营。海量的用户行为数据、交易数据、运营数 ...
2026-09-04CDA数据分析师 出品 作者:李诗怡 1. 波士顿矩阵(BCG Matrix) 定义: BCG于1970年提出的业务组合分析工具,以"市场增长率"(纵 ...
2026-09-04 数据分析师八成以上的时间在和数据表格打交道,但许多人拿到Excel后习惯性地先算、先分析,结果回头发现漏了一列关键数据, ...
2026-09-04数据透视表是Excel与Power BI中最核心的数据分析工具,具备快速汇总、维度拆分、动态筛选的能力,可高效完成数据归类与统计展示 ...
2026-09-03在Power BI数据分析可视化场景中,堆积柱状图+折线图是最常用的复合图表组合。堆积柱状图适合展示各细分维度当期数值、结构占比 ...
2026-09-03 很多数据分析师每天与Excel打交道,但当被问到“表格结构数据的基本处理单位是什么”“数据类型误判会引发哪些分析错误”“ ...
2026-09-03CDA数据分析师 出品 作者:李诗怡 一、8个核心数据清洗函数 1. TRIM:一键清除多余空格(最常用) 作用:仅保留文本中"单词/字 ...
2026-09-02数据分析的核心并非单纯操作工具、整理报表或绘制图表,而是依靠科学的思维逻辑挖掘数据价值、解释业务现象、指导经营决策。在完 ...
2026-09-02在社会经济、产业研究、区域治理与大数据实证分析中,面板数据是最具研究价值的数据类型。面板数据同时包含截面维度与时间维度信 ...
2026-09-02 很多数据分析师能熟练计算均值、标准差,但当被问到“如何用一张图让业务方3秒内看懂核心结论”“面对不同数据类型该怎么选 ...
2026-09-02在数据驱动决策的体系中,数据分析按照分析目的可分为描述性分析、诊断性分析、预测性分析与指导性分析四大类型。其中,诊断性分 ...
2026-09-01网络请求是Python爬虫开发、接口测试、数据拉取的核心基础功能,Python生态中主要依靠 urllib 和 requests 两大库实现HTTP请求操 ...
2026-09-01 很多数据分析师面对业务问题时,常常感到“知道要分析,却不知道用什么方法”。其实,数据分析并非无章可循——从三大基础范 ...
2026-09-01在数据库设计与业务数据维护中,自增ID是数据表最常用的主键字段,用于唯一标识每一条业务数据,正常状态下ID应保持连续递增。但 ...
2026-08-31在数理统计、数据分析、经济测算与日常量化评估中,平均值是刻画数据集中趋势、反映整体水平的基础核心指标。在实际应用中,最常 ...
2026-08-31在数据驱动的时代,数据分析早已不是“凭经验、靠感觉”的零散操作,而是一套具备固定逻辑、标准化流程的系统方法——这就是数据 ...
2026-08-31在大数据时代背景下,海量行业数据亟需通过专业化工具挖掘潜在价值,辅助企业业务决策、优化运营模式、规避经营风险。Python凭借 ...
2026-08-28