蒙特卡洛价值预测
蒙特卡洛价值估计
目标:从策略 π \pi π 下的经验片段学习 V π V^{\pi} Vπ
s 0 ( i ) → R 1 ( i ) a 0 ( i ) s 1 ( i ) → R 2 ( i ) a 1 ( i ) s 2 ( i ) → R 3 ( i ) a 2 ( i ) s 3 ( i ) ⋯ s T ( i ) ∼ π {s^{(i)}_{0}}\xrightarrow[R^{(i)}_{1}]{a^{(i)}_{0}}{s^{(i)}_{1}}\xrightarrow[R^{(i)}_{2}]{a^{(i)}_{1}}{s^{(i)}_{2}}\xrightarrow[R^{(i)}_{3}]{a^{(i)}_{2}}{s^{(i)}_{3}}\cdots{s^{(i)}_{T}\sim\pi} s0(i)a0(i)R1(i)s1(i)a1(i)R2(i)s2(i)a2(i)R3(i)s3(i)⋯sT(i)∼π
回顾:累积奖励(return)是总折扣奖励
G t = R t + 1 + γ R t + 2 + ⋯ + γ T − 1 R T G_{t}=R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^{T-1}R_{T} Gt=Rt+1+γRt+2+⋯+γT−1RT
回顾:值函数(value function)是期望累积奖励
V π ( s ) = E [ R ( s 0 ) + γ R ( s 1 ) + γ 2 R ( s 2 ) + ⋯ ∣ s 0 = s , π ] = E [ G t ∣ s t = s , π ] ≃ 1 N ∑ i = 1 N G t ( i ) \begin{aligned} V^{\pi}(s) &= \mathbb{E}[R(s_{0})+\gamma R(s_{1})+\gamma^{2}R(s_{2})+\cdots|s_{0}=s,\pi] \\ &= \mathbb{E}[G_{t}|s_{t}=s,\pi] \\ &\simeq \frac{1}{N}\sum^{N}_{i=1}G^{(i)}_{t} \end{aligned} Vπ(s)=E[R(s0)+γR(s1)+γ2R(s2)+⋯∣s0=s,π]=E[Gt∣st=s,π]≃N1i=1∑NGt(i)
- 使用策略 π \pi π 从状态 s s s 采样N个片段
- 计算平均累计奖励
经验均值累计奖励
蒙特卡洛策略评估使用经验均值累计奖励而不是期望累计奖励
实现过程:使用策略 π \pi π 采样片段
s 0 ( i ) → R 1 ( i ) a 0 ( i ) s 1 ( i ) → R 2 ( i ) a 1 ( i ) s 2 ( i ) → R 3 ( i ) a 2 ( i ) s 3 ( i ) ⋯ s T ( i ) ∼ π {s^{(i)}_{0}}\xrightarrow[R^{(i)}_{1}]{a^{(i)}_{0}}{s^{(i)}_{1}}\xrightarrow[R^{(i)}_{2}]{a^{(i)}_{1}}{s^{(i)}_{2}}\xrightarrow[R^{(i)}_{3}]{a^{(i)}_{2}}{s^{(i)}_{3}}\cdots{s^{(i)}_{T}\sim\pi} s0(i)a0(i)R1(i)s1(i)a1(i)R2(i)s2(i)a2(i)R3(i)s3(i)⋯sT(i)∼π
在一个片段中的每个时间步长 t t t 的状态 s s s 都被访问
- 增量计数器 N ( s ) ← N ( s ) + 1 N(s)\leftarrow N(s)+1 N(s)←N(s)+1
- 增量总累计奖励 S ( s ) ← S ( s ) + G t S(s) \leftarrow S(s)+G_{t} S(s)←S(s)+Gt
- 值被估计为累计奖励的均值 V ( s ) = S ( s ) / N ( s ) V(s)=S(s)/N(s) V(s)=S(s)/N(s)
- 由大数定律有
V ( s ) → V π ( s ) a s N ( s ) → ∞ V(s)\rightarrow V^{\pi}(s) \quad as \quad N(s) \rightarrow \infty V(s)→Vπ(s)asN(s)→∞
增量蒙特卡洛更新
每个片段结束后逐步更新
V
(
s
)
V(s)
V(s)
对于每个状态
S
t
S_{t}
St 和对应累计奖励
G
t
G_{t}
Gt
N ( S t ) ← N ( S t ) + 1 N(S_{t}) \leftarrow N(S_{t})+1 N(St)←N(St)+1
V ( S t ) ← V ( S t ) + 1 N ( S t ) ( G t − V ( S t ) ) V(S_{t}) \leftarrow V(S_{t})+\frac{1}{N(S_{t})}(G_{t}-V(S_{t})) V(St)←V(St)+N(St)1(Gt−V(St))
对于非稳定的问题(环境会随时间发生变化),我们可以跟踪一个现阶段的平均值(不考虑过久之前的片段)
V ( S t ) ← V ( S t ) + α ( G t − V ( S t ) ) V(S_{t}) \leftarrow V(S_{t})+\alpha(G_{t}-V(S_{t})) V(St)←V(St)+α(Gt−V(St))
⇓ \Downarrow ⇓
V ( S t ) ← ( 1 − α ) V ( S t ) + α G t V(S_{t}) \leftarrow (1-\alpha)V(S_{t})+\alpha G_{t} V(St)←(1−α)V(St)+αGt
思路: V ( S t ) ≃ 1 N ∑ i = 1 N G t ( i ) V(S_{t}) \simeq\frac{1}{N}\sum^{N}_{i=1}{G^{(i)}_{t}} V(St)≃N1∑i=1NGt(i)
实现: V ( S t ) ← V ( S t ) + α ( G t − V ( S t ) ) V(S_{t}) \leftarrow V(S_{t})+\alpha(G_{t}-V(S_{t})) V(St)←V(St)+α(Gt−V(St))
总结
- 蒙特卡洛方法:直接从经验片段进行学习
- 蒙特卡洛是模型无关的:未知马尔可夫决策过程的状态转移/奖励
- 蒙特卡洛从完整的片段中进行学习:没有使用bootstrapping的方法
- 蒙特卡洛采用最简单的思想:值(value)= 平均累计奖励(mean return)
只能将蒙特卡洛方法应用于可分片段的马尔可夫决策过程中
即,所有的片段都有终止状态
为什么蒙特卡洛算法只能用于可分片段的马尔可夫决策过程?
可分片段的含义是该马尔可夫决策过程长度有限,这样才能计算总折扣奖励,在实际操作中,如果遇到非常长的马尔可夫链或者无限马尔可夫链,一般使用后面的课程会提到的时序差分学习。