对抗样本防御:别再把鲁棒性当玄学,贴纸和噪点真能打穿模型
模型在测试集上98%,换一张加了噪点的图,直接认错。你气不气?更离谱的是,路边贴个花纹贴纸,摄像头里的停车标志能被认成限速牌。对抗样本不是实验室里的玩具,它是攻击者能摸到的成本曲线。先别急着骂模型笨,先把威胁模型摆桌上:白盒、黑盒、迁移、物理世界。不同打法,防御策略完全不是一回事。
先看现场:一张贴纸就能把模型带沟里
对抗样本说白了,就是在输入上做一点点人眼难察觉的扰动,让模型高置信度犯错。图像最直观,语音、文本、多模态也一样。研究里常用Lp范数限制扰动大小,PGD是白盒攻击的硬骨头。黑盒呢?靠查询、迁移、集成。物理世界更脏:光照、角度、打印色差、运动模糊,全给你加噪声。
对抗样本防御 物理世界对抗贴纸实验场景图
说实话,我看到很多团队拿干净测试集刷到99%,就敢说模型稳。别闹。攻击者不看你的测试集。他们会用自适应攻击,针对你的防御再优化。很多防御论文翻车,不是想法不美,是评测太温柔。梯度掩码、混淆梯度这种操作,遇到自适应攻击基本白给。记住:防御的敌人不是固定攻击,而是会看防御代码的攻击者。这句话有点刺耳,但省学费。
防御不是单点魔法:对抗训练、去噪、认证和检测各有坑
对抗训练是目前最硬的经验防御之一。Madry那套PGD对抗训练,把攻击样本塞进训练循环,逼模型学更平滑的决策边界。TRADES再往前一步,显式权衡干净精度和鲁棒性。效果?有。成本?贵。训练慢,调参烦,干净精度还可能掉。更麻烦的是,对抗训练容易对训练时用的攻击过拟合,换一种威胁模型就露怯。所以工程上常做集成攻击、随机启动、多步长训练,别只喂一种PGD。
输入去噪和预处理,听着像创可贴。特征压缩、JPEG压缩、随机裁剪、扩散模型去噪,都有论文。DiffPure用扩散过程把对抗扰动洗掉,再分类,思路漂亮。可推理开销摆在那,实时摄像头场景很难受。更关键的是,自适应攻击可以针对去噪器优化,甚至把去噪过程当可微模块打。别把预处理当万能盾。
对抗样本防御 对抗训练PGD鲁棒性评测流程图
认证防御是另一条路。随机平滑给L2半径内的可证明鲁棒性,听起来很香。但半径往往不大,复杂任务上更紧。认证半径小,不代表产品安全,只代表在这个威胁模型下有保证。检测类防御呢?训练一个检测器识别对抗样本,或者看特征分布异常。问题是分布偏移、自适应攻击、误报率,三座山。线上误杀正常样本,业务方会找你喝茶。
行业动态也在变。以前大家盯图像分类,现在多模态、大模型、智能体全上桌。LLM的提示注入和越狱,跟传统对抗样本有交集,但威胁模型不一样。别混为一谈,也别各修各的墙。系统层要做输入过滤、权限隔离、工具调用白名单、运行时监控。模型层做对抗训练和鲁棒微调。供应链层看模型卡、评测报告、红队记录。缺一块,都是短板。
工程落地:先把评测做脏,再谈产品化
工程落地:先把评测做脏,再谈产品化
我特别想吐槽一种做法:拿公开攻击库跑一遍,指标好看就收工。兄弟,攻击库会过时。评测要脏一点。白盒自适应攻击先上,迁移攻击跟上,物理变换、压缩、噪声、遮挡全加。再看鲁棒性-干净精度曲线,不是单点数字。业务能接受掉几个点?延迟能加多少毫秒?这些才是决策依据。
落地我会分层。第一层,输入净化和随机化,成本低,挡脚本小子。第二层,对抗训练或鲁棒微调,针对高价值模型。第三层,检测和监控,线上告警,灰度回滚。第四层,认证防御用在合规或高风险模块,别全系统硬上。还有,红队要常态化。模型更新一次,攻击面变一次。别等出事再补。
成本这事得说透。对抗训练可能让训练算力翻几倍,推理侧去噪也可能拖垮延迟。认证防御的保证范围有限,检测器有误报。没有银弹。工程上做取舍:高风险场景堆防御,低风险场景做监控和快速响应。别为了论文指标把产品拖死。
最后提醒一句:对抗样本防御不是一次性的模型补丁,是持续对抗的工程流程。评测、训练、监控、红队、回滚,缺一环都漏风。今天贴纸能骗过摄像头,明天可能就是语音指令、文档注入、多模态组合拳。别慌,先把威胁模型写清楚,把评测做脏,把成本算明白。剩下的,交给迭代……