World Model:从“学一个世界”到“学对决策有用的未来”——一次问题演进记录
世界应该被表示成什么? 未来到底应该预测什么? 预测未来以后,怎么把它变成决策? 一个模型需要多像真实世界,才足够支持 planning / control? 0. 最开始:我对 World Model 的朴素理解 最开始其实可以把 World Model 写得非常简单: $$ \text{observation} \rightarrow \text{state representation} \rightarrow \text{dynamics} \rightarrow \text{decision} $$如果是真实状态完全可见的 MDP,我们会写: $$ p(s_{t+1}\mid s_t,a_t) $$然后 policy 根据当前状态做决策: $$ \pi(a_t\mid s_t) $$但真实机器人、视觉控制等问题里,我们通常只能看到 observation: $$ o_t $$并不知道真正的环境状态 $s_t$。于是一个自然的问题是: 能不能从观测中学出一个内部状态 $z_t$,再在这个内部状态上学习世界如何变化? 于是最基本的形式变成: $$ o_t\rightarrow z_t $$$$ (z_t,a_t)\rightarrow z_{t+1} $$$$ z_t\rightarrow a_t $$现在回头看,后面的很多论文其实都是在修改这三个箭头。 1. World Models(2018):先学一个可以“做梦”的世界 论文:David Ha, Jürgen Schmidhuber, World Models, 2018 这是最适合拿来当起点的一篇。 它把整个系统拆成三个非常直观的模块: $$ \boxed{ \text{VAE} + \text{MDN-RNN} + \text{Controller} } $$也就是论文里常说的: ...