强化学习中的 Monte Carlo¶
Monte Carlo 这个词在不同领域里的外观不完全一样。
在统计物理中,通常先有目标权重:
然后设计一条 Markov chain,使它的平稳分布正比于 \(W(s)\),再用抽到的构型估计平衡平均:
强化学习中的 Monte Carlo 更常出现在另一个问题里:环境如何转移、未来能拿到多少奖励,我们可能并不知道,只能让智能体亲自经历很多条轨迹,然后用这些随机经历估计价值。
强化学习中的核心对象通常是:
两者共同点是:
用样本平均估计期望。
差别是:
| 领域 | 样本 | 估计对象 |
|---|---|---|
| 物理 Monte Carlo | 构型 \(s\) | 分布 \(\pi(s)\) 下的观测平均 \(\langle O\rangle\) |
| RL Monte Carlo | episode / trajectory | 从状态或动作出发的长期回报期望 |
为了把这个区别讲清楚,先从不含动作的马尔可夫过程说起,再加入奖励、动作和策略。
马尔可夫过程¶
马尔可夫过程描述一串随机状态:
核心假设是无后效性:
这不是说过去真的毫无影响,而是说:
如果当前状态 \(S_t\) 已经包含了预测下一步所需的信息,就不需要再显式查看更早历史。
状态定义得越粗,马尔可夫性越可能只是近似;状态定义得越完整,它越可能成立。
两状态天气模型¶
一个两状态天气模型可以写成:
若采用列向量约定,转移矩阵为:
第一列表示今天是晴天时,明天晴天和雨天的概率;第二列表示今天是雨天时,明天晴天和雨天的概率。每一列都必须归一化:
这个矩阵和物理 Monte Carlo 中的一步转移矩阵是同一种数学对象。但立场不同:
| 场景 | 转移矩阵的角色 |
|---|---|
| 天气模型 | 描述一个已经存在的随机系统 |
| 物理 MCMC | 人为设计一个随机系统,使其收敛到目标分布 |
| 强化学习 | 环境和策略共同诱导状态转移 |
生活中可以把马尔可夫状态想成“做决定时保留的信息”。如果要预测一个人明天是否去公司,只记录“今天在家还是在公司”可能太粗;再记录“工作日还是周末”“是否下雨”“是否有会议”,预测就会更可靠。
HMM、MRP 和 MDP¶
从马尔可夫过程出发,常见扩展有三类。
隐马尔可夫模型¶
隐马尔可夫模型 hidden Markov model, HMM 中,系统内部有真实状态 \(S_t\),但我们不能直接看到它,只能看到观测 \(O_t\)。
例如:
HMM 常见问题是:
- 根据观测序列推断隐藏状态。
- 预测下一次观测。
- 估计模型参数。
这属于 推断、统计推断与信念传播 中的统计推断问题。
马尔可夫奖励过程¶
马尔可夫奖励过程 Markov reward process, MRP 在状态转移之外加入奖励:
这时问题从:
变成:
这已经接近强化学习中的价值函数。
马尔可夫决策过程¶
马尔可夫决策过程 Markov decision process, MDP 在奖励过程上再加入动作:
动作使问题发生本质变化。没有动作时,系统怎么演化由环境决定;有动作时,智能体的选择会改变下一状态分布和奖励分布。
强化学习的核心问题就是:
在随机环境中学习如何选择动作,使长期回报最大。
即时奖励、长期回报和价值函数¶
奖励 \(R_{t+1}\) 是第 \(t\) 步动作之后立刻收到的反馈。它可以是游戏得分、机器人能耗、投资收益,也可以是人为设计的训练信号。
即时奖励只回答:
但决策真正关心的是:
因此定义回报:
折扣因子满足:
\(\gamma\) 的作用有两层:
- 数学上,让无限长回报在很多情况下保持有限。
- 建模上,表达对未来的重视程度。
\(\gamma\) 接近 1 时,智能体更愿意为了长远收益忍受短期损失;\(\gamma\) 较小时,智能体更看重眼前奖励。
价值函数就是回报的条件期望:
一个状态好,不是因为它看起来舒服,而是因为从这个状态出发,未来回报的平均值高。
Bellman 期望方程¶
回报可以递归拆开:
如果没有动作,只有状态转移,对条件 \(S_t=s\) 取期望,得到:
其中:
这就是 MRP 的 Bellman 期望方程。
它说的是:
当前状态价值 = 当前平均即时奖励 + 下一状态价值的折扣平均。
这个公式也解释了为什么价值函数不是单纯局域量。一个状态本身可能没有即时奖励,但它通向很多高价值状态,因此仍然可能有高价值。反过来,一个状态可能马上给奖励,但之后容易进入糟糕状态,长期价值也未必高。
MDP 的基本元素¶
MDP 可以写成:
其中:
| 符号 | 含义 |
|---|---|
| \(\mathcal S\) | 状态空间 |
| \(\mathcal A\) | 动作空间 |
| \(P\) | 转移概率 |
| \(R\) | 奖励函数 |
| \(\gamma\) | 折扣因子 |
一次交互过程为:
- 环境给出当前状态 \(S_t=s\)。
- 智能体根据策略选择动作 \(A_t=a\)。
- 环境返回奖励 \(R_{t+1}\)。
- 环境转移到新状态 \(S_{t+1}=s'\)。
在 MDP 中,转移概率依赖动作:
奖励也可以依赖状态和动作:
策略是条件分布:
给定策略后,MDP 变成 MRP¶
给定策略以后,动作被策略随机化掉,MDP 可以看成一个 MRP。
有效转移概率为:
有效即时奖励为:
于是策略 \(\pi\) 下的状态价值函数满足:
这条式子要分两层读:
- 括号内是“如果在状态 \(s\) 固定选择动作 \(a\),会得到多少期望价值”。
- 外面的 \(\sum_a\pi(a\mid s)\) 是“策略会以不同概率选择不同动作,因此还要对动作求平均”。
动作价值函数¶
除了状态价值函数,还经常定义动作价值函数:
\(V_\pi(s)\) 评价:
\(Q_\pi(s,a)\) 评价:
两者关系是:
动作价值函数满足:
在控制问题中,\(Q\) 函数尤其重要。若已经知道每个动作的 \(Q(s,a)\),就可以直接比较动作好坏:
\(V(s)\) 告诉我们“这个状态总体好不好”;\(Q(s,a)\) 直接告诉我们“在这里该选哪个动作”。
强化学习中的 Monte Carlo 估计¶
如果环境模型 \(P^a_{ss'}\) 和 \(R_s^a\) 都已知,可以通过 Bellman 方程求解价值函数。但强化学习经常面对模型未知的情形:智能体不知道完整转移概率,只能通过交互得到样本轨迹。
一条 episode 可以写成:
若在这条轨迹中某一时刻访问了状态 \(s\),可以从那一刻开始计算实际回报 \(G_t\)。多次访问状态 \(s\) 后,用平均值估计:
Monte Carlo 估计为:
同样也可以估计动作价值:
其中 \(N(s)\) 是状态 \(s\) 被用于估计的次数,\(N(s,a)\) 是状态动作对 \((s,a)\) 被用于估计的次数。
这就是强化学习中 Monte Carlo 方法的核心:
不需要显式知道转移矩阵,也不需要写出 Bellman 方程的每一项;只要能采样完整轨迹,就能用实际回报的平均值估计价值。
这和普通 Monte Carlo 积分完全一致。若:
而我们能采样:
则用:
估计 \(\mu\)。强化学习里只是把随机变量 \(X\) 换成了“从某个状态或状态动作对出发之后得到的整段回报”。
First-visit 和 Every-visit¶
一个 episode 中,同一个状态可能出现多次。例如走迷宫时,智能体可能绕圈,反复回到同一个格子。此时 Monte Carlo 估计有两种常见做法。
First-visit Monte Carlo 只使用每条 episode 中第一次访问状态 \(s\) 后的回报。若一条轨迹里状态 \(s\) 出现很多次,也只记录第一次。
Every-visit Monte Carlo 使用每一次访问状态 \(s\) 后的回报。若一条轨迹里状态 \(s\) 出现三次,就记录三份回报。
在满足适当条件时,两者都可以收敛到真实价值。区别主要在样本相关性和实现习惯:
| 方法 | 特点 |
|---|---|
| First-visit MC | 样本定义更干净 |
| Every-visit MC | 利用更多数据,但同一 episode 内多次访问相关性更强 |
这和物理 Monte Carlo 的数据处理有相似之处。样本多不自动等于信息多。如果相邻样本强相关,误差会被低估。强化学习中的轨迹样本也有相关性,尤其当策略稳定、环境混合慢、episode 很长时,回报样本之间可能高度相关。
Monte Carlo 和 TD 的区别¶
Monte Carlo 方法通常等到 episode 结束,拿到完整回报 \(G_t\) 后再更新价值估计。优点是概念直接,目标就是真实回报;缺点是必须等完整 episode 结束,而且回报方差可能很大。
时间差分方法 temporal-difference learning, TD 不等到 episode 结束,而是用一步之后的估计值来更新当前估计。例如 TD(0) 使用:
作为 \(V(S_t)\) 的目标。这种做法称为 bootstrap:用已有估计帮助更新新的估计。
两者区别可以概括为:
生活类比是评估一条旅行路线:
- Monte Carlo:完整走完路线之后再打分。
- TD:走到下一站时,根据已有的下一站评分先更新当前判断。
前者更直接但反馈慢,后者反馈快但依赖当前估计的准确性。
探索与利用¶
在物理 Monte Carlo 中,ergodicity 要求 Markov chain 能访问所有重要构型。强化学习中也有对应问题:智能体必须充分探索动作空间,否则许多状态动作对从未被尝试,价值估计就没有数据来源。
如果一个人每天都走同一条路上班,就很难知道另一条路是否更快。即使当前路线看起来不错,也可能只是因为从未试过更好的选择。
强化学习称这类矛盾为探索与利用的权衡:
| 方向 | 含义 |
|---|---|
| 利用 exploitation | 选择当前看起来最好的动作,获得较高即时收益 |
| 探索 exploration | 尝试不确定的动作,收集信息,可能发现更好的长期策略 |
常见的简单策略是 \(\epsilon\)-greedy。以 \(1-\epsilon\) 的概率选择当前估计最好的动作,以 \(\epsilon\) 的概率随机探索:
它不是最精致的探索策略,但清楚表达了基本思想:如果完全不探索,价值估计可能永远停在局部经验里;如果只探索不利用,又无法把已经学到的信息转化为表现。
与 MCMC 的关系和区别¶
强化学习中的 Monte Carlo 和 MCMC 都使用随机过程,但目标不同。
MCMC 的典型目标是构造一个以 \(\pi(s)\) 为平稳分布的链:
然后用链上的样本估计:
强化学习中的 Monte Carlo 价值估计通常不是为了让状态分布收敛到某个预设 Boltzmann 权重,而是为了估计策略诱导轨迹上的回报期望:
给定策略 \(\pi\) 后,MDP 确实会诱导出一条 Markov chain;如果这个链有平稳分布,也可以分析长期访问频率。但强化学习还多了奖励、动作和策略改进。它关心的不只是“会在哪里停留”,还关心“怎样行动能让长期回报变大”。
两条主线可以写成:
同样叫 Markov chain,物理里常强调 detailed balance、平稳分布和自关联时间;强化学习里常强调策略、回报、Bellman 方程、探索和控制。底层概率语言相通,但问题目标不同。
一个小例子:学生的一天¶
考虑一个学生每天晚上决定如何安排时间。状态可以简化为:
动作可以是:
若精力充足时选择学习,今晚可能掌握知识,得到正奖励;但也可能因为学习太久,第二天变疲惫。若非常疲惫时继续学习,短期看似努力,奖励可能不高,甚至导致第二天状态更差。若选择休息,今晚学习收益少,但第二天更可能精力充足。
这个例子体现了 MDP 的核心结构:
- 同一个状态下有多个动作可选。
- 不同动作产生不同即时奖励。
- 不同动作改变下一状态的概率。
- 当前最贪心的动作不一定有最高长期价值。
如果学生不知道哪种安排最好,可以试很多天,记录每晚选择之后接下来几天的综合效果。每次完整经历都是一条样本轨迹。把从某个状态和动作出发的总回报平均起来,就得到对 \(Q(s,a)\) 的 Monte Carlo 估计。之后可以倾向于选择估计值更高的动作,同时保留少量探索。
这个例子虽然简单,但已经包含强化学习的主要矛盾:学习不是只看一步奖励,而是要在不确定的动态系统中,通过反复试验估计长期后果。
和 NNQS / VMC 的对照¶
本站还关心 VMC 和 NNQS。它们和 RL Monte Carlo 有一个共同结构:
但对象不同:
| 问题 | 样本 | 估计量 | 优化方向 |
|---|---|---|---|
| VMC / NNQS | 构型 (x\sim | \psi_\theta(x) | ^2) |
| RL Monte Carlo | episode \(\tau\sim\pi_\theta\) | 回报期望 \(\mathbb E[G_t]\) | 最大化回报 |
| 物理 MCMC | 构型 \(s\sim\pi(s)\) | 观测量平均 \(\langle O\rangle\) | 通常用于估计,不一定直接优化策略 |
因此,看到 Monte Carlo 时需要先问清楚三件事:
- 样本是什么?
- 期望是什么?
- 随机过程由谁定义?
如果样本是物理构型,目标通常是平衡平均;如果样本是环境轨迹,目标通常是回报期望;如果样本来自当前神经网络波函数,目标可能是能量或自由能。
小结¶
强化学习中的 Monte Carlo 可以理解为:
在一个由状态、动作、奖励和转移组成的随机环境中,用实际采样到的完整轨迹估计价值函数。
它和物理 Monte Carlo 共享随机过程和期望估计的语言,但核心对象不同。物理 Monte Carlo 的重点是构造正确的采样分布;强化学习 Monte Carlo 的重点是估计策略带来的长期回报,并为策略改进提供依据。
这个区分清楚后,马尔可夫过程、奖励过程、MDP、Bellman 方程、Monte Carlo 估计、TD 方法和探索利用之间的关系会自然很多。