Chapter 5. Monte Carlo Methods

5.1 Monte Carlo Prediction

初始化:
​    π ← \pi \leftarrow π 需要估计的策略
​    V ← V \leftarrow V 随机的价值状态函数
​    R e t u r n s ( s ) ← Returns(s) \leftarrow Returns(s) 一个空的列表,对所有 s ∈ S s \in S sS
一直循环:
​   使用 π \pi π生成一个回合(episode)
​   对于回合中的每一个状态 s s s
​      G ← G \leftarrow G s s s首次出现后的回报(return)
​     将 G G G添加到列表 R e t u r n s ( s ) Returns(s) Returns(s)
​      V ( s ) ← a v e r a g e ( R e t u r n s ( s ) ) V(s) \leftarrow average (Returns(s)) V(s)average(Returns(s))

5.2 Monte Carlo Estimation of Action Values

5.3 Monte Carlo Control

探索开端的蒙特卡洛算法(Monte Carlo ES)
初始化,对所有的 s ∈ S , a ∈ A ( s ) s \in S, a \in A(s) sS,aA(s):
   Q ( s , a ) ← Q(s,a)\leftarrow Q(s,a) 随机数
   π ( s ) ← \pi(s) \leftarrow π(s) 随机数
   R e t u r n s ( s , a ) ← Returns(s,a) \leftarrow Returns(s,a) 空表
一直循环:
​  选择状态 S 0 ∈ S S_0 \in S S0S和动作 A 0 ∈ A ( S 0 ) A_0 \in A(S_0) A0A(S0),所有状态-动作对的概率大于0
​  从 S 0 , A 0 S_0, A_0 S0,A0开始,遵循策略 π \pi π,生成一个回合
​  对于这个回合中的每个出现的 s , a s, a s,a对:
​​  ​   G ← G\leftarrow G s , a s, a s,a对的回报(只计算首次出现的 s , a s, a s,a对)
​​  ​  将 G G G添加到 R e t u r n s ( s , a ) Returns(s, a) Returns(s,a)
​​  ​   Q ( s , a ) ← a v e r a g e ( R e t u r n s ( s , a ) ) Q(s, a) \leftarrow average(Returns(s ,a)) Q(s,a)average(Returns(s,a))
​​​  ​  对于这个回合里的每个状态 s s s
​​​  ​   π ( s ) ← a r g   m a x a   Q ( s , a ) \pi(s) \leftarrow arg \space \underset{a}{max} \space Q(s, a) π(s)arg amax Q(s,a)

5.4 Monte Carlo Control without Exploring Starts

在策略first-visit蒙特卡洛控制(对于 ϵ − s o f t \epsilon - soft ϵsoft策略)
初始化,对所有的 s ∈ S , a ∈ A ( s ) s \in S, a \in A(s) sS,aA(s)
​   Q ( s , a ) ← Q(s,a) \leftarrow Q(s,a) 随机值
​   R e t u r n s ( s , a ) ← Returns(s,a) \leftarrow Returns(s,a) 空表
​   π ( a ∣ s ) ← \pi(a|s) \leftarrow π(as) 一个随机的 ϵ − s o f t \epsilon - soft ϵsoft策略
一直循环:
(a)使用策略 π \pi π生成一个回合
​(b)对回合中出现的每个 s , a s,a s,a对:
​      G ← G \leftarrow G 回报(遵循 s , a s,a s,a对的首次出现原则)
​     将 G G G添加到表 R e t u r n s ( s , a ) Returns(s,a) Returns(s,a)
​      Q ( s , a ) ← a v e r a g e ( R e t u r n s ( s , a ) ) Q(s, a) \leftarrow average(Returns(s ,a)) Q(s,a)average(Returns(s,a))
​(c)对回合中的每个 s s s
​      A ∗ ← a r g   m a x a   Q ( s , a ) A^* \leftarrow arg \space \underset{a}{max} \space Q(s,a) Aarg amax Q(s,a)
​     对所有的 a ∈ A ( s ) a \in A(s) aA(s)
π ( a ∣ s ) ← { 1 − ϵ + ϵ ∣ A ( s ) ∣ i f a = A ∗ ϵ ∣ A ( s ) ∣ i f a ≠ A ∗ \pi(a|s) \leftarrow \left\{ \begin{array}{rcl} 1 - \epsilon + \frac{\epsilon}{|A(s)|} & & if &a=A^* \\ \frac{\epsilon}{|A(s)|} & & if &a \neq A^* \end{array} \right. π(as){1ϵ+A(s)ϵA(s)ϵififa=Aa̸=A

5.5 Off-policy Prediction via Importance Sampling

为了估计 v π ( s ) v_\pi(s) vπ(s),我们用重要性采样率来缩放回报,然后求平均:
(5.4) V ( s ) ≐ ∑ t ∈ J ( s ) ρ t T ( t ) G t ∣ J ( s ) ∣ . V(s) \doteq \frac{\sum_{t \in {J(s)}}\rho_t^{T(t)} G_t}{|{J(s)}|}.\tag{5.4} V(s)J(s)tJ(s)ρtT(t)Gt.(5.4)
当重要性采样只是以上面的简单求平均的方式,我们称为原始重要性采样(ordinary importance sampling)

另一个选择是加权重要性采样(weighted importance sampling),它使用了加权平均,定义为
(5.5) V ( s ) ≐ ∑ t ∈ J ( s ) ρ t T ( t ) G t ∑ t ∈ J ( s ) ρ t T ( t ) , V(s) \doteq \frac{\sum_{t \in {J(s)}} \rho_t^{T(t)} G_t}{\sum_{t \in {J(s)}} \rho_t^{T(t)}}, \tag{5.5} V(s)tJ(s)ρtT(t)tJ(s)ρtT(t)Gt,(5.5)
假设分母为零,加权重要性采样也为零。

5.6 Incremental Implementation

增量式的离策略every-visit MC 策略评估
初始化,对所有 s ∈ S , a ∈ A ( s ) s \in \mathcal S, a \in \mathcal A(s) sS,aA(s)
Q ( s , a ) ← Q(s,a) \leftarrow Q(s,a) 随机值
C ( s , a ) ← 0 C(s,a) \leftarrow 0 C(s,a)0
μ ( a ∣ s ) ← \mu(a|s) \leftarrow μ(as) 随机的软的行为策略
π ( a ∣ s ) ← \pi(a|s) \leftarrow π(as) 随机的目标策略
一直循环:
​  使用策略 μ \mu μ生成回合:
  ​ S 0 , A 0 , R 1 , . . . , S T − 1 , A T − 1 , R T , S T S_0, A_0, R_1,...,S_{T-1},A_{T-1}, R_T, S_T S0,A0,R1,...,ST1,AT1,RT,ST
​   G ← 0 G \leftarrow 0 G0
  ​ W ← 1 W \leftarrow 1 W1
  ​ f o r t = T − 1 , T − 2 , . . . 0 for \quad t= T-1, T-2,... 0 fort=T1,T2,...0
​     G ← γ G + R t + 1 G \leftarrow \gamma G + R_{t+1} GγG+Rt+1
    ​ C ( S t , A t ) ← C ( S t , A t ) + W C(S_t,A_t) \leftarrow C(S_t,A_t) +W C(St,At)C(St,At)+W
    ​ Q ( S t , A t ) ← Q ( S t , A t ) + W C ( S t , A t ) [ G − Q ( S t , A t ) ] Q(S_t,A_t) \leftarrow Q(S_t,A_t) + \frac{W}{C(S_t,A_t)}[G - Q(S_t,A_t)] Q(St,At)Q(St,At)+C(St,At)W[GQ(St,At)]
​     W ← W π ( A t ∣ S t ) μ ( A t ∣ S t ) W \leftarrow W \frac{\pi(A_t|S_t)}{\mu(A_t|S_t)} WWμ(AtSt)π(AtSt)
​    如果 W = 0 W=0 W=0, 退出 f o r for for循环

5.7 Off-policy Monte Carlo Control

离策略every-visit MC 控制(返回 π ≈ π ∗ \pi \approx \pi_* ππ
初始化,对于所有的 s ∈ S , a ∈ A ( s ) s \in \mathcal S, a \in \mathcal A(s) sS,aA(s)
Q ( s , a ) ← Q(s,a) \leftarrow Q(s,a) 随机数
C ( s , a ) ← 0 C(s,a) \leftarrow0 C(s,a)0
π ( s ) ← \pi(s) \leftarrow π(s) Q Q Q而言贪心的确定性策略
一直循环:
  ​用任意soft策略 μ \mu μ生成一个回合:
   S 0 , A 0 , R 1 , . . . , S T − 1 , A T − 1 , R T , S T S_0, A_0, R_1,..., S_{T-1}, A_{T-1}, R_T, S_T S0,A0,R1,...,ST1,AT1,RT,ST
   G ← 0 G \leftarrow 0 G0
   W ← 1 W \leftarrow 1 W1
   f o r t = T − 1 , T − 2 , . . . 0 for \quad t= T-1, T-2,... 0 fort=T1,T2,...0
​     G ← γ G + R t + 1 G \leftarrow \gamma G + R_{t+1} GγG+Rt+1
    ​ C ( S t , A t ) ← C ( S t , A t ) + W C(S_t,A_t) \leftarrow C(S_t,A_t) + W C(St,At)C(St,At)+W
​     Q ( S t , A t ) ← Q ( S t , A t ) + W C ( S t , A t ) [ G − Q ( S t , A t ) ] Q(S_t,A_t) \leftarrow Q(S_t,A_t) + \frac{W}{C(S_t,A_t)} [G - Q(S_t,A_t)] Q(St,At)Q(St,At)+C(St,At)W[GQ(St,At)]
    ​ π ( S t ) ← a r g   m a x a   Q ( S t , a ) \pi(S_t) \leftarrow arg \space \underset{a}{max} \space Q(S_t,a) π(St)arg amax Q(St,a)
    ​如果 A t ≠ π ( S t ) A_t \neq \pi(S_t) At̸=π(St),跳出 f o r for for循环
​     W ← W 1 μ ( A t ∣ S t ) W \leftarrow W\frac{1}{\mu(A_t|S_t)} WWμ(AtSt)1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值