5. Monte Carlo Estimation
动态规划假设环境模型 p(s′,r∣s,a) 已知,因此可以直接计算期望。Monte Carlo(MC)方法走另一条路:不显式建立环境模型,而是通过真实采样得到的回报来估计期望。
1. Model-based 与 Model-free
RL 中的 model(环境模型) 指:给定当前状态 s 和动作 a 后,环境会以多大概率转移到下一状态 s′,并产生奖励 r。完整的模型可以写成:
p(s′,r∣s,a).
它包含两类环境信息:
- 状态转移规律 p(s′∣s,a):执行 a 后到达各个 s′ 的概率;
- 奖励规律:奖励的条件分布,或只使用它的期望
r(s,a)=E[Rt+1∣St=s,At=a]。
| 方法 | 环境模型的情况 | 如何学习/决策 |
|---|
| Model-based | p(s′,r∣s,a) 已知,或者根据样本显式估计出一个模型 | 利用模型预测后继状态和奖励,再通过规划、Bellman 更新或搜索选择动作 |
| Model-free | 不知道,也不显式学习或使用 p(s′,r∣s,a) | 直接从交互样本 (s,a,r,s′) 学习 V(s)、Q(s,a) 或策略 π(a∣s) |
因此,两者的关键区别不是“是否知道策略或价值函数”,而是是否拥有并使用环境的转移与奖励模型。在策略评估问题中,策略 π 可以是已知的,但 Vπ 或 Qπ 仍是待求量;这并不决定方法属于哪一类。
例如,棋类游戏的规则已知,可以根据当前局面推演下一局面,这属于 Model-based。如果智能体不知道转移概率和奖励规则,只能反复与环境交互,再从实际观察到的回报直接估计价值,就是 Model-free。Monte Carlo 属于后者。
一个离散随机变量的期望可以直接由分布计算:
E[X]=x∑xp(x).
如果分布未知,也可以用 N 个独立同分布样本的均值估计:
XˉN=N1i=1∑NXi.
根据大数定律:
XˉNPN→∞E[X].
同时,在样本相互独立且方差有限时:
E[XˉN]=E[X],Var(XˉN)=NVar(X).
展开:样本均值的期望和方差推导
设 X1,X2,…,XN 独立同分布,且:
E[Xi]=μ,Var(Xi)=σ2<∞.样本均值为:
XˉN=N1i=1∑NXi.根据期望的线性性:
E[XˉN]=E[N1i=1∑NXi]=N1i=1∑NE[Xi]=N1⋅Nμ=μ.由于各个样本相互独立,协方差项为 0,所以和的方差等于各项方差之和:
Var(XˉN)=Var(N1i=1∑NXi)=N21i=1∑NVar(Xi)=N21⋅Nσ2=Nσ2.因此,XˉN 的期望始终等于真实期望 μ,而方差会随着样本数 N 增加而减小。
因此样本越多,均值估计越稳定。这就是 MC 方法的统计基础。
2. 两种动作价值表达式
模型已知时,动作价值可以写成一步展开:
qπ(s,a)=r∑p(r∣s,a)r+γs′∑p(s′∣s,a)vπ(s′).
模型未知时,无法直接计算这些概率,但动作价值本身仍然是条件期望:
qπ(s,a)=Eπ[Gt∣St=s,At=a].
其中 episode 的折扣回报为:
Gt=Rt+1+γRt+2+γ2Rt+3+⋯=k=0∑T−t−1γkRt+k+1.
MC 的思路就是多次访问 (s,a),记录每次访问之后的 Gt,再取样本均值。
3. MC 策略评估
在策略 π 下生成多个完整 episode。对每个 (s,a) 保存:
Returns(s, a):观察到的回报集合;
- Q(s,a):这些回报的均值。
批量形式为:
Q(s,a)=N(s,a)1i=1∑N(s,a)Gi(s,a).
实践中无需保存全部历史回报,可以增量更新:
Qn+1(s,a)=Qn(s,a)+n+11[Gn−Qn(s,a)].
若环境非平稳,也可以使用固定步长:
Q(s,a)←Q(s,a)+α[Gt−Q(s,a)].
4. First-visit 与 Every-visit
一个 episode 中,同一个状态或状态—动作对可能出现多次。
4.1 First-visit MC
每个 episode 只使用 (s,a) 第一次出现后的回报:
Gtwhere t=min{k:(Sk,Ak)=(s,a)}.
4.2 Every-visit MC
使用该 episode 中 (s,a) 每一次出现后的回报。
两者在适当条件下都能收敛。区别在于一个 episode 为同一 (s,a) 提供一个样本还是多个相关样本。
5. 倒序计算回报
完整收集一条长度为 T 的轨迹:
S0,A0,R1,S1,A1,R2,…,ST.
从末尾倒序扫描,可以递推计算所有回报:
G←γG+Rt+1.
对于 first-visit MC,只有当 (St,At) 在当前 episode 更早的位置没有出现时才更新:
对每个 episode:τ∼π:S0,A0,R1,…,ST−1,AT−1,RT,ST,G←0,for t=T−1,T−2,…,0:G←Rt+1+γG,if (St,At)∈/{(S0,A0),…,(St−1,At−1)}:N(St,At)←N(St,At)+1,Q(St,At)←Q(St,At)+N(St,At)G−Q(St,At).
6. 从评估到控制
只估计 vπ(s) 不足以在无模型环境中改进策略。Bellman 贪心更新需要比较不同动作,但状态价值的一步展开依赖未知模型:
v(s)=amax[r∑p(r∣s,a)r+γs′∑p(s′∣s,a)v(s′)].
因此 model-free 控制直接估计动作价值 q(s,a)。得到 Q 后即可贪心改进:
a∗(s)∈argamaxQ(s,a).
纯贪心策略为:
π(a∣s)={1,0,a=a∗(s),a=a∗(s).
7. 探索问题与 Exploring Starts
如果一开始就始终选择当前贪心动作,某些 (s,a) 可能永远不会被访问,估计也就无法纠正。
MC Exploring Starts 假设每个 episode 的初始 (S0,A0) 都有非零概率被选中。这样所有状态—动作对最终都有机会获得样本。其控制过程是广义策略迭代:
- 随机选择起始 (S0,A0);
- 按当前策略生成完整 episode;
- 用回报更新 Q(St,At);
- 令策略对新的 Q 贪心;
- 重复以上过程。
Exploring Starts 在理论上直观,但现实系统通常无法任意指定初始状态。因此更常用软策略保证持续探索。
8. ε-greedy 策略
设动作数为 ∣A(s)∣,当前贪心动作为 a∗(s)。ε-greedy 策略定义为:
π(a∣s)=⎩⎨⎧1−ε+∣A(s)∣ε,∣A(s)∣ε,a=a∗(s),a=a∗(s).
它以大概率利用当前最优动作,同时让每个动作保持非零的探索概率。
一个 on-policy MC 控制算法如下:
Q(s,a)←任意初值,N(s,a)←0,π←任意 ε-soft 策略,对每个 episode:τ∼π:S0,A0,R1,…,ST−1,AT−1,RT,ST,G←0,for t=T−1,T−2,…,0:G←Rt+1+γG,if (St,At) 是 first visit:N(St,At)←N(St,At)+1,Q(St,At)←Q(St,At)+N(St,At)G−Q(St,At),a∗(St)∈argamaxQ(St,a),π(⋅∣St)←ε-greedy(a∗(St)).
9. MC 的特点与限制
MC 方法具有以下特点:
- 无模型:只需要环境交互产生的轨迹;
- 非自举:目标 Gt 不依赖当前的 V 或 Q 估计;
- 无偏但方差较高:完整回报包含很多随机奖励与转移;
- 通常是离线更新:必须等 episode 结束后才能得到完整 Gt;
- 主要适合 episodic tasks:持续任务没有自然终点时需要截断或换用其他方法。
MC 用真实完整回报回答“这次最终得到了多少”。下一篇的 TD 方法会把真实的一步奖励与当前估计拼接起来,在 episode 尚未结束时就更新价值。