【NLP】POMDP 与马尔可夫基础

📅 2026/7/22 6:52:19 👁️ 阅读次数 📝 编程学习
【NLP】POMDP 与马尔可夫基础

POMDP 与马尔可夫基础

用于理解 Agent、world model、强化学习与部分可观测决策问题。

一句话总览

马尔可夫性:完整当前状态已经包含预测未来所需的历史。 MDP:Agent 能看见完整状态,因此可依据当前状态选动作。 POMDP:Agent 看不见完整状态,只能用观察、动作和历史推断真实状态。

1. 什么是马尔可夫性?

马尔可夫性最核心的说法是:

在知道当前完整状态的前提下,未来不再依赖更早的历史。

StS_tSt表示时刻ttt的状态,马尔可夫性质写作:

P(St+1∣St,St−1,…,S0)=P(St+1∣St) P(S_{t+1}\mid S_t,S_{t-1},\ldots,S_0)=P(S_{t+1}\mid S_t)P(St+1St,St1,,S0)=P(St+1St)

它不是说历史不重要,而是说有用历史已经被压缩进StS_tSt

例子:走格子

当前位置:第 5 格 动作:向右走一步

若规则固定,下一位置只取决于当前位置和动作,不取决于五分钟前从哪里走来。因为“当前位置”已概括了影响下一步的信息。


2. 马尔可夫链、MDP 与 POMDP

模型有状态有动作Agent 是否看见完整状态
马尔可夫链不涉及决策 Agent
MDP
POMDP否,只看见部分观察

2.1 马尔可夫链

马尔可夫链描述系统自行演化:

今天的天气 → 明天的天气

例如,在一个简化模型中,明天天气只依赖今天天气,而不依赖更早天气。它有状态转移,但没有主动选择动作的 Agent。

2.2 MDP:加入动作与奖励

MDP(Markov Decision Process)是在马尔可夫链上加入决策:

M=(S,A,P,R,γ) \mathcal{M}=(\mathcal{S},\mathcal{A},P,R,\gamma)M=(S,A,P,R,γ)

记号含义
S\mathcal{S}S所有可能的世界状态
A\mathcal{A}A所有可能的动作
P(s′∣s,a)P(s'\mid s,a)P(ss,a)在状态sss执行动作aaa后到达s′s's的概率
R(s,a)R(s,a)R(s,a)该动作的奖励
γ\gammaγ折扣因子,衡量未来奖励的重要性

MDP 的转移假设是:

P(St+1∣St,At,历史)=P(St+1∣St,At)P(S_{t+1}\mid S_t,A_t,\text{历史})=P(S_{t+1}\mid S_t,A_t)P(St+1St,At,历史)=P(St+1St,At)

直观上:完整当前状态加当前动作,就足以决定下一状态的分布。

2.3 POMDP:Agent 看不全世界

POMDP(Partially Observable Markov Decision Process)比 MDP 多了观察:

P=(S,A,P,R,O,Z,γ) \mathcal{P}=(\mathcal{S},\mathcal{A},P,R,\mathcal{O},Z,\gamma)P=(S,A,P,R,O,Z,γ)

新增记号含义
O\mathcal{O}O观察空间,即 Agent 可能看到的信息
Z(o∣s,a)Z(o\mid s,a)Z(os,a)观察模型:真实状态为sss、执行动作后,Agent 看到ooo的概率

这里要区分:

真实状态 st:世界实际是什么样 观察 ot:Agent 当前能看见或读到什么

真实环境仍可以满足马尔可夫性,但 Agent 看不到完整sts_tst,因此只靠当前观察oto_tot无法可靠预测未来。


3. 状态设计决定“是否马尔可夫”

马尔可夫性依赖状态是否包含关键变量。

例如只写:

机器人在厨房;抽屉关闭。

对动作open drawer,结果不确定:

情形 A:抽屉中有钥匙 → 打开后看到钥匙。 情形 B:钥匙已被拿走 → 打开后抽屉为空。

原因是状态遗漏了“钥匙在哪里”。因此它不是充分状态。

若扩充为:

机器人位置;抽屉开闭状态;钥匙位置;门锁状态;Agent 是否持钥匙。

那么“完整状态 + 当前动作”就更接近足以预测未来,问题重新近似满足马尔可夫性。

状态信息足够完整 → 未来只依赖当前状态和动作 → 马尔可夫 状态遗漏关键变量 → 未来仍依赖遗漏的历史 → 对 Agent 而言不马尔可夫

4. 一阶、二阶马尔可夫

通常所说的马尔可夫是“一阶”:

未来只依赖当前状态。

P(St+1∣St,St−1,…)=P(St+1∣St) P(S_{t+1}\mid S_t,S_{t-1},\ldots)=P(S_{t+1}\mid S_t)P(St+1St,St1,)=P(St+1St)

二阶马尔可夫则要求当前和前一状态:

P(St+1∣St,St−1,…)=P(St+1∣St,St−1) P(S_{t+1}\mid S_t,S_{t-1},\ldots)=P(S_{t+1}\mid S_t,S_{t-1})P(St+1St,St1,)=P(St+1St,St1)

在实际建模中,更常见的处理方式不是不断增加“几阶”,而是把必要历史加入状态。例如只记录位置不够时,把“位置 + 速度”作为状态;此时又可用一阶 MDP 表示。


5. belief state:对隐藏状态的概率判断

POMDP 中 Agent 看不见真实状态,需要维护 belief state:

bt(s)=P(st=s∣o1:t,a1:t−1) b_t(s)=P(s_t=s\mid o_{1:t},a_{1:t-1})bt(s)=P(st=so1:t,a1:t1)

含义是:在看到至今全部观察、并知道自己此前做过的动作后,当前真实状态是sss的概率。

例如:

70%:钥匙在抽屉中 20%:钥匙在其他位置 10%:钥匙已被拿走

belief 更新可理解为两步:

预测:旧 belief + 当前动作 → 推测可能的新状态 校正:新观察到来 → 降低与观察不一致的状态概率

形式上:

bt+1(s′)∝Z(ot+1∣s′,at)∑sP(s′∣s,at)bt(s) b_{t+1}(s') \propto Z(o_{t+1}\mid s',a_t) \sum_s P(s'\mid s,a_t)b_t(s)bt+1(s)Z(ot+1s,at)sP(ss,at)bt(s)

不必死记公式。它表达的就是:

旧的世界猜测 + 刚做的动作 + 新收到的观察 → 更新后的世界猜测

若 belief state 足够完整,那么它本身可被当作一个新的“状态”。于是 POMDP 可以转写为 belief-MDP:

当前 belief + 当前动作 → 下一个 belief

6. POMDP 与本文的 LLM world model

From Word to World中,Agent 接收的StS_tSt是文本观察,而不是完整的真实环境状态。

观察:房间里有一个关闭的抽屉。 隐藏信息:抽屉中有什么?钥匙是否已被拿走?门是否锁着?

因此论文中的文本环境天然是 POMDP。

论文的 world model 学习:

(S0,A1,S1,…,At)→St+1 (S_0,A_1,S_1,\ldots,A_t)\rightarrow S_{t+1}(S0,A1,S1,,At)St+1

即根据历史观察、历史动作和当前动作,预测下一观察。它没有显式维护传统 POMDP 方法中的概率分布btb_tbt,而是把类似的状态估计隐式编码在:

长上下文中的历史 + 模型参数中的环境规律
传统 POMDP 方法论文中的 LLM world model
显式维护 belief 概率分布隐式编码在上下文与网络表征中
通常有明确状态变量状态主要是自由文本
belief 更新规则可写出由模型生成行为近似更新
不确定性可较直接分析不确定性更不透明、更难校准

这也解释了 rollout drift:若模型在早期错误判断隐藏状态,后续会把错误预测当作事实继续生成,使动作和状态逐步偏离真实环境。


7. 对 Agent 工程的启示

POMDP 视角下,很多 Agent 失败不一定是不会推理,而是对当前世界状态判断错了。

较实用的系统设计包括:

  1. 保留足够的行动历史和关键状态。
  2. 将重要事实写入外部 memory,而非只依赖上下文窗口。
  3. 在不确定性高时主动调用工具获取新观察。
  4. 对不可逆动作使用预执行验证和规则约束。
  5. 通过真实反馈定期校正内部状态,避免长 rollout 漂移。

可以概括为:

world model:用于内部推演、比较候选动作 真实观察:用于校正隐藏状态与限制模拟漂移

最简复习

马尔可夫性:当前完整状态已携带有用历史。 MDP:Agent 看得到完整状态。 POMDP:Agent 看不全状态,只能利用历史推断。 belief state:Agent 对隐藏真实状态的概率判断。 LLM world model:以自然语言历史和模型表征,隐式近似状态估计与状态转移。