文章目录
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 s∈S
一直循环:
使用 π \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) s∈S,a∈A(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 S0∈S和动作 A 0 ∈ A ( S 0 ) A_0 \in A(S_0) A0∈A(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) s∈S,a∈A(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 π(a∣s)← 一个随机的 ϵ − 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) A∗←arg amax Q(s,a)
对所有的 a ∈ A ( s ) a \in A(s) a∈A(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. π(a∣s)←{1−ϵ+∣A(s)∣ϵ∣A(s)∣ϵififa=A∗a̸=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)∣∑t∈J(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)≐∑t∈J(s)ρtT(t)∑t∈J(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) s∈S,a∈A(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 μ(a∣s)← 随机的软的行为策略
π ( a ∣ s ) ← \pi(a|s) \leftarrow π(a∣s)← 随机的目标策略
一直循环:
使用策略 μ \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,...,ST−1,AT−1,RT,ST
G ← 0 G \leftarrow 0 G←0
W ← 1 W \leftarrow 1 W←1
f o r t = T − 1 , T − 2 , . . . 0 for \quad t= T-1, T-2,... 0 fort=T−1,T−2,...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[G−Q(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)} W←Wμ(At∣St)π(At∣St)
如果 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) s∈S,a∈A(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,...,ST−1,AT−1,RT,ST
G ← 0 G \leftarrow 0 G←0
W ← 1 W \leftarrow 1 W←1
f o r t = T − 1 , T − 2 , . . . 0 for \quad t= T-1, T-2,... 0 fort=T−1,T−2,...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[G−Q(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)} W←Wμ(At∣St)1