当前位置:首页 > 科研成果库

给AI穿“防弹衣”:聊聊对抗样本防御

2026-10-10 04:37:50小研科研成果库6

上个月跟自动驾驶测试团队跑路测,我们训练的视觉识别模型在封闭测试集准确率快摸到99%,结果遇到一个搞安全的朋友瞎玩,在路边的停车标志上贴了三张巴掌大的彩色贴纸,随便排了个形状。我们车开过去,直接没刹停,系统硬把停车标志识别成了限速60。那一秒,整个车厢的空调都不凉了。

好好的AI,怎么说瞎话就瞎话了

这就是典型的对抗样本搞鬼。说白了就是给AI的输入加一点人眼完全不可察觉的微小扰动,就能让最先进的AI直接错得离谱。哪怕你模型平时百发百中,碰到精心设计的对抗样本,直接翻车。

对抗样本修改后的停车标志AI识别图对抗样本修改后的停车标志AI识别图

很多人刚接触这个概念会觉得匪夷所思,不就是几个小破贴纸吗,人一眼就能认出这是停车牌啊?

问题就在这。AI学的是训练数据里的统计相关性,不是人类那种抽象的概念认知。我们认停车标志,认的是那个红边八边形加停字的核心结构,AI认的是训练样本里像素的分布规律。你改几个像素,或者贴几个小贴纸,分布规律变了,它的判断直接歪到姥姥家。

类比一下,就是你考试背答案,把选择题题干换两个字,顺序调一下,你就认不出来选不对了。本质上就是死记硬背,没有真的理解知识点。对抗样本就是戳穿AI“死记硬背”的那张纸。

那为什么要搞对抗样本防御?现在AI都用在什么地方?自动驾驶认错标志会出人命,刷脸支付被对抗面具骗过会丢钱,医疗AI看错片子会误诊,哪一个不是要命的事?防御不是可选的,是必须的。

现在的对抗样本防御,到底是怎么干活的

说起来,市面上的防御方法思路其实都挺直白,没有什么玄乎的黑科技。

最常用的就是对抗训练。说白了就是把生成好的对抗样本混进正常训练集,让AI提前见一见这些“假货”,练出抵抗力。就像你防诈骗,警察提前给你看一百种诈骗案例,你真遇到了就能认出来。

说实话,这个方法真的笨,但确实管用。就是太费算力。我上次调一个小小的图像分类模型,为了做对抗训练,多跑了整整八个小时,云服务器账单出来我心疼了三天,够我喝四杯冰美式加一个汉堡套餐。

还有一种思路叫输入净化,就是AI做预测之前,先给输入做一遍“按摩”,压缩一下,去个噪,把对抗扰动给磨平。很多移动端的模型都爱用这个思路,快,不占额外算力,不用改模型结构,拿来就能用。缺点就是碰到精心设计的强扰动,基本没用,相当于给纸糊的门加了把锁,防君子不防小人。

深度学习对抗训练完整流程示意图深度学习对抗训练完整流程示意图

还有一种叫知识蒸馏防御,就是把训练好的大模型的“软知识”迁移到小模型,让小模型的预测梯度更平滑。啥意思?攻击者做对抗样本,本质上就是沿着梯度方向找扰动,梯度平滑了,攻击者就找不到下手的方向,自然做不出能骗过AI的样本。

你看,不管哪种思路,本质上都是给AI加一层防护,就像给人穿防弹衣,有的防小刀,有的防手枪,没有万能的防弹衣,对吧?

别神化,对抗样本防御现在还有好多坑

别神化,对抗样本防御现在还有好多坑别神化,对抗样本防御现在还有好多坑

我现在看网上很多科普,都把对抗样本防御吹得太神了,好像现在AI已经百毒不侵了,其实不是这么回事。这里头坑多了去了。

第一个最大的误区,就是觉得有万能的防御方法。没有任何一种防御方法能通吃所有攻击。你针对L2范数攻击做的防御,换个Linf范数的攻击,直接垮掉。我去年亲身测过一个顶会论文里的防御模型,论文说干净样本准确率能保持92%,结果我们换了一种新的迭代攻击方法,准确率直接掉到20%,连一半都不到,尴尬得不行。

第二个误区,就是觉得防御了就不会降准确率。大部分防御方法,都会牺牲正常样本的准确率。你为了磨掉对抗扰动,把很多有用的特征也磨没了啊。就像你为了防电脑病毒,把所有外来的文件都直接删掉,病毒是没了,你自己也没法干活了。现在所有落地的防御方案,都是在正常准确率和鲁棒性之间找平衡,不是百分百防住,是把风险降到可以接受的程度。

再说说边界,现在大部分成熟的防御成果,都集中在图像领域,毕竟图像好做扰动,好测试,刷脸、自动驾驶这些场景需求也旺,好歹有几个能用的方案。换到文本或者大语言模型领域,太难了。你给一句输入换个同义词,改个语序,加几个无关的字,就能让大模型输出错误内容,绕过内容审核,现在还没什么好用的通用防御方法。说白了,就是AI越大,漏洞越多,防御的速度赶不上攻击的速度。

不过话说回来,我们普通人也没必要太焦虑。大部分民用场景,没人会花那个时间成本算力成本专门给你做对抗攻击,真有那个技术,拿去干点什么不好,非要骗你家刷脸开门的锁?现在的防御,够用来挡大部分低成本攻击了。

其实我觉得,研究对抗样本防御,本质上不只是为了防坏人。更多的是帮我们搞懂,AI到底为什么会犯错,它和我们人类的认知到底差在哪。我们原来以为AI已经比人强了,结果一个小扰动就打回原形,才发现我们对AI的理解,其实还很浅。

给AI穿防弹衣,本质上也是给我们自己的安全兜底。哪天你刷脸开门,自动驾驶平稳刹车,你没感觉到任何异样,那就是防御在悄悄干活呢。只是你不知道而已。