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


# 先在脑中试，再让环境回答

王德泉 · Coding with AI · Lecture 04


<a id="n47-67deb7f4b270"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N47.html#n47-67deb7f4b270)

这是一个预先构造的预测—执行例子，不从照片测量摩擦系数或推力。画面给出两种动作各自的预测，再展示实际执行轻推后的反馈：偏差要求模型从观察到的新位置继续。轻推与强推不是让学生凭图片猜的正确答案，而是两项可比较、可接受反馈的行动条件。 N42 留下了“会续播是否等于会预测动作后果”的问题。现在桌上有一只杯子，目标是让它到达安全区域。我们先提出轻推与强推两个动作，再分别预测杯子会停在哪里。画面中的淡色轮廓是两个尚未发生的未来，不是环境已经确认的位置。


<a id="n47-063447d42120"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N47.html#n47-063447d42120)

只有执行其中一个动作以后，才获得这次环境返回的状态。例子里，轻推后的杯子停得比预测更远，但没有停在安全区。这个差别值得保留：它告诉我们当前预测在这里有误，也改变了下一步该从哪里出发。若仍从脑中预测的位置规划，就会让后续计划建立在一个已经被观察否定的起点上。一次误差还会改变后面遇到的状态，使更长预测偏离熟悉范围；因此单步误差小也不能替代长程与闭环检验。


[课程图解] 淡色轮廓是未实现的预测，实体杯是环境反馈；下一计划须从实际位置出发。；图中标签与关系：安全区 目标：移入安全区 刚才预测 滑得更远 目标尚未 达成 实际反馈
淡色轮廓是未实现的预测，实体杯是环境反馈；下一计划须从实际位置出发。


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

**“预测中的杯子已经在安全区，为什么不能直接宣布成功？”**因为目标约束的是实际杯子。预测帮助我们比较候选，执行后的观察才检验这次动作做成了什么。描述一次成功、相信一次成功与确认一次成功，是不同的信息状态。


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

把生成接到决策上，需要比“给出一个像样的未来”更具体的接口：从当前状态出发，动作条件不同，预测后果应怎样不同？按照目标选定一个动作以后，实际结果能否支持这个预测？获得新观察以后，又怎样修正状态判断与后续选择？世界模型在这里成为选择的依据，而不是一段未来视频的播放器。


<a id="n47-9d1cc9751ffa"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N47.html#n47-9d1cc9751ffa)

这里采用课程中的工作定义：世界模型为与预测或行动有关的状态变化提供模型。它可以预测图像、潜在表示或任务所需的量，不必统一输出完整视频；能预测未来、能帮助规划、能迁移到现实，也各需相应证据。


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

**“预测一有误，是不是就要立刻重新训练整个模型？”**不一定。先按新观察更新当前状态并重新规划，就能纠正一部分误差；是否更新模型参数或策略，是另一项决定。有些误差来自状态未看清，有些来自模型没有学到这个动作或表面的动态，不能把所有偏差都解释成同一个问题。


<a id="n47-692f8a2f5ec0"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N47.html#n47-692f8a2f5ec0)

课堂中的杯子位置由预先设定的规则演示，用来区分预测与反馈，不是机器人实验成绩。真正的行动主张需要让反馈来自独立环境；用同一个生成器再生成一幅“任务成功”的图，不能检验它先前的预测。下一页把门槛再说清：一段可播放的未来，怎样才具备可操作环境应有的持续性与动作响应？


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


## 画面怎样推进


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

先确认实际杯子与目标，再提出不同动作，预测必须从当前观测状态出发。

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


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

两处淡色杯子是轻推与强推的预测；尚未执行时，它们都不能替代实际位置。

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


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

执行轻推后实际停点与预测有差别。误差来自两种独立信息的比较。

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


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

新的规划从实际杯子所在处开始，让反馈修正下一步，而不是继续沿用已经失效的预测。

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


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


## 继续阅读与实验


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


## 预测位置错了，下一步从哪里开始？


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

淡色杯子是轻推、强推各自的候选未来；只有实际执行的一支获得了环境观察。若轻推后杯子滑得更远，下一步必须从观察到的位置重新规划。尚未执行的强推仍是预测，不能一起登记成已经发生的事实。


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

这次偏差可能来自状态未看清、表面动态没学对或动作执行有误。先修正当前状态不等于立即重训参数；把两者分开，才能知道下一次要补观察、补经验还是检查执行接口。


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

自检：模型再生成一张“杯子已到目标”的图，能否证明成功？不能，目标要由独立反馈检查。课堂杯子位置是规则示意。[读预测与反馈的关系](https://codingai-lec04.pages.dev/lecture.html#ch08-prediction-feedback)。


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


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

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

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


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


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

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

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


<a id="n47-material-1"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N47.html#n47-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="n47-material-2"></a>
[区块原文](https://codingai-lec04.pages.dev/course/N47.html#n47-material-2)


### [Learning Latent Dynamics for Planning from Pixels](https://arxiv.org/abs/1811.04551)

沿一次决策追踪观察、隐状态、候选动作与真实反馈；区分预测结果和执行结果。

先看：模型、在线规划与环境交互部分


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


### [World Models](https://arxiv.org/abs/1803.10122)

辨认表示、动态和行动各自负责什么，理解像素视频不是世界模型唯一的输出接口。

先看：世界模型与控制器部分

