
<a id="n50-title"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-title)


# 门开了：因为按按钮，还是因为走近？

王德泉 · Coding with AI · Lecture 04


<a id="n50-49acba349520"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-49acba349520)

上一页说明，判断当前状态不能只看眼前一帧，还要利用过去的观察。但记住全部历史，也不一定足以分清机制。看看课堂中设定的这段记录：一个人走近门，按下按钮，门打开了。


<a id="n50-ad7a5c707046"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-ad7a5c707046)

至少有两种解释能讲通这段记录。第一种门由按钮触发；第二种门由靠近感应触发，按钮并不负责这次开门。因为走近与按键在旧记录中一起发生，两种解释都会预测“门打开”。继续看同样的顺序，未必能分清它们。


<a id="n50-41127ef0f3b7"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-41127ef0f3b7)

因此，下一步不是简单重复，而是选择一个让两种解释产生不同预测的动作：**走近门，但不按按钮。**按钮机制预测门保持关闭；靠近感应机制预测门打开。先把两项预测写清，再看环境实际返回的结果。


<a id="n50-39b0781592a6"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-39b0781592a6)

![同一扇门的关闭与打开状态，右侧都有按钮；门的状态本身不能说明由什么触发。](https://codingai-lec04.pages.dev/assets/classroom/world/world-door-states.png.webp)


<a id="n50-1aaaa09e16fc"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-1aaaa09e16fc)

两种机制都能产生“开门”的结果；要区分它们，必须改变此前总是一起出现的动作条件。门图是教学示意，课堂反馈来自预先固定的环境规则，不是一段真实开门实验。


<a id="n50-4cf1071e811a"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-4cf1071e811a)

在这个例子里，新的反馈是门仍然关闭。它与靠近就开的候选不符，因此可以排除这两个候选中的靠近感应机制。结论来自预测与新观察之间的冲突，不来自哪个解释听起来更流畅。


<a id="n50-e3fe1259402d"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-e3fe1259402d)

**学生：**“我再走近、按一次，看到门又打开，是不是就更能证明按钮有用？”


<a id="n50-60885f7d62fa"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-60885f7d62fa)

**教师：**“对这两个候选而言，仍然都预测打开。这次重复可以告诉我们旧现象再次发生，却没有制造区分两种解释的证据。”


<a id="n50-6decb9f69c8a"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-6decb9f69c8a)

**学生：**“走近没开，就能宣布这扇门一定是按钮门了吗？”


<a id="n50-0bc45526eab6"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-0bc45526eab6)

**教师：**“在当前两个候选中，按钮机制留下来了；但我们没有列完所有可能机制。比如还有未考虑的工作条件，单次反馈并没有把它们全部排除。‘排除一个候选’与‘证明完整机制’不是同一句话。”


<a id="n50-08763e69c3dc"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-08763e69c3dc)

**学生：**“世界模型自己生成了一段‘走近但没开’的视频，也能用来排除感应机制吗？”


<a id="n50-3b62303f7935"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-3b62303f7935)

**教师：**“那仍是模型提出的预测。这里用于检查预测的是环境独立返回的结果；不能让同一个预测模型生成一个结局，再拿这个结局证明它自己说对了。”


<a id="n50-cdfc7dc679ec"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-cdfc7dc679ec)

这项判断也依赖试验确实按要求进行：人已经走到例子约定的感应范围、没有按按钮，并且门处于两个候选共同假定的正常工作条件。若这些条件没有满足，预测与结果不一致就不一定说明我们以为的机制错了。条件需要交代，但不必把它们全压到课堂主画面上。


<a id="n50-a2334fc73c3b"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-a2334fc73c3b)

这个小例子要说明的不是“多交互总会更好”，而是**动作可以主动创造有区分力的信息**。先想清楚什么结果会使自己改主意，才能知道这次尝试究竟在检验什么。


<a id="n50-7d2e03ccf51e"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-7d2e03ccf51e)

**接下来：**有了能够接受环境检验的预测，可以此刻比较两条路线、选择下一步，也可以在训练阶段用想象经历练习策略。下一页把这两种用法分开，并继续追问：如果想象本身有错，会给行为带来什么影响？


<a id="n50-states"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-states)


## 画面怎样推进


<a id="n50-b0"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-b0)

走近、按键与开门总一起发生，旧记录尚未区分触发条件。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N50.html?step=b0)


<a id="n50-b1"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-b1)

按钮触发和靠近感应两种机制都解释旧记录，因此重复同样动作仍难区分。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N50.html?step=b1)


<a id="n50-b2"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-b2)

走近但不按时，按钮机制预测关门，感应机制预测开门，预测产生分歧。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N50.html?step=b2)


<a id="n50-b3"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-b3)

预先固定的环境规则返回门仍关闭，只排除当前候选中的感应机制，不穷尽现实机制。

[返回这一课堂停点](https://codingai-lec04.pages.dev/classroom/N50.html?step=b3)


<a id="n50-materials"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-materials)


## 继续阅读与实验


<a id="n50-learning-unit-001"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-learning-unit-001)


## 旧历史都预测正确，哪次新动作才有区分力？


<a id="n50-learning-unit-002"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-learning-unit-002)

旧记录总让走近和按键同时发生，按钮机制与接近机制都预测开门。只走近、不按键时，前者预测关、后者预测开。LAB10 先记录这项分歧，再由独立规则环境返回关门，更新候选权重，随后实际远处按键开门；按钮在实验中抽象为遥控脉冲。


<a id="n50-learning-unit-003"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-learning-unit-003)

在列出的两候选与无噪声条件内，这能排除接近机制。若还考虑“必须走近且按键”的第三候选，第一次只走近关门仍符合它，后续远处按键开门才与它冲突。这个正面反例说明为何后验1不等于现实全部机制已证明。


<a id="n50-learning-unit-004"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-learning-unit-004)

自检：候选自己生成的关门视频能否充当反馈？不能。[读完整干预过程](https://codingai-lec04.pages.dev/lecture.html#ch08-door-intervention)。


<a id="n50-chapter-reading"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-chapter-reading)


### [CLS 08 · 世界模型：状态、行动与反馈](https://codingai-lec04.pages.dev/lecture.html#ch08)

按连续正文理解这条方法的训练信号、使用过程与算例；数学与实践在相关问题旁展开。

先看：第8章，从对象和问题开始


<a id="n50-lab10-practice"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-lab10-practice)


### [LAB 10 · 一次行动怎样改变判断](https://codingai-lec04.pages.dev/course/notebooks/cc09b0442e194df5b0dd09251ac79985.html)

先写候选对同一动作的不同预测，再读独立环境返回的观察；用历史更新下一步选择。

先看：先看保存结果与读图解释


<a id="n50-material-1"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-material-1)


### [CLS 00 · 第四讲材料导读](https://deepnote.com/workspace/ise3309jingao-5ba66b0a-4283-4f5a-ae06-3f68d3201e99/project/6f83a923-d155-47be-be58-680db701ff7f/notebook/62c6951f1e554169bdb91fb9d216e160?utm_source=openai&utm_medium=mcp&utm_campaign=openaimcp&utm_content=62c6951f1e554169bdb91fb9d216e160&utm_term=get_notebook)

在门的两候选例子后，检查试验前提与候选范围，练习挑选会造成预测分歧的动作。

先看：看过历史以后，怎样选择有区分力的新动作


<a id="n50-material-2"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N50.html#n50-material-2)


### [The Quest for a Common Model of the Intelligent Decision Maker](https://arxiv.org/abs/2202.13252)

阅读行动怎样改变后续经验；门例是课堂自建候选实验，并非该论文实测。

先看：环境、观察与行动的交互结构

