分类目录:《深入理解强化学习》总目录
蒙特卡洛方法(Monte-Carlo Methods)也被称为统计模拟方法,是一种基于概率统计的数值计算方法。运用蒙特卡洛方法时,我们通常使用重复随机抽样,然后运用概率统计方法来从抽样结果中归纳出我们想求的目标的数值估计。一个简单的例子是用蒙特卡洛方法来计算圆的面积。例如,在下图所示的正方形内部随机产生若干个点,细数落在圆中点的个数,圆的面积与正方形面积之比就等于圆中点的个数与正方形中点的个数之比。如果我们随机产生的点的个数越多,计算得到圆的面积就越接近于真实的圆的面积。
我们现在介绍如何用蒙特卡洛方法来估计一个策略在一个马尔可夫决策过程中的状态价值函数。回忆一下,一个状态的价值是它的期望回报,那么一个很直观的想法就是用策略在马尔可夫决策过程上采样很多条序列,计算从这个状态出发的回报再求其期望就可以了:
V
π
(
s
)
=
E
π
[
G
t
∣
S
t
=
s
]
≈
1
N
∑
i
=
1
N
G
t
i
V_\pi(s)=E_\pi[G_t|S_t=s]\approx\frac{1}{N}\sum_{i=1}^NG_t^i
Vπ(s)=Eπ[Gt∣St=s]≈N1i=1∑NGti
在一条序列中,可能没有出现过这个状态,可能只出现过一次这个状态,也可能出现过很多次这个状态。我们介绍的蒙特卡洛价值估计方法会在该状态每一次出现时计算它的回报。还有一种选择是一条序列只计算一次回报,也就是这条序列第一次出现该状态时计算后面的累积奖励,而后面再次出现该状态时,该状态就被忽略了。假设我们现在用策略 π \pi π从状态 s s s开始采样序列,据此来计算状态价值。我们为每一个状态维护一个计数器和总回报,计算状态价值的具体过程如下所示:
蒙特卡洛方法计算马尔可夫决策过程状态价值
(1) 是用策略 π \pi π采样若干条序列: s 0 ( i ) ⟶ a 0 ( i ) r 0 ( i ) , s 1 ( i ) ⟶ a 1 ( i ) r 1 ( i ) , s 2 ( i ) ⟶ ⋯ ⟶ r T − 2 ( i ) , s T − 1 ( i ) ⟶ a T − 1 ( i ) r T − 1 , s T s_0^{(i)}\stackrel{a_0^{(i)}}{\longrightarrow}r_0^{(i)},s_1^{(i)}\stackrel{a_1^{(i)}}{\longrightarrow}r_1^{(i)},s_2^{(i)}\longrightarrow\cdots\longrightarrow r_{T-2}^{(i)},s_{T-1}^{(i)}\stackrel{a_{T-1}^{(i)}}{\longrightarrow}r_{T-1},s_T s0(i)⟶a0(i)r0(i),s1(i)⟶a1(i)r1(i),s2(i)⟶⋯⟶rT−2(i),sT−1(i)⟶aT−1(i)rT−1,sT
(2) 对每一条序列中的每一时间步 t t t的状态 s s s,更新状态 s s s的计数器 N ( s ) = N ( s ) + 1 N(s)=N(s)+1 N(s)=N(s)+1和状态 s s s的总回报 M ( s ) = M ( s ) + G t M(s)=M(s)+G_t M(s)=M(s)+Gt
(3) 每一个状态的价值被估计为回报的平均值: V ( s ) = M ( s ) N ( s ) V(s)=\frac{M(s)}{N(s)} V(s)=N(s)M(s)
根据大数定律,当
N
(
s
)
→
∞
N(s)\rightarrow\infty
N(s)→∞,有
V
(
s
)
→
V
π
(
s
)
V(s)\rightarrow V_\pi(s)
V(s)→Vπ(s)。计算回报的期望时,除了可以把所有的回报加起来除以次数,还有一种增量更新的方法。对于每个状态
s
s
s和对应回报
G
G
G,可以做如下更新:
V
(
s
)
=
V
(
s
)
+
1
N
(
s
)
(
G
−
V
(
s
)
)
V(s)=V(s)+\frac{1}{N(s)}(G-V(s))
V(s)=V(s)+N(s)1(G−V(s))
参考文献:
[1] 张伟楠, 沈键, 俞勇. 动手学强化学习[M]. 人民邮电出版社, 2022.
[2] Richard S. Sutton, Andrew G. Barto. 强化学习(第2版)[M]. 电子工业出版社, 2019
[3] Maxim Lapan. 深度强化学习实践(原书第2版)[M]. 北京华章图文信息有限公司, 2021
[4] 王琦, 杨毅远, 江季. Easy RL:强化学习教程 [M]. 人民邮电出版社, 2022