2.4 贝尔曼方程与蒙特卡洛方法
在马尔可夫决策过程(MDP)中,一个智能体在时间步 ttt 处于状态 St=sS_t=sSt=s,选择动作 At=aA_t=aAt=a,获得即时奖励 RtR_tRt(或写作 r(s,a)r(s,a)r(s,a)),并以转移概率 p(s′∣s,a)p(s'|s,a)p(s′∣s,a) 到达下一状态 St+1=s′S_{t+1}=s'St+1=s′。策略 π(a∣s)\pi(a|s)π(a∣s
2.4 贝尔曼方程(Bellman Equation)与蒙特卡洛方法(Monte-Carlo Methods)
在马尔可夫决策过程(MDP)中,一个智能体在时间步 ttt 处于状态 St=sS_t=sSt=s,选择动作 At=aA_t=aAt=a,获得即时奖励 RtR_tRt(或写作 r(s,a)r(s,a)r(s,a)),并以转移概率 p(s′∣s,a)p(s'|s,a)p(s′∣s,a) 到达下一状态 St+1=s′S_{t+1}=s'St+1=s′。策略 π(a∣s)\pi(a|s)π(a∣s) 表示在状态 sss 选择动作 aaa 的概率。
为了描述“从某个状态出发,长期能获得多少回报”,引入折扣回报(return):
Gt=∑k=0∞γkRt+k G_t=\sum_{k=0}^{\infty}\gamma^k R_{t+k} Gt=k=0∑∞γkRt+k
其中折扣因子 γ∈[0,1)\gamma \in [0,1)γ∈[0,1) 控制“未来奖励”的重要程度:γ\gammaγ 越大,越重视长期收益。
1. 状态价值函数与动作价值函数
**状态价值函数(State-Value Function)**定义为:在策略 π\piπ 下,从状态 sss 出发的期望回报:
Vπ(s)=Eπ[Gt∣St=s] V^{\pi}(s)=\mathbb{E}_{\pi}[G_t|S_t=s] Vπ(s)=Eπ[Gt∣St=s]
**动作价值函数(Action-Value Function)**定义为:在策略 π\piπ 下,从状态 sss 先执行动作 aaa,之后继续按策略 π\piπ 行动的期望回报:
Qπ(s,a)=Eπ[Gt∣St=s,At=a] Q^{\pi}(s,a)=\mathbb{E}_{\pi}[G_t|S_t=s, A_t=a] Qπ(s,a)=Eπ[Gt∣St=s,At=a]
二者之间有一个关键关系:Vπ(s)V^{\pi}(s)Vπ(s) 是在状态 sss 下对动作价值按策略概率的期望:
Vπ(s)=∑a∈Aπ(a∣s)Qπ(s,a) V^{\pi}(s)=\sum_{a\in \mathcal{A}}\pi(a|s)Q^{\pi}(s,a) Vπ(s)=a∈A∑π(a∣s)Qπ(s,a)
直观理解:如果你在 sss 会随机选动作,那么“状态价值”就是这些动作价值的平均(加权平均)。
2. 贝尔曼期望方程(Bellman Expectation Equation)
贝尔曼方程的核心是把“长期回报”拆成“当前一步 + 下一步之后的长期回报”。
从回报定义出发:
Gt=Rt+γGt+1 G_t = R_t + \gamma G_{t+1} Gt=Rt+γGt+1
对策略 π\piπ 下的期望取值,并条件在 St=sS_t=sSt=s:
Vπ(s)=Eπ[Rt+γVπ(St+1)∣St=s] V^{\pi}(s)=\mathbb{E}_{\pi}[R_t+\gamma V^{\pi}(S_{t+1})|S_t=s] Vπ(s)=Eπ[Rt+γVπ(St+1)∣St=s]
把期望展开成对动作与下一状态的求和,就得到常见的显式形式:
Vπ(s)=∑a∈Aπ(a∣s)(r(s,a)+γ∑s′∈Sp(s′∣s,a)Vπ(s′)) V^{\pi}(s)=\sum_{a\in\mathcal{A}}\pi(a|s)\left(r(s,a)+\gamma\sum_{s'\in\mathcal{S}}p(s'|s,a)V^{\pi}(s')\right) Vπ(s)=a∈A∑π(a∣s)(r(s,a)+γs′∈S∑p(s′∣s,a)Vπ(s′))
这条公式表达了:
- 先按 π(a∣s)\pi(a|s)π(a∣s) 选择动作 aaa;
- 获得即时奖励 r(s,a)r(s,a)r(s,a);
- 再按环境转移 p(s′∣s,a)p(s'|s,a)p(s′∣s,a) 到 s′s's′;
- 从 s′s's′ 继续按同一策略获得 Vπ(s′)V^{\pi}(s')Vπ(s′),并折扣 γ\gammaγ。
同理,动作价值函数也满足贝尔曼期望方程:
Qπ(s,a)=Eπ[Rt+γQπ(St+1,At+1)∣St=s,At=a] Q^{\pi}(s,a)=\mathbb{E}_{\pi}[R_t+\gamma Q^{\pi}(S_{t+1},A_{t+1})|S_t=s,A_t=a] Qπ(s,a)=Eπ[Rt+γQπ(St+1,At+1)∣St=s,At=a]
展开为可计算的求和形式:
Qπ(s,a)=r(s,a)+γ∑s′∈Sp(s′∣s,a)∑a′∈Aπ(a′∣s′)Qπ(s′,a′) Q^{\pi}(s,a)=r(s,a)+\gamma\sum_{s'\in\mathcal{S}}p(s'|s,a)\sum_{a'\in\mathcal{A}}\pi(a'|s')Q^{\pi}(s',a') Qπ(s,a)=r(s,a)+γs′∈S∑p(s′∣s,a)a′∈A∑π(a′∣s′)Qπ(s′,a′)
这里出现的两层求和分别对应:
- 由 (s,a)(s,a)(s,a) 转移到下一状态 s′s's′;
- 在下一状态 s′s's′ 按策略选择下一动作 a′a'a′。
3. 用一个小例子理解贝尔曼期望方程
考虑一个非常小的 MDP:
- 状态集合:S={s0,s1}\mathcal{S}=\{s_0, s_1\}S={s0,s1}
- 动作集合:A={a0,a1}\mathcal{A}=\{a_0,a_1\}A={a0,a1}
- 折扣因子:γ=0.9\gamma=0.9γ=0.9
环境动力学(只描述关键部分):
- 在 s0s_0s0:
- 选 a0a_0a0:得到奖励 r(s0,a0)=1r(s_0,a_0)=1r(s0,a0)=1,并确定转移到 s1s_1s1(即 p(s1∣s0,a0)=1p(s_1|s_0,a_0)=1p(s1∣s0,a0)=1)
- 选 a1a_1a1:得到奖励 r(s0,a1)=0r(s_0,a_1)=0r(s0,a1)=0,并确定留在 s0s_0s0(即 p(s0∣s0,a1)=1p(s_0|s_0,a_1)=1p(s0∣s0,a1)=1)
- 在 s1s_1s1:无论选什么动作,都得到奖励 000 并留在 s1s_1s1(吸收状态)
给定策略 π\piπ:
- 在 s0s_0s0:π(a0∣s0)=0.5, π(a1∣s0)=0.5\pi(a_0|s_0)=0.5,\ \pi(a_1|s_0)=0.5π(a0∣s0)=0.5, π(a1∣s0)=0.5
- 在 s1s_1s1:动作无关紧要
用贝尔曼期望方程写 Vπ(s1)V^{\pi}(s_1)Vπ(s1):
Vπ(s1)=∑aπ(a∣s1)(0+γ⋅Vπ(s1))=γVπ(s1) V^{\pi}(s_1)=\sum_{a}\pi(a|s_1)\left(0+\gamma\cdot V^{\pi}(s_1)\right)=\gamma V^{\pi}(s_1) Vπ(s1)=a∑π(a∣s1)(0+γ⋅Vπ(s1))=γVπ(s1)
由于 γ<1\gamma<1γ<1,唯一解是:
Vπ(s1)=0 V^{\pi}(s_1)=0 Vπ(s1)=0
再写 Vπ(s0)V^{\pi}(s_0)Vπ(s0):
Vπ(s0)=∑a∈{a0,a1}π(a∣s0)(r(s0,a)+γ∑s′p(s′∣s0,a)Vπ(s′)) V^{\pi}(s_0)=\sum_{a\in\{a_0,a_1\}}\pi(a|s_0)\left(r(s_0,a)+\gamma\sum_{s'}p(s'|s_0,a)V^{\pi}(s')\right) Vπ(s0)=a∈{a0,a1}∑π(a∣s0)(r(s0,a)+γs′∑p(s′∣s0,a)Vπ(s′))
代入:
- 对 a0a_0a0:r=1r=1r=1,转移到 s1s_1s1,所以后续价值是 Vπ(s1)=0V^{\pi}(s_1)=0Vπ(s1)=0
- 对 a1a_1a1:r=0r=0r=0,转移到 s0s_0s0,后续价值是 Vπ(s0)V^{\pi}(s_0)Vπ(s0)
得到:
Vπ(s0)=0.5(1+γ⋅0)+0.5(0+γVπ(s0)) V^{\pi}(s_0)=0.5(1+\gamma\cdot 0)+0.5(0+\gamma V^{\pi}(s_0)) Vπ(s0)=0.5(1+γ⋅0)+0.5(0+γVπ(s0))
化简:
Vπ(s0)=0.5+0.5γVπ(s0) V^{\pi}(s_0)=0.5+0.5\gamma V^{\pi}(s_0) Vπ(s0)=0.5+0.5γVπ(s0)
移项:
(1−0.5γ)Vπ(s0)=0.5 (1-0.5\gamma)V^{\pi}(s_0)=0.5 (1−0.5γ)Vπ(s0)=0.5
因此:
Vπ(s0)=0.51−0.5γ=0.51−0.45=0.50.55≈0.9091 V^{\pi}(s_0)=\frac{0.5}{1-0.5\gamma}=\frac{0.5}{1-0.45}=\frac{0.5}{0.55}\approx 0.9091 Vπ(s0)=1−0.5γ0.5=1−0.450.5=0.550.5≈0.9091
这个结果的含义非常直观:在 s0s_0s0 你有一半概率直接拿到 1 并进入零价值的吸收状态;另一半概率原地“拖延”,未来仍有机会拿到 1,但被折扣衰减。
4. 贝尔曼最优方程(Bellman Optimality Equation)
当目标从“评估给定策略 π\piπ”变为“寻找最优策略”时,需要定义最优价值函数:
最优状态价值函数
V∗(s)=maxπVπ(s),s∈S V^*(s)=\max_{\pi} V^{\pi}(s),\quad s\in\mathcal{S} V∗(s)=πmaxVπ(s),s∈S
最优动作价值函数
Q∗(s,a)=maxπQπ(s,a),s∈S,a∈A Q^*(s,a)=\max_{\pi} Q^{\pi}(s,a),\quad s\in\mathcal{S},a\in\mathcal{A} Q∗(s,a)=πmaxQπ(s,a),s∈S,a∈A
最优性的关键在于:
如果从当前状态开始总是做“当下最优”的决策,并且以后每一步也都继续做最优决策,那么得到的价值就是最优价值。
因此最优状态价值满足:
V∗(s)=maxa∈A{r(s,a)+γ∑s′∈Sp(s′∣s,a)V∗(s′)} V^{*}(s)=\max_{a\in\mathcal{A}}\left\{r(s,a)+\gamma\sum_{s'\in\mathcal{S}}p(s'|s,a)V^{*}(s')\right\} V∗(s)=a∈Amax{r(s,a)+γs′∈S∑p(s′∣s,a)V∗(s′)}
最优动作价值满足:
Q∗(s,a)=r(s,a)+γ∑s′∈Sp(s′∣s,a)maxa′∈AQ∗(s′,a′) Q^{*}(s,a)=r(s,a)+\gamma\sum_{s'\in\mathcal{S}}p(s'|s,a)\max_{a'\in\mathcal{A}}Q^{*}(s',a') Q∗(s,a)=r(s,a)+γs′∈S∑p(s′∣s,a)a′∈AmaxQ∗(s′,a′)
这里的 max\maxmax 把“对策略的期望”替换成“对动作的最优选择”。
5. 最优策略(Optimal Policy)
通常最优策略可能不唯一(多个动作都能达到同样的最优值时),但最优价值函数是唯一的。
如果已知 Q∗(s,a)Q^*(s,a)Q∗(s,a),可以构造一个确定性最优策略:
π∗(s)=argmaxa∈AQ∗(s,a) \pi^*(s)=\arg\max_{a\in\mathcal{A}}Q^*(s,a) π∗(s)=arga∈AmaxQ∗(s,a)
最优价值函数之间还有两个常用关系:
Q∗(s,a)=r(s,a)+γ∑s′∈Sp(s′∣s,a)V∗(s′) Q^*(s,a)=r(s,a)+\gamma\sum_{s'\in\mathcal{S}}p(s'|s,a)V^*(s') Q∗(s,a)=r(s,a)+γs′∈S∑p(s′∣s,a)V∗(s′)
以及
V∗(s)=maxa∈AQ∗(s,a) V^*(s)=\max_{a\in\mathcal{A}}Q^*(s,a) V∗(s)=a∈AmaxQ∗(s,a)
直观解释:
- Q∗(s,a)Q^*(s,a)Q∗(s,a):先做 aaa 的即时奖励 + 转移后在下一状态“按最优方式继续”的折扣期望
- V∗(s)V^*(s)V∗(s):在当前状态从所有动作里挑一个能把长期回报做到最大的动作
蒙特卡洛方法(Monte-Carlo Methods)
蒙特卡洛方法是一类“用随机采样估计期望”的方法。只要目标可以表示为某种期望(Expectation),就可以通过大量采样求平均来近似它。
1. 一个直观例子:用随机点估计圆面积
在边长为 1 的正方形内随机采样点,圆为内切圆(半径 0.50.50.5)。
若采样点均匀分布,则:
- 落在圆内的概率 ≈\approx≈ 圆面积 / 正方形面积
- 用点数比例近似面积比
因此:
圆的面积正方形的面积≈落在圆内的点数总点数 \frac{\text{圆的面积}}{\text{正方形的面积}}\approx \frac{\text{落在圆内的点数}}{\text{总点数}} 正方形的面积圆的面积≈总点数落在圆内的点数
这个例子体现了蒙特卡洛的核心:用“频率”逼近“概率”,再用“概率”逼近“几何量/期望”。
2. 用蒙特卡洛估计状态价值
在强化学习中,状态价值是一个期望回报:
Vπ(s)=Eπ[Gt∣St=s] V^{\pi}(s)=\mathbb{E}_{\pi}[G_t|S_t=s] Vπ(s)=Eπ[Gt∣St=s]
蒙特卡洛方法的思路是:
从状态 sss 出发,在策略 π\piπ 下运行很多次(采样很多条轨迹),得到多次回报 Gt(i)G_t^{(i)}Gt(i),用样本均值估计期望:
Vπ(s)≈1N∑i=1NGt(i) V^{\pi}(s)\approx \frac{1}{N}\sum_{i=1}^{N}G_t^{(i)} Vπ(s)≈N1i=1∑NGt(i)
当 NNN 趋向无穷大时,根据大数定律,样本均值会收敛到真实期望:
当 N(s)→∞,V(s)→Vπ(s) \text{当 }N(s)\to\infty,\quad V(s)\to V^{\pi}(s) 当 N(s)→∞,V(s)→Vπ(s)
3. MC 状态价值估计的标准流程(逐步解释)
下面描述一个典型的“基于策略 π\piπ 的 MC 状态价值估计”流程。核心是统计每个状态出现时对应的回报,然后求平均。
步骤 1:采样轨迹(Episode / 序列)
用策略 π\piπ 与环境交互,得到多条完整序列(终止或截断),第 iii 条序列写作:
s0(i)→a0(i)r0(i), s1(i)→a1(i)r1(i), …, sT−1(i)→aT−1(i)rT−1(i), sT(i) s_0^{(i)} \xrightarrow{a_0^{(i)}} r_0^{(i)},\ s_1^{(i)} \xrightarrow{a_1^{(i)}} r_1^{(i)},\ \ldots,\ s_{T-1}^{(i)} \xrightarrow{a_{T-1}^{(i)}} r_{T-1}^{(i)},\ s_T^{(i)} s0(i)a0(i)r0(i), s1(i)a1(i)r1(i), …, sT−1(i)aT−1(i)rT−1(i), sT(i)
这里 TTT 是终止时间步(或截断长度)。轨迹中的每一步都包含状态、动作、奖励与下一状态。
步骤 2:计算每个时间步的回报 GtG_tGt
对某条轨迹的某个时间步 ttt,从该步开始的折扣回报为:
Gt=rt+γrt+1+γ2rt+2+⋯+γT−1−trT−1 G_t=r_t+\gamma r_{t+1}+\gamma^2 r_{t+2}+\cdots+\gamma^{T-1-t}r_{T-1} Gt=rt+γrt+1+γ2rt+2+⋯+γT−1−trT−1
注意:MC 的关键是它不使用贝尔曼方程做“引导式更新”,而是等整条轨迹跑完后,用真实采样到的回报来估计价值。
步骤 3:为每个状态累计回报并计数
维护两个量:
- 状态出现次数:N(s)N(s)N(s)
- 状态回报总和:M(s)M(s)M(s)
当在某条轨迹的时间步 ttt 访问到状态 sss 时:
N(s)←N(s)+1 N(s)\leftarrow N(s)+1 N(s)←N(s)+1
M(s)←M(s)+Gt M(s)\leftarrow M(s)+G_t M(s)←M(s)+Gt
最后用平均回报作为价值估计:
V(s)=M(s)N(s) V(s)=\frac{M(s)}{N(s)} V(s)=N(s)M(s)
4. 增量更新形式(更便于在线统计)
如果不想保存所有历史回报,而是每次来一个样本就更新一次平均值,可以用增量均值公式。
设当前第 N(s)N(s)N(s) 次观察到状态 sss 时对应回报为 GGG,则:
V(s)←V(s)+1N(s)(G−V(s)) V(s)\leftarrow V(s)+\frac{1}{N(s)}(G-V(s)) V(s)←V(s)+N(s)1(G−V(s))
这个公式等价于“维护样本均值”,其直观含义是:
- (G−V(s))(G-V(s))(G−V(s)) 是新样本相对当前估计的偏差
- 1N(s)\frac{1}{N(s)}N(s)1 是步长,随着次数变多逐渐变小,使估计趋于稳定
5. 一个具体轨迹例子:手算 MC 回报与 V(s)V(s)V(s)
设某次采样得到一条长度为 4 的轨迹(t=0,1,2,3t=0,1,2,3t=0,1,2,3),奖励序列为:
- r0=2r_0=2r0=2
- r1=0r_1=0r1=0
- r2=1r_2=1r2=1
- r3=3r_3=3r3=3
折扣因子 γ=0.9\gamma=0.9γ=0.9。则从各时间步开始的回报:
从 t=0t=0t=0:
G0=2+0.9⋅0+0.92⋅1+0.93⋅3 G_0=2+0.9\cdot 0+0.9^2\cdot 1+0.9^3\cdot 3 G0=2+0.9⋅0+0.92⋅1+0.93⋅3
从 t=1t=1t=1:
G1=0+0.9⋅1+0.92⋅3 G_1=0+0.9\cdot 1+0.9^2\cdot 3 G1=0+0.9⋅1+0.92⋅3
从 t=2t=2t=2:
G2=1+0.9⋅3 G_2=1+0.9\cdot 3 G2=1+0.9⋅3
从 t=3t=3t=3:
G3=3 G_3=3 G3=3
如果在这条轨迹里状态 sss 恰好出现在 t=1t=1t=1 和 t=3t=3t=3 两个时刻,那么它会收到两个样本回报 G1G_1G1 与 G3G_3G3。
若这是目前为止仅有的两次访问,则:
N(s)=2,M(s)=G1+G3,V(s)=G1+G32 N(s)=2,\quad M(s)=G_1+G_3,\quad V(s)=\frac{G_1+G_3}{2} N(s)=2,M(s)=G1+G3,V(s)=2G1+G3
用增量更新也能得到相同结果:
- 第一次看到 sss:V(s)=G1V(s)=G_1V(s)=G1
- 第二次看到 sss:
V(s)←V(s)+12(G3−V(s))=G1+G32 V(s)\leftarrow V(s)+\frac{1}{2}(G_3-V(s))=\frac{G_1+G_3}{2} V(s)←V(s)+21(G3−V(s))=2G1+G3
这体现了 MC 的基本机制:价值估计来自“真实采样回报”的平均,而不是来自下一状态价值的递推。
贝尔曼方程与蒙特卡洛方法的关系(理解差异的关键)
两者都在估计价值函数,但信息来源不同:
-
贝尔曼方程强调“递推结构”,把价值写成一步奖励加上下一状态价值的期望:
Vπ(s)=Eπ[Rt+γVπ(St+1)∣St=s] V^{\pi}(s)=\mathbb{E}_{\pi}[R_t+\gamma V^{\pi}(S_{t+1})|S_t=s] Vπ(s)=Eπ[Rt+γVπ(St+1)∣St=s] -
蒙特卡洛方法强调“采样估计”,直接用整段轨迹的实际回报近似期望:
Vπ(s)≈1N∑i=1NGt(i) V^{\pi}(s)\approx \frac{1}{N}\sum_{i=1}^{N}G_t^{(i)} Vπ(s)≈N1i=1∑NGt(i)
因此:
- 贝尔曼方程更像“结构性定义”,可以导出动态规划/TD 等方法;
- 蒙特卡洛更像“统计估计”,在能采样完整轨迹时非常自然。
这两条路线后续会在时序差分(TD)方法中汇合:TD 同时利用贝尔曼递推结构与采样数据,以较低方差、可在线更新的方式估计价值。
更多推荐


所有评论(0)