↓ Skip to main content
  1. Posts/

从马尔可夫性质出发:DP 无后效性、HMM 与 VAE 的知识联想

·4970 words·10 mins
Note: This article is available in Chinese only. 本文暂无英文版本。 View original

起因
#

继续跟着 MIT 6.S191 Lecture 5 学强化学习。上一篇理解了 Return、State Value Function \(V^\pi(s)\) 和 Action Value Function \(Q^\pi(s,a)\)。

接下来要学的是 Bellman Equation。

我之前隐约知道它能把 \(V^\pi(s)\) 写成递归形式——当前状态的长期价值,等于下一步的期望 Reward 加上折扣后下一状态的期望长期价值。但刚准备细看推导时,发现它有一个前提条件:

Markov Property(马尔可夫性质)。

当时的反应是:这个条件在说什么?为什么 Bellman Equation 需要它?

这篇文章不是 Bellman Equation 的推导笔记。我在理解 Markov Property 的过程中,意外地触发了两条跨越不同领域的知识联想。一条联到了十多年前打算法竞赛时熟悉的 DP 无后效性,另一条从 HMM 联到了前段时间学的 VAE。

这篇把这两条联想的来龙去脉记录下来。

Markov Property 到底是什么意思
#

先从一个简单的场景想。

一个角色在地图上移动,依次经过了 A、B、C 三个位置,现在站在 C。下一步向右走到 D 的概率是多少?

如果这个环境满足 Markov Property,那么下一步的转移概率只取决于"当前站在 C"和"选择向右走",跟之前是从 A 还是从 B 到达 C 的没有关系。

用数学写出来:

$$ P(S_{t+1} \mid S_t, A_t, S_{t-1}, A_{t-1}, \ldots) = P(S_{t+1} \mid S_t, A_t) $$

这里 \(S_t\) 是当前状态,\(A_t\) 是当前动作,左边的条件包含了完整的历史,右边只保留了当前状态和动作。等号成立,就是 Markov Property。

拆一下这个公式里每个符号的含义:

  • \(S_t\):当前时刻的状态
  • \(A_t\):当前时刻选择的动作
  • \(S_{t+1}\):下一时刻的状态
  • \(S_{t-1}, A_{t-1}, \ldots\):此前的完整历史

Markov Property 说的是:给定当前状态和动作,未来的状态分布不再依赖更早的历史。

我最开始对这句话有一个误解,以为它是说"未来完全不受过去的影响"。想了一下发现不对——过去的经历当然可以影响未来,但它的影响已经被编码进了当前的状态。只要当前状态足够充分,过去的历史就不再提供额外信息。

这里"足够充分"是关键。看一个反例:

假设地图上有一扇锁着的门,必须持有钥匙才能打开。两个玩家都站在门前(位置相同),但一个之前经过钥匙房间拿了钥匙,另一个没有。

如果状态只记录当前位置,那相同的位置对应完全不同的后续可能——一个能开门,一个不能。Markov Property 不成立。

解决办法是把状态定义得更充分:

$$ S_t = (\text{position}, \text{has\_key}) $$

加上"是否持有钥匙"之后,两个玩家的状态就不一样了。在这个扩展后的状态定义下,Markov Property 重新成立。

总结一下 Markov Property 的几个要点:

  • 它是一个关于条件概率的性质,不是说转移是确定性的——即使满足 Markov Property,下一状态仍然可以是随机的。
  • 它是否成立,取决于状态定义是否充分。同一个问题,换一种状态表示,可能满足也可能不满足。
  • 它不是说"历史不重要",而是说"历史中与预测未来有关的信息,已经被当前状态捕获了"。

等等,这不就是 DP 的无后效性吗
#

理解 Markov Property 之后,我脑子里冒出来一个想法:

这跟算法竞赛里的"无后效性"不是一回事吗?

打了很多年比赛,DP(动态规划)是我最熟悉的算法之一。老师教 DP 时反复强调的一个前提就是"无后效性":一个子问题的最优解确定之后,不会被此前如何到达这个子问题的路径所影响。

最典型的例子:在一个网格上,从左上角走到右下角,求最大路径和。状态定义为 dp[x][y]——从位置 \((x, y)\) 到终点的最优剩余收益。

当我计算 dp[3][4] 时,不需要知道之前是从 (2,4) 向右走过来的,还是从 (3,3) 向下走过来的。只要知道当前在 \((3, 4)\),后续的最优路径就确定了。

但如果增加一个额外条件:路上有一个只能使用一次的特殊能力(比如穿墙),那 dp[x][y] 就不够了——相同位置的两个玩家,一个用过能力,一个没用过,后续可选的路径完全不同。

解决方法是扩展状态:dp[x][y][used]。

DP 无后效性的反例:相同位置,不同历史导致不同后续

到这里就发现了:算法竞赛里通过增加状态维度消除后效性,和概率模型里把状态定义得更充分以满足 Markov Property,思路是一样的。 两者都在回答同一个问题——当前状态是否包含了决定未来所需的全部信息。

不过还是有区别:

  • DP 无后效性通常在确定性环境中讨论,关注的是子问题能否独立求解、状态转移方程能否写出来。
  • Markov Property 是概率论中的条件独立性质,描述的是状态转移概率分布与历史的关系。
  • Markov Property 不保证状态图无环。MDP 的状态可以循环(比如一个来回踱步的 Agent),这种情况下不能像 DAG 上的 DP 那样简单地一遍递推求解。

但在"状态充分性"这个核心思想上,两者确实高度相通。

Markov 这个词为什么这么熟悉
#

第一条联想到这里就结束了。接着出现了第二条。

学 Markov Property 的时候,我觉得"Markov"这个词特别耳熟。回想了一下,想起来了——大概 2017 年接触推荐系统时,听过一个模型叫 Hidden Markov Model(HMM,隐马尔可夫模型)。当时对它的了解仅限于名字,没有深入学过。

既然现在理解了 Markov Property,不如顺便搞清楚 Markov Chain 和 HMM 到底是什么。

先看 Markov Chain(马尔可夫链)。相比 MDP,Markov Chain 更简单——没有 Agent 的动作选择,状态按概率自行转移:

$$ P(S_{t+1} \mid S_t, S_{t-1}, \ldots) = P(S_{t+1} \mid S_t) $$

用一个推荐系统的教学例子。假设用户的兴趣状态可以用三个粗粒度类别表示:科技、体育、娱乐。用户当前主要对科技感兴趣,明天的兴趣转移概率如下(数字是教学假设):

  • 80% 继续对科技感兴趣
  • 15% 转向体育
  • 5% 转向娱乐

每个状态都有类似的转移概率分布,所有出边概率之和等于 1。

Markov Chain 状态转移图:三个兴趣状态之间的概率转移

这就是 Markov Chain——一组状态加上状态之间的转移概率,且转移只依赖当前状态。

注意这里一个容易滑过去的点:即使知道当前状态是"科技",也不能确定下一个状态一定是什么。 我们得到的是一个概率分布,不是一个确定的答案。

到此为止,Markov Chain 的结构很清晰。但有一个问题:

推荐系统真的能直接观测到用户当前的兴趣状态吗?

显然不能。系统能看到的是用户的行为——点了什么文章、看了什么视频、收藏了什么内容。用户真正的兴趣是隐藏的。

这就引出了 HMM。

Hidden Markov Model——状态看不见怎么办
#

HMM 在 Markov Chain 的基础上做了一个重要区分:状态本身不可直接观测。

继续用推荐系统的例子。用户的真实兴趣状态——是主要喜欢科技、体育还是娱乐——系统无法直接读取,这是 Hidden State(隐藏状态),记作 \(Z_t\)。

系统能观测到的是用户的行为——点击 AI 新闻、看篮球视频、刷综艺——这是 Observation(观测),记作 \(O_t\)。

HMM 有两个核心假设。

第一个:Hidden State 之间满足 Markov Property。

$$ P(Z_{t+1} \mid Z_t, Z_{t-1}, \ldots) = P(Z_{t+1} \mid Z_t) $$

用户明天的兴趣只取决于今天的兴趣,不取决于上周的兴趣变化历史。

第二个:当前 Observation 只依赖当前 Hidden State。

给定用户今天的兴趣状态 \(Z_t\),今天的点击行为 \(O_t\) 不再依赖其他时刻的状态或观测。

这两个假设对应 HMM 中的两组概率:

  • Transition Probability(状态转移概率):Hidden State 之间的转移,和 Markov Chain 一样。
  • Emission Probability(发射概率):每个 Hidden State 产生特定 Observation 的概率。
HMM 双层结构:上层 Hidden State 转移,下层 Observation 生成

Emission Probability 有一个容易忽略的含义:观测到某个行为,不能直接断定用户的 Hidden State。一个喜欢科技的用户也可能偶尔点击篮球视频。观测到"点击体育内容",不等于用户的兴趣状态一定是体育。这种不确定性正是 HMM 需要处理的。

还有一个值得注意的事实:Hidden State 满足 Markov Property,但 Observation 序列通常不满足一阶 Markov Property。 因为每个观测背后都有一个隐藏状态在驱动,今天的观测和昨天的观测之间的关系,实际上是通过隐藏状态间的转移间接建立的。直接看 Observation 序列,前后的依赖关系比一阶 Markov 复杂得多。

HMM 还有一系列算法来解决具体问题——比如 Viterbi 算法推断最可能的隐藏状态序列,Baum-Welch 算法从观测数据学习模型参数——但这些不是我这次联想的重点。

HMM 的 Hidden State 和 VAE 的 Latent Variable
#

学到 HMM 的 Hidden State 时,我脑子里又冒出了一个联想。

前段时间学 VAE 的时候,也遇到过一种"看不见的变量"——Latent Variable(潜变量)。

那篇文章里,VAE 假设观测数据 \(x\)(比如一张图片)是由某个潜变量 \(z\) 生成的。\(z\) 不能从数据中直接读出来,但模型假设它存在,并通过它来解释数据的生成过程。VAE 的核心改变是让 Encoder 输出一个概率分布 \(q_\phi(z \mid x)\),而不是一个确定性的点。

于是我的问题是:HMM 的 Hidden State 和 VAE 的 Latent Variable,是同一类东西吗?

是的。

两者都属于 Latent Variable Modeling(潜在变量建模)的思想。核心是一样的:引入一个不能从观测数据中直接读出的随机变量,通过它来解释观测数据的生成过程。

但它们的具体建模结构很不一样。

HMM标准 VAE
潜变量类型通常是离散状态通常是连续向量
时间结构潜变量随时间变化,形成 Markov Chain通常不假设时间序列结构
潜变量之间的关系Markov Transition无特定的潜变量间转移
先验初始状态分布 + 转移矩阵常选 \(p(z) = \mathcal{N}(0, I)\)
从潜变量到观测Emission ProbabilityDecoder \(p_\theta(x \mid z)\)
推断方式Forward-Backward 等精确/近似算法Encoder \(q_\phi(z \mid x)\) 做近似推断
HMM 与 VAE 的潜变量对比

几个容易混淆的点:

  • Latent Variable 不等于高斯分布。标准 VAE 选择高斯先验是一种建模选择,不是 Latent Variable 的定义。HMM 的 Hidden State 就不是高斯的。
  • “Hidden"和"Latent"不代表完全无法推断。HMM 有成套的算法从 Observation 序列推断 Hidden State,VAE 有 Encoder 做近似后验推断。
  • 共享潜变量思想,不代表模型结构相同。 HMM 有时间维度和 Markov 转移,VAE 没有这些约束。不能简单地说 VAE 是"没有时间维度的 HMM”。

这两条联想到这里就完整了。第一条从 Markov Property 联想到 DP 的无后效性,第二条从 Markov 这个术语联想到 HMM,再从 HMM 的 Hidden State 联想到 VAE 的 Latent Variable。两条联想各自独立,不需要合并成一个统一理论。

回到 Bellman Equation
#

两条联想走完,回到最初的问题:为什么 Bellman Equation 需要 Markov Property?

先补一个之前跳过的概念。RL 里的环境通常被建模为 MDP(Markov Decision Process)。相比 Markov Chain,MDP 多了 Agent 的 Action 和 Environment 返回的 Reward——但状态转移仍然满足 Markov Property。

Bellman Expectation Equation 长这样:

$$ V^\pi(s) = \mathbb{E}_\pi\bigl[R_{t+1} + \gamma \, V^\pi(S_{t+1}) \mid S_t = s\bigr] $$

用人话说:状态 \(s\) 在策略 \(\pi\) 下的长期价值,等于下一步期望拿到的 Reward,加上折扣后下一状态的期望长期价值。

这个递归结构跟 DP 的状态转移很像。

但要注意一个数学细节。Return 的递归分解:

$$ G_t = R_{t+1} + \gamma \, G_{t+1} $$

这是代数恒等式——只要 Return 的定义是折扣累加,这个分解就成立,不需要任何额外假设。

真正需要 Markov Property 的地方在于:我们想把 \(\mathbb{E}[G_t \mid S_t = s]\) 写成一个只依赖 \(s\) 的函数 \(V^\pi(s)\)。这要求给定当前状态 \(s\),未来的状态转移和 Reward 不再依赖更早的历史。如果状态表示不够充分——比如上面钥匙的例子——那么同一个 \(s\) 对应的期望 Return 并不唯一,\(V^\pi(s)\) 就无法良好定义。

Markov Property 保证了:当前状态足以决定未来的统计行为,所以长期价值可以压缩为只依赖当前状态的函数,递归计算才成立。

这也是第三章讲的 DP 无后效性在概率框架下的对应——状态充分性使递归分解成为可能。

Bellman Equation 的具体推导和后续的求解方法(Value Iteration、Policy Gradient 等),留给后面单独写。

写在最后
#

把这次学习中的两条联想整理一下。

完整的知识联想路径

第一条:Markov Property → DP 无后效性。 理解 Markov Property 时发现,它和算法竞赛中的无后效性在数学思想上高度相通——都在说"给定充分的当前状态,未来不需要额外的历史信息"。区别在于一个是概率论的条件独立性质,一个是确定性优化的子问题独立性。

第二条:Markov → HMM → Hidden State → VAE Latent Variable。 从"Markov"这个术语联想到 2017 年听过的 HMM。重新理解 HMM 时,发现它的 Hidden State 和前段时间学 VAE 时遇到的 Latent Variable 属于同一类建模思想——引入不可直接观测的随机变量来解释观测数据。

这两条联想的性质不同。第一条是数学概念之间的相似性。第二条先是术语触发的记忆,再是不同模型共享的建模思想。它们不需要被统一成同一个理论框架。

算法竞赛时熟悉的无后效性,2017 年接触推荐系统时听说过的 HMM,最近学生成模型时遇到的 VAE——这些分散在不同时期、不同领域的概念,在这次学 Markov Property 时自然地重新联系了起来。

参考资料
#

Related

从 Return 到 Q-Function:强化学习如何评价一个尚未发生的决策

·10320 words·21 mins
上一篇结尾留了一个问题: 如果一个动作的长期回报要等到几十步甚至更多步之后才能知道,那 Agent 在当前状态下,如何判断不同动作的长期价值? Return 可以衡量一条轨迹的累计收益。但做决策的时候,未来还没有发生——不存在一条可以直接计算的轨迹。那在当前时刻,怎么评价一个 State 甚至一个具体 Action 的长期价值?

从监督学习到强化学习:没有 Label,模型如何学会决策?

·7538 words·16 mins
起因 # 最近开始看 MIT 6.S191 的 Lecture 5——Deep Reinforcement Learning。 过去几个月写了不少笔记,从 RNN 到 Transformer,从 VAE 到 GAN,基本都属于 supervised 或 self-supervised 的范畴。之前梳理训练信号来源的那篇,整理了四种学习范式——supervised、unsupervised、semi-supervised、self-supervised——的核心区别在于训练信号是谁提供的。

GAN 的对抗到底发生在哪里:从 D(G(z)) 到 Distribution Matching

·7620 words·16 mins
上一篇讲完 VAE,走到一条因果链:VAE 通过把 Encoder 的输出从确定点变成概率分布,让 latent space 服从已知 prior,于是可以从 prior 采样、交给 Decoder 生成新样本。 整个过程很精巧,但回头看,它对概率计算的依赖很重:Encoder 参数化 \(q(z|x)\),训练目标里有 KL divergence、有 reconstruction likelihood,每一步都在和 density 打交道。