news 2026/4/18 11:46:29

对抗样本攻击详解:如何让AI模型产生错误判断

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
对抗样本攻击详解:如何让AI模型产生错误判断

精心构造的输入样本能让机器学习模型产生错误判断,这些样本与正常数据的差异微小到人眼无法察觉,却能让模型以极高置信度输出错误预测。这类特殊构造的输入在学术界被称为对抗样本(adversarial examples)。

模型将右侧图像判定为长臂猿,置信度高达99.3%。

人眼看不出这两张熊猫图像有任何区别,而模型对左图的预测是熊猫,置信度57.7%显得不太确定。中间那张看起来像噪声的图案其实是经过精心设计的扰动掩码,将其乘以一个很小的系数0.007后叠加到原图上。肉眼完全察觉不到变化,但却可以让模型以99.3%的置信度认定右图是长臂猫的图像。

这个现象说明模型并未真正理解图像的本质结构。模型构建的是一种内部表征来描述自然图像,但分布外的数据点就能轻易突破这种表征的局限。

2014年Christian Szegedy做过一个有趣的实验:他从CIFAR-10数据集选了几张图片,试图用反向传播把它们逐步转换成飞机,想观察图像是如何一步步接近飞机的样子。

结果的图像几乎没什么变化,但右下角这张在视觉上依然是辆车的图片,模型却近乎百分百确信它是架飞机。

视觉模型的输入维度通常很高,每个像素的微小改变累积起来会在表征向量中产生显著变化,用L₂范数可以直观看出这种累积效应。

几乎所有机器学习模型都存在对抗攻击的脆弱性:逻辑回归、softmax回归、支持向量机这类线性模型特别容易被精心设计的样本误导;相比之下径向基函数(RBF)这种高度非线性的模型抵抗力要强一些。

多数机器学习模型的线性特性恰恰为生成对抗样本做了最好的理论铺垫,RNN和LSTM用加法操作来捕捉时序数据的流动,加法本质上是线性的;而ReLU、maxout这些激活函数让深度神经网络的输入输出关系呈现分段线性特征。

进一步看这个过程:

像素空间里的扰动虽小,但经过权重矩阵的放大在嵌入空间产生的效应就明显了,嵌入空间的变化量取决于权重向量与扰动向量的点积。

要让这个点积最大化,就得沿着特定方向移动,或者准确说是沿着权重向量的符号方向。

快速梯度符号法(FGSM)

优化函数可以这样定义,把损失函数改写成泰勒级数的一阶展开形式:

为什么要最大化损失?因为我们的目标是欺骗模型,所以要反着优化的方向走,ε sign()给出了能产生最大更新的方向。

为什么用最大范数而不是别的范数?因为我们的目的是稍微改变输入,并且要控制在人能够感知阈值之下。最大范数让扰动的控制变得精确,这跟真实传感器的情况比较接近。

将最大范数约束在ε以内,就能保证改变幅度不被肉眼发现。这就是快速梯度符号法(Fast Gradient Sign Method, FGSM)的核心思路:利用梯度的符号信息来确定移动方向。

FGSM的可视化分析

画出数据点周围的决策边界能直观展示FGSM的工作机制。

假设沿着FGSM方向和它的正交方向移动,移动范围限制在ε最大范数边界内,用这两个向量把决策空间切成一个二维子空间。

取几个数据点把它们周围的决策边界画出来,白色区域代表正确类别,有色区域对应错误标签。

沿FGSM方向移动会进入错误标签的区域。然后加入随机噪声相当于往随机方向移动:

随机方向的移动并不改变数据点的类别归属,这证明了一点:对抗样本不等于随机噪声

对抗子空间的维度是可以计算的,它表示能用来生成对抗样本的正交方向数量。这些向量和梯度向量之间有较大的点积。

平均下来这些子空间大约有25个正交向量。

目标类别的一步攻击

另一种思路是直接最大化某个特定目标类别的概率:让输入朝着能够最小化目标标签损失的方向移动。换句话说就是强迫模型认为损失最小的标签就是目标标签,从而输出这个标签。

更新规则写成这样:

MNIST数据集上的实验

训练一个模型来区分MNIST数据集里的数字3和7。

这是个单层权重的简单线性分类器,权重本身就可以当作梯度用。接下来取权重的符号。

这些权重决定了分类结果。把权重的符号加到样本上或者从样本中减去。

人眼能轻松过滤掉这些图像的背景噪声,但模型会认真对待每一个权重。权重为正时输出7,权重为负时输出3。这些生成的对抗样本彻底瓦解了分类器的判别能力。

对抗样本的迁移性

机器学习追求的是模型在不同数据集上都能保持稳定表现,这要求模型权重具备泛化能力。既然权重要泛化那基于这些权重生成的对抗样本自然也会泛化。

不同数据集应该产生相似的权重分布,可以量化模型间的迁移能力:

SVM依赖数据特性所以用一个SVM生成的对抗样本很容易攻击另一个SVM,而逻辑回归生成的对抗样本有87.42%的概率能欺骗决策树。

作为攻击者,如果不清楚目标模型的具体架构,可以用模型集成的方式来生成对抗样本。就算拿不到模型的训练数据标签,也能利用模型的输出来构造对抗样本。

有意思的是,人脑也会遭遇类似的"对抗攻击"。下面这个例子挺经典:

这些其实是同心圆,但因为方块的排列方向大脑会把它们解读成螺旋。

对抗训练提升泛化性

用对抗样本训练深度神经网络能起到正则化的作用,还能改善性能。

对抗训练确实能提升DNN的表现,损失函数可以重新表述成这种形式:

不过严格的线性模型用对抗样本训练不会有什么改进。还可以修改损失函数,给对抗样本分配更高的权重:

需要明确一点,这些做法都是在和对抗攻击做斗争。要降低对抗攻击的成功率,需要强大的优化算法配合严格的非线性模型架构。

参考文献

Goodfellow, I. J., Shlens, J., & Szegedy, C. (2014). Explaining and Harnessing Adversarial Examples.ArXiv. /abs/1412.6572

Goodfellow, I. J., Mirza, M., Xu, B., Ozair, S., Courville, A., & Bengio, Y. (2014). Generative Adversarial Networks.ArXiv. /abs/1406.2661

Tramèr, F., Papernot, N., Goodfellow, I., Boneh, D., & McDaniel, P. (2017). The Space of Transferable Adversarial Examples.ArXiv. /abs/1704.03453

https://avoid.overfit.cn/post/815495f184a049389d702becdb972067

作者:Kavishka Abeywardana

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 6:02:01

基于Miniconda的PyTorch安装教程:专为GPU加速设计的轻量环境

基于Miniconda的PyTorch安装教程:专为GPU加速设计的轻量环境 在深度学习项目日益复杂的今天,你是否曾遇到过这样的场景:刚为一个图像分类任务配置好 PyTorch CUDA 环境,转头开始自然语言处理实验时,却因 TensorFlow …

作者头像 李华
网站建设 2026/4/12 14:32:07

【扣子Coze教程】智能出题工作流,一键生成试卷(零代码)

目录 01 搭建工作流 02 测试 03 总结 今天分享一个扣子Coze智能出题工作流,一键生成试卷,针对知识点和错题集进行强化训练,适合老师家长们辅导孩子用,尤其是小学初中阶段。 本文工作流无代码,所有提示词均已给出&a…

作者头像 李华
网站建设 2026/4/18 8:33:23

在Miniconda中安装XGBoost进行结构化数据建模

在Miniconda中安装XGBoost进行结构化数据建模 在当今数据驱动的科研与工程实践中,一个常见的痛点是:明明本地跑通的模型,换台机器就报错。更令人头疼的是,团队协作时,有人用Python 3.8,有人用3.9&#xff1…

作者头像 李华
网站建设 2026/4/17 16:04:11

python基于校园学生行为大数据的精准分析管理系统

目录已开发项目效果实现截图关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!已开发项目效果实现截图 同行可拿货,招校园代理 ,本人源头供货商 python基于校园学生行为大数据的精准…

作者头像 李华
网站建设 2026/4/18 8:07:55

基于SpringBoot的知识产权代管理系统设计与实现毕设源码+文档+讲解视频

前言 随着知识产权意识的提升,企业及个人对专利、商标等知识产权的申请、维护需求日益增长,但知识产权代管理流程繁琐、信息不透明、效率低下等问题突出。本课题旨在设计并实现一款基于SpringBoot框架的知识产权代管理系统,构建高效、规范的知…

作者头像 李华
网站建设 2026/4/18 3:32:43

conda install与pip install混用时的注意事项说明

conda 与 pip 混用时的环境管理实践 在当前 AI 和数据科学项目中,一个看似简单的 pip install 或 conda install 命令背后,可能隐藏着整个环境崩溃的风险。你是否曾遇到过这样的场景:本地训练模型一切正常,但换一台机器复现时却报…

作者头像 李华