RSSM 与卡尔曼滤波:相似的思想,不同的世界模型
第一次看到 RSSM(Recurrent State-Space Model,循环状态空间模型)时,会产生一个很自然的感觉:它和卡尔曼滤波都在"根据过去预测现在,再用新观测修正预测"。这个感觉是对的,但还不够精确。
二者真正共享的是一套认识世界的方法,而不是同一套公式:
世界中有一个不能被完全直接看见的状态;系统先根据旧状态和动作预测未来,再根据新观测修正自己的判断;由于信息不完整,系统还要保留对不确定性的描述。
卡尔曼滤波通常把这套方法写成已知的数学模型,并在线计算状态均值与协方差。RSSM 则把其中许多未知关系交给神经网络从数据中学习,并在潜空间里维护可递推、可采样的状态。它们都在回答"现在世界大概是什么样、接下来可能发生什么",但回答所用的语言、证据和保证不同。
想象一个简单场景:一辆车在道路上运动,传感器每隔一段时间提供不完整的观测,系统需要估计车辆状态并预测下一步。
1. 共同起点:真正重要的状态往往看不见
假设车辆的真实状态包含位置、速度、朝向和轮胎侧滑。为了便于书写,把这些量合在一个向量里,记为 xtx_txt,其中下标 ttt 表示第 ttt 个时刻。
传感器给出的观测记为 yty_tyt。它可能是摄像头图像、雷达距离、轮速或它们的组合。观测通常不是完整的 xtx_txt:图像能显示道路外观,却不直接给出精确速度;轮速能反映转动,却可能受到打滑影响。
车辆还会执行动作 utu_tut,例如转向、油门或制动。动作改变车辆状态,但状态变化也受到路面、摩擦和碰撞等因素影响,这些因素未必能被直接观察。
因此系统面对的是一个循环:
text
上一时刻的内部判断
↓ 结合动作,预测状态会怎样变化
当前时刻的预测
↓ 结合新传感器观测,修正预测
当前时刻的更新判断
↓ 等待下一次动作和观测
这个循环中有三个必须分开的对象:
- 真实状态:世界中实际发生的事情,通常不能完整读取;
- 观测:传感器看到的证据,可能有噪声、缺失和歧义;
- 内部信念:系统根据历史推断"状态可能是什么"的表示。
根据历史得到的"当前状态分布"通常称为信念(belief)。世界模型就是一个近似描述"状态如何转移、会产生什么观测和奖励"的模型。卡尔曼滤波和 RSSM 都主要维护第三个对象,差别从"如何表示信念"开始。
2. 先看共同骨架:任何信念更新都在做什么
先不区分具体算法。一次完整的状态估计至少包含四步:
- 用上一时刻的信念和动作,得到当前时刻的预测信念;
- 获得当前观测,并计算它与预测之间的差异;
- 按照对模型和观测的信任程度,修正预测;
- 把修正后的信念交给下一次预测,或用于规划和控制。
如果把"信念"记作 btb_tbt,把动作记作 ut−1u_{t-1}ut−1,把观测记作 yty_tyt,可以写成抽象流程:
bt−1→动作与动态模型bt∣t−1→新观测bt∣t b_{t-1}\xrightarrow{\text{动作与动态模型}}b_{t|t-1}\xrightarrow{\text{新观测}}b_{t|t} bt−1动作与动态模型 bt∣t−1新观测 bt∣t
下标 t∣t−1t|t-1t∣t−1 表示"对时刻 ttt 的预测只使用到 t−1t-1t−1 的信息",t∣tt|tt∣t 表示"已经把时刻 ttt 的观测纳入判断"。
这条链就是本文比较的主轴:
| 共同问题 | 卡尔曼滤波 | RSSM |
|---|---|---|
| 如何表示过去形成的信念 | 物理状态的均值与协方差 | 确定性记忆 hth_tht 与随机潜状态 ztz_tzt |
| 如何产生预测 | 已知动力学和观测模型 | 学习到的循环动力学与 Prior |
| 如何使用新观测 | 创新、Kalman 增益和协方差更新 | Encoder、Posterior 和训练损失 |
| 如何继续向未来 | 更新后的均值与协方差 | 更新后的潜状态,或从 Prior 采样 |
表格中的"对应"表示角色相似,不表示变量、单位和公式相同。后文会先分别走完两种方法,再逐格解释哪些类比成立、哪些类比会误导。
2.1 世界模型不是 AI 专属
到这里可以先记住一个重要结论:"世界模型"描述的是模型承担的预测与仿真角色,不是神经网络的专属名称。 只要模型能根据历史或当前状态以及动作,预测环境未来的状态、观测、奖励或行动后果,并把这些预测用于估计、规划、控制或仿真,解析公式、数值仿真器、滤波器、神经网络和混合模型都可能成为世界模型。
传统方法通常由人显式选择状态变量、方程结构和约束,参数可以来自理论推导、实验标定或系统辨识;学习方法则由人设计表示、网络结构、训练目标和数据范围,再通过优化从数据中拟合参数化函数。可以把两者粗略理解为:前者把更多经验写在"人能读懂的公式"里,后者把更多经验分散在表示、网络权重和训练约束中。混合模型则保留可靠的解析骨架,让学习模型补上难以手写的部分。它们共享"用当前信息预测未来"的目标,但在先验结构、数据依赖、外推方式和可验证保证上并不等价。
从更抽象的函数逼近角度看,显式方程和神经网络都可以视为带参数的映射:速度、加速度、角速度是人选择的坐标,潜张量则是模型学习出的坐标。前者的坐标语义和约束通常预先明确,后者的语义更多由训练任务赋予;因此它们可以承担相似的预测角色,却不代表每个张量都对应某个物理量,或具有同样的可解释性。
3. 卡尔曼滤波:用已知公式维护一个概率信念
3.1 先写出世界怎样运动
最简单的线性状态空间模型把状态变化写成:
xt=Ftxt−1+Btut−1+wt−1 x_t=F_tx_{t-1}+B_tu_{t-1}+w_{t-1} xt=Ftxt−1+Btut−1+wt−1
其中,FtF_tFt 描述旧状态如何自然演化,BtB_tBt 描述动作对状态的影响,ut−1u_{t-1}ut−1 是上一步动作,wt−1w_{t-1}wt−1 是无法精确建模的过程噪声。
传感器观测写成:
yt=Htxt+vt y_t=H_tx_t+v_t yt=Htxt+vt
其中,HtH_tHt 把真实状态投影到传感器能测到的量,vtv_tvt 是观测噪声。假设 www 和 vvv 都近似为零均值高斯噪声,并且它们的协方差 QtQ_tQt、RtR_tRt 已知或已经标定。
这一步的关键不是公式长短,而是建模者已经声明了两件事:状态按什么规律转移,以及状态会以什么方式出现在观测里。
3.2 预测:先相信运动模型
卡尔曼滤波保存估计均值 x^t∣t\hat{x}{t|t}x^t∣t 和协方差 Pt∣tP{t|t}Pt∣t。x^\hat{x}x^ 是最可能的中心位置,PPP 则描述各个状态分量的不确定性和相关性。
还没有看到当前观测 yty_tyt 时,预测为:
x^t∣t−1=Ftx^t−1∣t−1+Btut−1 \hat{x}{t|t-1}=F_t\hat{x}{t-1|t-1}+B_tu_{t-1} x^t∣t−1=Ftx^t−1∣t−1+Btut−1
Pt∣t−1=FtPt−1∣t−1FtT+Qt P_{t|t-1}=F_tP_{t-1|t-1}F_t^T+Q_t Pt∣t−1=FtPt−1∣t−1FtT+Qt
第一式回答"按照运动公式,车现在在哪里";第二式回答"经过这次运动后,我有多不确定"。
3.3 更新:用观测残差拉回预测
系统把真实观测与预测观测比较,得到创新:
νt=yt−Htx^t∣t−1 \nu_t=y_t-H_t\hat{x}_{t|t-1} νt=yt−Htx^t∣t−1
如果 νt\nu_tνt 很大,说明"按模型推测的结果"和"传感器实际看到的结果"不一致。创新协方差为:
St=HtPt∣t−1HtT+Rt S_t=H_tP_{t|t-1}H_t^T+R_t St=HtPt∣t−1HtT+Rt
Kalman 增益为:
Kt=Pt∣t−1HtTSt−1 K_t=P_{t|t-1}H_t^TS_t^{-1} Kt=Pt∣t−1HtTSt−1
最后更新均值与协方差:
x^t∣t=x^t∣t−1+Ktνt \hat{x}{t|t}=\hat{x}{t|t-1}+K_t\nu_t x^t∣t=x^t∣t−1+Ktνt
Pt∣t=(I−KtHt)Pt∣t−1 P_{t|t}=(I-K_tH_t)P_{t|t-1} Pt∣t=(I−KtHt)Pt∣t−1
KtK_tKt 是"相信观测还是相信预测"的精确权衡。如果观测噪声 RtR_tRt 小,系统更相信传感器;如果预测不确定性 Pt∣t−1P_{t|t-1}Pt∣t−1 大,系统也更容易被观测修正。
3.4 手算一个一维例子
先只估计车辆在道路上的纵向位置。预测位置为 101010 米,预测方差为 444;传感器测得 131313 米,测量方差为 111。此时 Ht=1H_t=1Ht=1。
创新:
νt=13−10=3 \nu_t=13-10=3 νt=13−10=3
创新方差:
St=4+1=5 S_t=4+1=5 St=4+1=5
Kalman 增益:
Kt=4/5=0.8 K_t=4/5=0.8 Kt=4/5=0.8
更新位置:
x^t∣t=10+0.8×3=12.4 \hat{x}_{t|t}=10+0.8\times3=12.4 x^t∣t=10+0.8×3=12.4
更新方差为 0.80.80.8。系统没有机械地选择预测值 101010,也没有盲目接受观测值 131313,而是依据两者的不确定性取折中。
4. RSSM:用数据学习同一个信念更新循环
4.1 当公式写不全时,问题发生在哪里
现实中的车辆运动往往不是一个容易精确写出的公式:轮胎侧滑依赖路面材质,碰撞会带来突变,摄像头图像与速度之间的关系又包含复杂的视觉因素。即使我们知道物理上存在规律,也可能没有足够准确的 FtF_tFt、BtB_tBt、HtH_tHt、QtQ_tQt 和 RtR_tRt。
RSSM 不放弃"状态---预测---观测"的框架,而是把难以手写的部分改成可学习函数。它维护一个潜在状态:
st=ht,zt s_t=h_t,z_t st=ht,zt
hth_tht 是确定性记忆:给定参数、旧记忆、旧随机状态和动作后,它的计算结果确定,负责保存较长时间的历史上下文。ztz_tzt 是随机状态:它从一个概率分布中采样,用来表达当前信息不足时的多种可能解释。
这里的"潜在"表示这个状态是模型内部为了完成预测而学出来的压缩表示;它不一定直接等于位置、速度或朝向,也不要求每一维都有人工命名。
4.2 先用历史和动作推进确定性记忆
上一时刻的随机状态和动作先组成输入:
rt=zt−1,ut−1 r_t=z_{t-1},u_{t-1} rt=zt−1,ut−1
循环网络根据旧记忆和这个输入产生新记忆:
ht=fθ(ht−1,zt−1,ut−1) h_t=f_\theta(h_{t-1},z_{t-1},u_{t-1}) ht=fθ(ht−1,zt−1,ut−1)
其中 fθf_\thetafθ 是带参数 θ\thetaθ 的可学习循环函数,实际可以由 GRU、LSTM 或其他序列网络实现。它承担的角色类似卡尔曼预测中的 Ftx^t−1∣t−1+Btut−1F_t\hat{x}{t-1|t-1}+B_tu{t-1}Ftx^t−1∣t−1+Btut−1:都在回答"如果暂时不看新观测,按照已有动态判断,下一步会怎样"。
但二者的输出不能直接画等号:KF 输出的是有物理单位的状态均值和协方差;hth_tht 通常只是高维浮点向量,意义由训练目标共同决定。
4.3 Prior:没有当前观测时,对随机状态的预测
RSSM 再根据 hth_tht 预测随机状态的先验分布:
pθ(zt∣ht) p_\theta(z_t\mid h_t) pθ(zt∣ht)
这个分布称为 Prior(先验)。它只使用历史形成的 hth_tht,不读取当前真实图像。因此在"想象未来"时,系统仍能从 Prior 采样 zt+1z_{t+1}zt+1,继续向前滚动。
如果把 KF 的预测信念理解为"新观测到来前对状态的分布",那么 Prior 具有相似角色;但 KF 的预测通常由已知矩阵和协方差公式得到,RSSM 的 Prior 是神经网络从数据中学出来的概率分布。
4.4 Posterior:看到当前观测后的校正
当前观测先被编码成特征 ete_tet:
et=Encoder(ot) e_t=\operatorname{Encoder}(o_t) et=Encoder(ot)
其中 oto_tot 可以是图像、声音或其他高维观测。随后 Posterior(后验)网络根据历史记忆和当前观测给出:
qϕ(zt∣ht,et) q_\phi(z_t\mid h_t,e_t) qϕ(zt∣ht,et)
这里的 qϕq_\phiqϕ 是带参数 ϕ\phiϕ 的可学习推断网络。它回答"结合刚刚看到的证据,当前随机状态更可能是什么"。
Posterior 与卡尔曼更新有一个重要的思想对应:二者都把新证据纳入旧信念,得到一个更适合继续预测的更新信念。
4.5 KL:让闭眼预测不要偏离睁眼判断
如果训练时每一步都使用 Posterior,模型可以依赖当前观测;但未来想象没有真实图像,只能使用 Prior。于是需要让两者在统计意义上保持接近:
DKL(qϕ(zt∣ht,et) ∥ pθ(zt∣ht)) D_{\mathrm{KL}}\left(q_\phi(z_t\mid h_t,e_t)\,\|\,p_\theta(z_t\mid h_t)\right) DKL(qϕ(zt∣ht,et)∥pθ(zt∣ht))
KL 散度(Kullback--Leibler divergence)衡量两个概率分布的差异。它不是把一次抽样结果改成另一个结果,而是惩罚"只看历史的 Prior"和"看过当前观测的 Posterior"之间的分布差距。
这个过程与卡尔曼滤波的联系在于:两者都让新观测纠正预测,并希望下一轮预测从一个更好的信念出发。差异在于:KF 的校正由概率模型推出闭式增益;RSSM 的校正由 Posterior 网络和训练损失共同塑造。
4.6 RSSM 的一次完整循环
把上面的角色放回车辆运动场景:
text
上一时刻 h_{t-1}, z_{t-1} 和动作 u_{t-1}
↓ 学习到的循环动力学 f_θ
当前确定性记忆 h_t
↓ Prior p_θ(z_t | h_t),得到不看图像的预测
当前观测 o_t
↓ Encoder
观测特征 e_t
↓ Posterior q_φ(z_t | h_t, e_t),得到看过图像的校正
拼接 s_t=[h_t,z_t]
↓ 重建观测、预测奖励、推进下一时刻
对 Prior 和 Posterior 的差异施加 KL 约束
这个状态的生命周期也与 KF 的"递推信念"不同:hth_tht、ztz_tzt 和 sts_tst 通常是一次序列计算中的临时潜变量,真正长期保存的是网络参数;下一批数据到来后,潜状态会重新推断。KF 则通常在传感器在线运行时持续保存当前均值和协方差。
5. 逐项对比:哪些类比成立,哪些地方不能等同
5.1 输入:都需要历史、动作和观测,但输入形态不同
卡尔曼滤波通常直接接收低维数值状态相关的输入,例如控制量、位置测量、速度测量或惯性测量。RSSM 可以接收图像、声音等高维原始观测,但通常先用编码器把它们压缩成特征。
因此二者都需要"动作造成的变化"和"传感器提供的证据",但 KF 的观测模型一般由人写出,RSSM 的编码和观测解释可以由网络学习。
5.2 状态:都保存对世界的内部摘要,但语义不同
| 比较轴 | 卡尔曼滤波 | RSSM |
|---|---|---|
| 状态是什么 | 具有物理含义的向量,例如位置、速度、偏置 | 为预测和控制学出的潜在表示 st=ht,zts_t=h_t,z_tst=ht,zt |
| 是否有固定单位 | 通常有米、米每秒、弧度等单位 | 通常没有预先规定的物理单位 |
| 是否显式表达不确定性 | 均值 x^\hat{x}x^ 与协方差 PPP | 随机潜状态的分布;确定性记忆通常是点值 |
| 状态如何持续 | 在线递推并保存当前信念 | 运行时递推潜状态,训练时更新网络参数 |
所以可以说"ht,zth_t,z_tht,zt 扮演了 KF 状态的角色",但不能说"hth_tht 就是位置、ztz_tzt 就是速度",也不能从潜向量直接读出 KF 意义上的协方差。
5.3 预测:都先不看新观测,但预测器的来源不同
KF 使用 FtF_tFt、BtB_tBt 和噪声协方差传播预测;RSSM 使用 fθf_\thetafθ 和 Prior 网络预测。二者都可以回答"执行这个动作后,下一时刻可能怎样",但 KF 的预测受显式模型约束,RSSM 的预测受训练数据和网络参数约束。
5.4 校正:都吸收新证据,但校正机制不同
KF 显式计算观测残差 νt\nu_tνt,再用 Kalman 增益 KtK_tKt 乘上残差,得到对状态均值的修正;协方差也按照公式更新。
RSSM 通常让 Posterior 网络直接读取当前观测特征,输出新的随机状态分布。它可以被理解为"学习一个从预测信念和观测到更新信念的函数",但不一定存在一个单独的、可解释的增益矩阵。
这正是最容易误解的地方:Posterior 类似 KF 的更新结果,不等于 KF 的更新公式。
5.5 不确定性:都表示"我不完全确定",但表示的对象不同
KF 的协方差回答:位置、速度等连续状态可能偏离均值多少,哪些误差彼此相关。RSSM 的随机潜状态回答:当前可能属于哪些潜在模式,采样不同 ztz_tzt 会得到哪些可能未来。
例如车辆被遮挡,未来可能左转也可能右转。单个高斯有时会把两个峰平均成"直行中间态";离散潜变量或粒子样本更容易保留多个模式。但 RSSM 的模式通常没有直接的物理标签,且多峰表达能力不等于预测一定正确。
5.6 输出:都能支持下一步,但输出用途不完全相同
KF 的主要输出是当前状态估计和不确定性,常被下游定位、控制或传感器融合使用。RSSM 的输出可以是下一潜状态、预测观测、预测奖励和多条想象轨迹,因此特别适合在模型内部进行规划或训练策略。
6. 一个统一的"预测---校正"对照图
把两种方法压缩到同一张图中:
#mermaid-svg-pvAtA2hmhzMDMigA{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-pvAtA2hmhzMDMigA .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-pvAtA2hmhzMDMigA .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-pvAtA2hmhzMDMigA .error-icon{fill:#552222;}#mermaid-svg-pvAtA2hmhzMDMigA .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-pvAtA2hmhzMDMigA .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-pvAtA2hmhzMDMigA .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-pvAtA2hmhzMDMigA .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-pvAtA2hmhzMDMigA .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-pvAtA2hmhzMDMigA .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-pvAtA2hmhzMDMigA .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-pvAtA2hmhzMDMigA .marker{fill:#333333;stroke:#333333;}#mermaid-svg-pvAtA2hmhzMDMigA .marker.cross{stroke:#333333;}#mermaid-svg-pvAtA2hmhzMDMigA svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-pvAtA2hmhzMDMigA p{margin:0;}#mermaid-svg-pvAtA2hmhzMDMigA .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-pvAtA2hmhzMDMigA .cluster-label text{fill:#333;}#mermaid-svg-pvAtA2hmhzMDMigA .cluster-label span{color:#333;}#mermaid-svg-pvAtA2hmhzMDMigA .cluster-label span p{background-color:transparent;}#mermaid-svg-pvAtA2hmhzMDMigA .label text,#mermaid-svg-pvAtA2hmhzMDMigA span{fill:#333;color:#333;}#mermaid-svg-pvAtA2hmhzMDMigA .node rect,#mermaid-svg-pvAtA2hmhzMDMigA .node circle,#mermaid-svg-pvAtA2hmhzMDMigA .node ellipse,#mermaid-svg-pvAtA2hmhzMDMigA .node polygon,#mermaid-svg-pvAtA2hmhzMDMigA .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-pvAtA2hmhzMDMigA .rough-node .label text,#mermaid-svg-pvAtA2hmhzMDMigA .node .label text,#mermaid-svg-pvAtA2hmhzMDMigA .image-shape .label,#mermaid-svg-pvAtA2hmhzMDMigA .icon-shape .label{text-anchor:middle;}#mermaid-svg-pvAtA2hmhzMDMigA .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-pvAtA2hmhzMDMigA .rough-node .label,#mermaid-svg-pvAtA2hmhzMDMigA .node .label,#mermaid-svg-pvAtA2hmhzMDMigA .image-shape .label,#mermaid-svg-pvAtA2hmhzMDMigA .icon-shape .label{text-align:center;}#mermaid-svg-pvAtA2hmhzMDMigA .node.clickable{cursor:pointer;}#mermaid-svg-pvAtA2hmhzMDMigA .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-pvAtA2hmhzMDMigA .arrowheadPath{fill:#333333;}#mermaid-svg-pvAtA2hmhzMDMigA .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-pvAtA2hmhzMDMigA .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-pvAtA2hmhzMDMigA .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pvAtA2hmhzMDMigA .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-pvAtA2hmhzMDMigA .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pvAtA2hmhzMDMigA .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-pvAtA2hmhzMDMigA .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-pvAtA2hmhzMDMigA .cluster text{fill:#333;}#mermaid-svg-pvAtA2hmhzMDMigA .cluster span{color:#333;}#mermaid-svg-pvAtA2hmhzMDMigA div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-pvAtA2hmhzMDMigA .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-pvAtA2hmhzMDMigA rect.text{fill:none;stroke-width:0;}#mermaid-svg-pvAtA2hmhzMDMigA .icon-shape,#mermaid-svg-pvAtA2hmhzMDMigA .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-pvAtA2hmhzMDMigA .icon-shape p,#mermaid-svg-pvAtA2hmhzMDMigA .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-pvAtA2hmhzMDMigA .icon-shape .label rect,#mermaid-svg-pvAtA2hmhzMDMigA .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-pvAtA2hmhzMDMigA .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-pvAtA2hmhzMDMigA .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-pvAtA2hmhzMDMigA :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 过去的信念
动作
新观测
预测
校正
更新后的信念
对于 KF:
text
过去:均值 + 协方差
预测:动力学矩阵传播均值 + 协方差
观测:测量值减去预测测量,得到创新
校正:Kalman 增益 × 创新,更新均值 + 协方差
对于 RSSM:
text
过去:确定性记忆 h + 随机潜状态 z
预测:循环网络推进 h,Prior 预测 z
观测:编码器把当前观测变成特征 e
校正:Posterior 根据 h,e 重新推断 z
约束:用重建、奖励和 KL 让这套循环可预测、可闭眼运行
两段流程的共同动词是"保存、预测、比较、修正、继续";名词和数学机制则不同。
7. 两种方式的选取判断
"公式已知用卡尔曼,公式未知用 RSSM"是一个很好的第一印象,但工程选型至少要先问下面四个问题,之后还要把资源预算和长期行为纳入评估。
7.1 公式是否已知、准确、可计算
如果状态转移和观测关系已知,状态维度较低,噪声也能合理标定,KF、EKF 或 UKF 往往具有更高的数据效率、更好的可解释性和更容易验证的误差行为。
7.2 公式是否只覆盖主体规律
很多系统不是"完全没有公式",而是主体运动学已知,摩擦、滑移、接触、遮挡或传感器偏差难以精确表达。此时更自然的方案是混合模型:解析模型负责物理骨架,学习模型负责未知残差。
7.3 是否有足够数据覆盖未知规律
RSSM 不是因为"世界有规律"就自动知道规律。它需要覆盖足够多的状态、动作、观测和环境变化。若训练数据没有出现急转、打滑或碰撞,模型对这些情况的长期想象可能只是看起来合理的猜测。
7.4 任务更看重灵活性还是保证
需要安全边界、物理守恒、少量样本启动和可解释置信度时,解析或混合模型通常更合适。需要从高维感知中学习隐状态、表达多种未来,并在潜空间中大量尝试策略时,RSSM 更有吸引力。
更准确的规则是:
已知且可计算的部分交给解析模型;未知但可由数据稳定归纳的部分交给学习模型;两者都重要时,优先考虑混合世界模型。
7.5 按约束选择工具:快、好、省
前面已经说明,"世界模型"是承担预测与仿真角色的功能性概念。落到工程选型时,关键不是先问"这是不是 AI",而是问它能否在给定动作后,对环境未来的状态、观测、奖励或行动后果进行可滚动的预测,并在任务中提供足够可靠的结果。对于本文讨论的在线状态估计场景,这通常落在同一条信念循环中:
bt−1→动作与动态模型bt∣t−1→新观测bt∣t b_{t-1}\xrightarrow{\text{动作与动态模型}}b_{t|t-1}\xrightarrow{\text{新观测}}b_{t|t} bt−1动作与动态模型 bt∣t−1新观测 bt∣t
解析状态空间模型、KF/EKF/UKF、粒子滤波、RSSM、Transformer 世界模型、扩散世界模型以及它们的混合形式,都可以在不同层面承担这个角色。纯开环仿真器或生成模型也可以是世界模型,只是它不一定在运行时执行观测更新。这里的"能预测"是一个有用的工程判据,但不是把所有回归器都叫作世界模型:只把当前观测映射到一个标签的网络更像感知器;只在当前时刻融合传感器、没有被用于向未来滚动的 KF,更准确地说是状态估计器。只有当其动态或观测模型被拿来持续预测环境并服务于决策时,它才同时发挥世界模型的作用。
从这个定义出发,传统方法和学习方法的差别,主要是由谁、以什么方式给预测器加入结构和参数化,而不是"一个有参数、另一个没有参数"。前者的参数往往能对应质量、摩擦系数或噪声强度等可标定量;后者的参数通常共同构成一个高维函数,未必能逐个解释,但仍受到架构、损失和先验的约束。
| 组成部分 | 解析模型 | 学习模型 | 混合模型 |
|---|---|---|---|
| 状态与变量 | 人显式选择位置、速度、角度等变量及其单位 | 由数据学习潜在表示,也可以把物理量作为输入 | 物理状态与潜在表示并存 |
| 动态与观测 | 人给出物理定律、经验公式或系统辨识结构,再标定参数 | 在网络结构、损失函数和先验约束下学习参数化函数 | 解析骨架负责已知部分,网络学习残差、噪声或感知映射 |
| 不确定性 | 协方差、噪声模型或粒子集合 | 潜变量分布、采样、集成模型或专门的不确定性输出头 | 合并解析不确定性与学习到的误差 |
| 主要依赖 | 先验结构和参数标定 | 数据覆盖、训练目标和模型容量 | 先验结构与数据共同决定 |
一种常见的混合写法是:
xt+1=fknown(xt,ut)+rθ(xt,ut) x_{t+1}=f_{\mathrm{known}}(x_t,u_t)+r_\theta(x_t,u_t) xt+1=fknown(xt,ut)+rθ(xt,ut)
其中 fknownf_{\mathrm{known}}fknown 负责已知的运动学或物理骨架,rθr_\thetarθ 学习摩擦、滑移、接触等难以精确手写的残差。
因此,可以说两类方法都在用一个参数化预测器近似"世界如何变化"。但这不等于它们在数学和工程性质上完全相同。网络也不是一个单独的"张量":权重张量是参数,激活张量是中间数值,潜状态张量是运行时表示,网络结构与权重共同定义了函数。对 RSSM 而言,hth_tht、ztz_tzt 是运行时的状态表示,网络权重 θ\thetaθ、ϕ\phiϕ 才是模型参数;潜向量的维度是容量和归纳偏置的设计选择,不是可以随意命名的物理量。类似地,不能把任意神经网络张量直接称为协方差:协方差具有明确的坐标、二阶矩和半正定语义。只有当网络输出被明确解释为均值、方差、协方差,或用于构造粒子、集成等不确定性表示,并经过校准验证时,它才有相应的可靠性含义。
这也解释了为什么工程上不必先按"传统"或"AI"贴标签,而应先问哪一种方案能更好地满足目标。可以把"快、好、省"具体化为三组指标:
- 快:单步推理延迟、长时滚动吞吐、内存带宽和规划响应时间;
- 好:一步和长时预测误差、闭环控制效果、不确定性校准、鲁棒性及安全边界;
- 省:训练数据、算力、显存、能耗,以及部署、验证和维护成本。
在这些指标和约束下,解析模型可能胜出,学习模型可能胜出,也可能由混合模型把不同部分交给各自更擅长的工具。真正重要的是预测在目标任务中的有效性,而不是变量是否带有"物理"或"AI"的标签。
7.6 从泰勒降阶到模型压缩:共同的资源---误差权衡
传统模型和学习模型都需要在计算资源与预测误差之间做取舍。一阶泰勒展开可以写成:
f(x+Δx)≈f(x)+J(x)Δx f(x+\Delta x)\approx f(x)+J(x)\Delta x f(x+Δx)≈f(x)+J(x)Δx
其中 J(x)J(x)J(x) 是 fff 在 xxx 处的雅可比矩阵。该近似在某个工作点附近保留局部一阶项、舍弃高阶项,因此计算量较小,但只在局部范围内可靠。学习模型中的蒸馏、剪枝和量化,则分别通过函数近似、稀疏化和低精度表示来降低推理成本。它们的数学操作并不相同,也不能保证相同的误差形状;共同点是都在给定资源预算下,寻找可接受的预测质量。
这里"降阶"减少的通常是每次计算的项数或模型阶数,不一定等同于减少存储参数的数量;压缩学习模型也不一定保持原模型的全部外推性质。
对世界模型而言,降阶或压缩后的模型还必须检查长时滚动和闭环行为。单步误差看起来很小,并不意味着多步想象、控制稳定性或不确定性校准仍然可靠。
8. RSSM 与其他世界模型的简短位置关系
RSSM 只是学习型世界模型中的一种结构。为了突出它与 KF 的差异,只做必要定位:
| 范式 | 核心思想 | 与 RSSM 的主要区别 |
|---|---|---|
| 确定性 RNN | 用一个隐藏向量记住历史并预测下一步 | 没有显式随机状态,多个可能未来容易被压成一个平均结果 |
| VAE/VRNN | 用随机潜变量压缩观测并学习时序变化 | RSSM 更强调"确定性记忆 + 随机状态 + 可闭眼运行的先验/后验分工" |
| Transformer 世界模型 | 用注意力读取较长历史并预测序列 | 记忆机制从循环状态变成长上下文,计算和缓存方式不同 |
| 扩散世界模型 | 通过逐步去噪生成未来图像或潜轨迹 | 多模态和细节生成能力强,但一次预测通常需要更多采样计算 |
| 对象中心模型 | 显式表示车辆、道路、障碍物及其关系 | 把世界拆成对象和交互,RSSM 常把它们压进整体潜状态 |
| 粒子滤波 | 用一组带权样本表示多个可能状态 | 不确定性通过显式样本维护,RSSM 通常用神经分布和摊销推断直接生成潜状态 |
这些范式也可以组合。例如,已知运动学用 EKF,图像中的未知残差用 RSSM;或者用 Transformer 作为 RSSM 的确定性记忆,用扩散模型生成随机未来。世界模型不是一个只能单选的名称,而是对状态表示、动态预测、观测更新和不确定性处理的一组设计取舍。
9. 最终心智模型
卡尔曼滤波
text
给定:物理状态、动力学公式、观测公式、噪声统计
循环:
1. 用公式预测状态均值和协方差
2. 用观测减去预测观测,得到残差
3. 用 Kalman 增益按不确定性加权修正
4. 保存新的均值和协方差
RSSM
text
给定:历史轨迹、观测、动作和训练目标
训练:
1. 学习把观测压缩成潜状态
2. 学习潜状态如何随动作变化
3. 学习不看未来观测的 Prior
4. 学习看当前观测的 Posterior
5. 用重建、奖励和分布对齐约束这些表示
运行:
6. 用 Prior 在潜空间滚动未来,供预测或决策使用
两段伪代码的共同骨架是"维护信念、先预测、再校正、继续滚动";不同之处是,KF 由显式概率模型计算校正,RSSM 由数据训练出潜状态和校正机制。
10. 一句话结论
卡尔曼滤波、RSSM 以及其他解析、学习和混合模型,都可以在合适的使用方式下成为世界模型。它们共享可滚动的"预测---观测---更新"骨架;差异在于状态和不确定性的表示、先验结构、参数化方式、数据依赖、计算成本以及可解释和可验证的保证,而不只是参数数量或"物理量与张量"的名称不同。解析模型把更多变量、方程和约束由人显式给出;学习模型把部分表示和映射交给数据,在人设计的架构、损失和先验下归纳;混合模型则把两者结合起来。
它们最值得类比的不是"某个变量等于某个变量",而是下面这条因果链:
过去信念+动作→预测→新观测→校正后的信念 \text{过去信念}+\text{动作}\rightarrow\text{预测}\rightarrow\text{新观测}\rightarrow\text{校正后的信念} 过去信念+动作→预测→新观测→校正后的信念
面对具体工程问题,应先明确需要预测什么、允许多大误差和资源预算,再选择能实现"快、好、省"的工具:公式可靠的部分交给解析模型,未知但能由数据稳定归纳的部分交给学习模型,两者都重要时采用混合方案。无论使用哪一种方法,都要用数据覆盖、长期预测误差、闭环效果和安全边界检验它,而不能仅凭"它看起来有规律"就相信它。