← 最新论文
🤖 machine learning

Evaluating Fuzz Testing for Reinforcement Learning Agents

本文提出了首个系统性评估五种最先进的强化学习模糊测试方法在有效性、多样性、效率和实际效用方面的全面实证研究,揭示了结合面向吞吐量和面向探索的策略能够产生更优越的崩溃发现能力和鲁棒性提升。

原作者: Zhibin Kang, Hanmo You, Dong Wang, Haiming Zheng, Junjie Chen

发布于 2026-07-28
📖 1 分钟阅读☕ 轻松阅读

原作者: Zhibin Kang, Hanmo You, Dong Wang, Haiming Zheng, Junjie Chen

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你制造了一个机器人,它通过一遍又一遍地玩电子游戏来学习如何走路、开车或驾驶无人机。每当它做出一个好动作时,它就会得到一个数字化的“击掌”(奖励);每当它绊倒或撞车时,它就会受到一次轻微的责备(惩罚)。这被称为强化学习(Reinforcement Learning)。这是我们教机器如何在现实世界中做出决策的方式。但问题在于:就像人类学习骑自行车一样,这些机器人在遇到从未见过的状况时,有时会做出一些奇怪、危险或完全出乎意料的行为。如果一辆自动驾驶汽车突然因为一个奇怪的阴影而决定撞向墙壁,那就是个大问题。

为了阻止这些灾难,工程师们使用了**模糊测试(Fuzz Testing)**技术。把它想象成一个混乱、精力充沛的超级压力测试员。模糊测试者不会仔细规划路线,而是向机器人投掷数百万个随机的、奇怪的、略微损坏的情景,看看它是否会崩溃。这就像向雪人投掷一百万个不同类型的雪球,看看哪一个会让它坍塌。其目标是在机器人真正进入现实世界之前找到这些“崩溃”。但由于投掷这些“雪球”的方式多种多样,研究人员一直在争论哪种方法才是最好的。有人说你需要一种聪明且有引导的方法;也有人说仅仅是随机投掷就足够了。这篇论文介入了这场辩论,旨在定下胜负。


伟大的机器人碰撞测试大对决

在这项研究中,研究人员扮演了大规模、高风险机器人碰撞测试比赛中的裁判。他们并没有只选择一种方法并寄希望于此;而是收集了目前存在的五种最先进的“模糊测试”方法,并将它们与质朴的、传统的“随机测试”(即盲目地投掷雪球)进行对决。他们在三个不同的难度等级上测试了这些方法:一个在爬坡的简单小车、一个在崎岖地形上行走的双足机器人,以及一个在繁忙城市中行驶的自动驾驶汽车。

速度之王 vs. 多样性女王
结果令人惊讶,并揭示了一个明显的权衡。如果你想在最短的时间内找到最多的崩溃,MDPFuzz 是无可争议的冠军。它就像一架超快、轻量级的无人机,在测试赛道上穿梭,寻找崩溃的速度让其他方法望尘莫及。在双足机器人测试中,MDPF fuzz 找到了近 12,000 次崩溃,而其他一些方法找到的不足 100 次。它极其高效,几乎每次尝试新动作时都能找到新的崩溃。

然而,快并不意味着全面。虽然 MDPFuzz 发现的崩溃更多,但其中许多看起来非常相似。这就像是发现了 1,000 种被同一块石头绊倒的方法。另一方面,旨在追求多样性的方法,如 SeqDivFuzz,虽然速度较慢,但发现的崩溃彼此之间差异很大。它们发现了机器人可能失败的那些奇特、罕见的途径,而不只是常见的故障。

“随机”带来的惊喜
其中一个最大的收获是,随机测试(即那种没有任何智能引导、只会瞎猜的方法)比人们想象的要好得多。对于简单的任务,比如在坡道上的小车,随机猜测是第二好的方法,它找到的崩溃次数几乎与那些花哨、复杂的算法一样多。这表明对于许多工作,你并不总是需要一个超级复杂的 AI 来寻找漏洞;有时,仅仅是向靶板投掷大量的飞镖就能产生出人意料的效果。

这些崩溃真的有帮助吗?
研究人员并没有止步于统计崩溃次数;他们还问道:“找到这些崩溃真的能让机器人更安全吗?”他们利用从每种方法中找到的崩溃数据来“重新训练”机器人,本质上是在教它们:“嘿,别再那样做了!”

结果显示,使用这些崩溃数据确实提高了机器人的鲁棒性。专注于寻找多样化崩溃的方法(QDFuzz)对机器人安全性的提升效果最好,将其鲁棒性提升了 41.5%。这意味着在针对这些特定的失败场景进行训练后,机器人变得更加难以被破坏。

更酷的是,他们测试了一个基于一种方法产生的崩溃进行训练的安全系统,是否能识别出另一种方法的崩溃。答案是肯定的。一个基于 MDPFuzz 崩溃训练的安全监控器可以以超过 95% 的准确率识别出 SeqDivFuzz 的崩溃。这表明,尽管这些方法发现的崩溃类型不同,但它们都拥有一些共同的失败“特征”,安全系统可以学习识别这些特征。

最终裁决
论文得出结论,不存在单一的“灵丹妙药”来测试 AI。如果你需要尽可能快地找到尽可能多的漏洞,请使用 MDPFuzz。如果你需要寻找系统可能失效的奇特、罕见且多样化的方式,请使用 QDFuzzSeqDivFuzz。并且不要忘记将 随机测试 留在你的工具箱里——它既便宜、快速,又出奇地有效。

作者还警告说,仅仅找到崩溃是不够的;你必须小心如何利用它们来修复机器人。有时,针对过于奇特、极端的崩溃进行训练,反而可能让机器人在执行正常任务时表现得更差。他们建议,关键在于将这些方法混合搭配,利用一种方法的速度和另一种方法的多样性,从而构建出不仅速度快而且真正安全的机器人。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →