失败优先模型:失败变成结构。
失败优先模型只从它实际经历过的失败中学习。一个动作是否奏效,由环境而不是模型来裁定。每一次经过核验的失败都变成一条明确的约束,连同证据一起保存在符号记忆中,于是下一次尝试从更小的搜索空间开始。无需更新权重。同一个教训,永远不付第二次学费。
2026 年 9 月 25 日,一个拥有自身失败记忆的符号地板玩了两个真实的 Atari 2600 ROM:《太空侵略者》+32%,《Freeway》−12%,同一个机制。这一对结果后来成为 Peel,据我们所知第一个失效安全模型。同一个回路如今以 VDSG 的身份玩 DOOM、《德军总部 3D》与《辐射》,并驾驶一架能从零重新学会赛道的无人机,始终处在它的学习无法扩大的地板之内。冻结的 Atari 结果在本页下方,与发布时完全一致。
白皮书与幻灯片: 失败优先模型:失败变成结构 (PDF) · 18 张幻灯片 (PDF)

失败优先回路,逐步拆解
回路中的每一步,都是本站这些系统实际在做的事。中间一列是本页起步时的 Atari 地板;右侧一列是同一步在 VDSG 与无人机中的样子。
| 步骤 | 在街机地板中 | 在 VDSG 与无人机中 |
|---|---|---|
| 1 · 状态 此刻什么为真? | 由原始 210×160 像素分桶得到的态势,完全不读取模拟器内存。 | 读自引擎或仿真器状态的事实:生命值、在场的是谁、各扇区的空旷距离。 |
| 2 · 尝试 采取一个动作 | 驾驶者从可容许集合中提议。 | 规则在可容许集合之内选择目标;模型可以提议,永远不能接纳。 |
| 3 · 核验 实际发生了什么? | 由 ROM 裁定:丢了一条命,在真正的撞击帧读取(我们一开始弄错了)。 | 由游戏或仿真器裁定:一次死亡、一次碰撞、一圈用时。 |
| 4 · 失败 保留证据 | 一张卡片:态势与所采取的动作。 | 记在开启这段过程的决策上:挑起战斗的那句话,而不是战斗中的治疗。 |
| 5 · 建立规则 把证据变成约束 | 只有当 Wilson 下界高出基准率时,一个模式才成为规则。 | 同样的门槛;一次倒霉的死亡不会变成规则。 |
| 6 · 符号记忆 无需更新权重 | 规则是引用经历编号的计数,追溯为 203 张 Peel 瓦片。 | 学习者写入的一张证据表;许可卡片对它是只读的。 |
| 7 · 下一次尝试 排除已知错误的转移 | 可容许集合收窄,并受规则退休约束。 | 学习者只能收窄与重排;人的指令高于它。 |
| 成功 保留它 | V2 保留每个结果的两面,好的动作同样会被记住。 | 无人机只有在每一圈都更干净、更快时才保留改动。 |
同一个教训永远不付第二次学费,除非这个教训本身是错的。Freeway 展示了一个正确却代价高昂的教训:小鸡学到向上移动很危险,于是不再得分。这就是为什么失败优先模型需要规则退休,最终还需要给可恢复的失败定价,也是为什么学习被圈在一个它无法扩大的地板之内(失效安全)。
它后来成为什么
本页上的机制,即一份只能移除选项的失败记忆,如今是一个更大的模型的学习那一半。下面两段动图都会自动播放,都是真实控制台的录制。


从 Atari 到失效安全模型的路线
| 步骤 | 结果 | 它教会了什么 |
|---|---|---|
| 街机地板 v1 《太空侵略者》·《Freeway》 | +32% · −12% | 失败记忆在失败即终局时有帮助,在有风险的动作是唯一有用动作时有害。即下方冻结的结果。 |
| 规则退休 54 条规则的崩溃 | 30 条规则 → 6 个死局 · 50 条 → 12 个 · 退休后 → 0 | 每条规则单独都有理有据,合在一起却让系统瘫痪。按覆盖面让规则退休,把死局降回零。班组 → |
| 证据瓦片 每一次否决都可追溯 | 4,280 张卡片 → 30 条规则 → 203 张 Peel 瓦片 | 一次拒绝可以追溯到挣得它的每一次具体死亡。演化 → |
| VDSG · DOOM 基于规则,没有神经网络 | 随机 3.2 · 规则 17.9 · +记忆 20.3(t = 0.78) | 规则显著胜出;叠加其上的记忆层是持平而非胜出,并如实报告。证据 → |
| VDSG · 指令 DOOM 与《德军总部 3D》 | 指令只收窄 · 学习者有界 | 在 VDSG 论文中写成命题:任何指令、任何经验都无法增加一个动作。 |
| VDSG ·《辐射》(1997) 脚本化场景,真实决策回路 | 在一个守卫面前死 49 次 → 只死一次 | 又是信用分配:归咎必须落到挑起战斗的那句话上,而不是战斗中的治疗。之后它选择了和平的那句台词。 |
| 无人机赛道 仿真,留出的起始位置 | 10 / 10 圈,零碰撞 · 基线 1 / 10 | 习得的计划设定速度;停止距离限制与反射在它之后起作用,只能让它减速。飞行演示 → |
| Peel,失效安全模型 这一切的名字 | 从失败中学习 · 无法扩大它的地板 | 失败优先是它学习的方式;失效安全是这种学习不得改变的东西。科学与数学 → |
什么延续了下来,什么没有
- 延续:学习只会移除。在 Atari 上,记忆只能拿走动作。在 VDSG 中,这成了一条带测试的定理:学习者可以改写它认为什么有效,但永远不能改写它被授权做什么。
- 延续:每一次拒绝都引用证据。本页上的计数变成了相连的 Peel 瓦片,一次否决可以追溯到背后的死亡。
- 已修复:饱和崩溃。下方 54 条规则的结果对 v1 依然成立。修复它的是按覆盖面的规则退休。
- 重复出现,并被发现:信用分配。Atari 把失败记在飞船已被摧毁之后的帧上;《辐射》把失败记在治疗上而不是对话上。两者都产生了可信的曲线。两者都已公布。
- 尚未解决:风险本身就是目标。Freeway 仍是开放问题。给可恢复性而不是死亡定价的地板还没有被构建出来。
- 本原型的已知缺口。失效安全保证是针对 VDSG 提出的,那里有测试钉住它。在街机原型中,参数搜索层尚未与地板分离,因此这里不主张这一保证。
失败的代价不是动作的属性。
我们给一个符号地板配备了自身失败的记忆,并让它面对两个真实的 Atari 2600 ROM。仅用原始像素,不读取模拟器内存,没有权重,也没有梯度。在《太空侵略者》上它带来 +32% 的提升;在《Freeway》上,完全相同的机制却损失 12%。这一对结果本身就是发现,而原因并不是其中一个游戏更难。
两张冻结的实验卡片 · 三组对照 · 没有任何数据被调优掩盖 · 观看一次拒绝的发生 →
机制是什么
一次死亡会写下一张卡片:它发生时所处的分桶情境,以及当时采取的动作。当某个情境积累了足够的证据,这张卡片就变成一条规则,在决策时把该动作从可容许集合中移除。驾驶层负责提议;地板决定驾驶层可以从哪些选项中提议。
每条规则都会引用产生它的经验编号。一次拒绝读起来是在此情境下 19 次中死亡 13 次 —— 为基准率的 3.6 倍,而不是一个 0 到 1 之间的数字。回路中没有神经网络,也没有任何潜在状态:这些规则就是全部的习得状态,删掉一行就会改变行为。
这正是置信度分数做不到的事。分类器可以告诉你它有 0.94 的把握,却无法告诉你是哪十九次经验让它有把握,而你也无法删除其中任何一次。
数据
三组对照,两个游戏。V1 只从失败中学习 —— 坏动作被排除。V2 同时保留每个(情境, 动作)对的两面并按效用排序,因此没有任何选项被永久排除,后续证据可以推翻先前的排名。V2.1 在 V2 的效用之上再加一层针对灾难性后果的硬地板。
| 对照组 | 太空侵略者 | Freeway |
|---|---|---|
| 仅驾驶层 (不学习) | 139.4 | 10.3 |
| V1 —— 仅回避 | 200.6 相对其自身 152.2 基线 +32% | 9.2 −12% |
| V2 —— 仅效用 | 128.8 −8% | 10.2 持平 |
| V2.1 —— 灾难性地板 + 效用 | 121.9 −13% | 5.0 −51% |
请在同一行内比较,不要跨卡片比较。两张实验卡片的《太空侵略者》驾驶层基线并不相同 —— V1 的 A/B 跑到游戏自然结束(cap=20000),V2 使用 cap=3000。跨卡片把 200.6 与 139.4 相比是错误的。
V2 修复了退化,却失去了增益。V2.1 两者皆失。我们把它写下来,而不是调参掩盖。
发现:失败摧毁了什么
两个游戏的差别不在于风险能否被权衡,而在于一次失败从你手中夺走了什么。
太空侵略者 —— 终局性
一次死亡会抹去该局中全部剩余奖励。因此它的真实代价是期望剩余回报,而不是局部损失。V1 的绝对否决碰巧定价正确 —— 当损失确实是全部时,无穷大的惩罚就是对的。
Freeway —— 可恢复
一次碰撞把小鸡撞回去,游戏继续。真实代价仅仅是失去的路程。V2 的效用排序对此定价正确;V1 的否决则不然,它移除了唯一的得分动作。
同一套机制在各自情形下都因正确的理由而正确,却无法同时对两者都正确。任何固定的失败惩罚 —— 包括置信度阈值 —— 在两种情形之一中必然是错的。
在 Freeway 上,加入灾难性地板(V2.1)只是重建了 V1:若干 up 签名的观测致死率超过 80%,地板否决了它们,小鸡于是停止游戏。当致命动作就是唯一得分动作时,根本不存在可以排除的灾难性尾部。
我们没有预料到的结果
V1 在《太空侵略者》上于约 50 局时达到峰值 276.2,到 100 局降至 246.7 —— 而这是在工作集被限制为 30 条规则的前提下。取消该上限,100 局会坍缩到 167.1,规则数 54 条。
这 54 条规则中的每一条都由真实的死亡所证成。单条致命,合起来瘫痪。可容许集合只会不断收缩,因此一个从不淘汰规则的地板最终会拒绝一切。
这是我们所知的每一个安全层的实际失效模式,也是安全系统在现场被关掉的原因。它同样是对我们自身方法的反驳,所以数字在此:30 条规则有益,54 条规则比完全不学习更糟。限制工作集不是调参细节,而是承重结构。
五个缺陷,每一个都给出过貌似合理的错误答案
实验卡片记录了发现的每一个缺陷,因为每一个在被抓到之前都悄悄返回过可信的结果。其中最大的一个:
ALE 在长达 127 帧的死亡动画结束时才递减 lives 计数。因此每一张失败卡片都写自飞船早已被摧毁的帧。在 374 个被归因的帧中,0 个能看到炸弹;而在真正的撞击帧上,17 个中有 17 个可以。地板学习的时刻完全错了,却依然给出一条看起来像在学习的曲线。
我们公布这一点,是因为一条只会上升的结果曲线更不可信,而非更可信。
它所处的位置
在运行时把不安全动作从智能体的选择集中移除,是一个既有的思路。最接近的现代工作是 shielding(Alshiekh 等,2018,Safe Reinforcement Learning via Shielding)以及围绕它的受约束 MDP 与安全强化学习研究。从失败中学习规则则更为久远 —— PRODIGY 中的基于解释的学习与控制规则学习(Minton, 1988)、CHEF 中的基于案例的失败驱动记忆(Hammond, 1986),以及 Ripple-Down Rules(Compton & Jansen, 1990),其中每条规则都在推翻前一条的案例语境中被加入。
我们并不主张拥有这个类别。属于我们的部分更窄,我们认为也更有用:
- 护盾以可读规则的形式从原始像素中习得。从失败中学习护盾已有先例(Shperberg、Liu 与 Stone,2022,以及他们在 CoLLAs 2022 发表的基于规则的后续工作),因此我们不主张这一点。这一个从 210×160 的像素中导出,完全不读取模拟器内存,并且每条规则都是一个引用其事件的可读计数。(2026-09-26 更正:本页早前版本曾把习得式护盾说成是我们的。)
- 每一次否决都可单独审计。Shielding 给出的是规范层面的保证,却无法为某一次具体拒绝给出理由。这里可以,并且带计数。
- 饱和点被测量了出来。54 条各自成立的规则,表现比完全不学习更差。我们尚未见到有人量化这一点。
- 失效区间被公布了。当风险与收益共用同一个动作时,习得式护盾会退化 —— 附带数字,在第二个 ROM 上,使用完全相同的机制。
诚实的状态说明
PROTOTYPE —— 研究结果。这是在 Atari ROM 上冻结的双实验发现。它不是产品,没有部署,其中任何内容都未针对安全攸关路径做过验证。机制在两个游戏之间迁移成功;学习没有。任何引用 +32% 而不提 −12% 的说法都是误读。
V1 冻结于 freeze/arcade-floor-2026-09-25;V2 引用 V1 而不取代它。任何一张卡片都不会为了让后来的指标更好看而被修改 —— v3 将拥有自己的卡片并引用这两张。
开放问题。一个对可恢复性而非致死率定价的地板 —— 它拒绝无法撤销的事,并允许其余一切直到那条边界为止。Freeway 就是基准:一个真正理解可恢复失败的机制,应当彻底超过 10.3 的驾驶层基线,而不仅仅是打平。
此后:这一机制如今是 Peel,失效安全模型的学习那一半,并在 VDSG 中运行。仍是研究原型,仅限仿真与游戏。