Monte-Carlo Mthod
5.1Monte-Carlo Prediction
在策略 π \pi π下,通过采样实际交互片段,计算片段中状态的mean return近似值函数。
回报(return): G t = T t + 1 + γ R t + 2 + . . . + γ T − 1 R T G_t=T_{t+1}+ \gamma R_{t+2}+...+\gamma^{T-1}R_T Gt=Tt+1+γRt+2+...+γT−1RT
原理: v ( s ) = G t / N ( s ) v_(s)=G_t/N(s) v(s)=Gt/N(s), N ( s ) N(s) N(s)为状态 S S S被访问次数,一般计算多个片段。
根据大数定理 v ( s ) → v p i ( s ) v(s) \rightarrow v_{pi}(s) v(s)→vpi(s), N ( s ) → ∞ N(s) \rightarrow \infty N(s)→∞ 。
两种算法
First-visit MC,一个片段只计数某状态一次,即第一次访问到。
Every-visit MC,一个片段中可能访问某状态多次,都参与计数
First-visit MC伪代码
1
)
输
入
:
待
评
估
策
略
π
2
)
初
始
化
:
任
意
设
置
v
(
s
)
∈
R
,
s
∈
S
R
e
t
u
r
n
s
(
s
)
←
一
个
空
列
表
3
)
无
退
出
循
环
:
根
据
策
略
π
产
生
的
经
验
片
段
:
S
0
,
A
0
,
R
1
,
S
1
,
.
.
.
,
S
T
−
1
,
A
T
−
1
,
R
T
G
←
0
经
验
片
段
中
的
每
一
步
进
行
循
环
,
t
=
T
−
1
,
T
−
2
,
.
.
.
0
:
G
←
γ
G
+
R
t
+
1
再
次
访
问
当
前
要
计
算
回
报
的
状
态
则
退
出
此
次
循
环
,
否
则
继
续
将
G
赋
给
列
表
R
e
t
u
r
n
s
v
(
s
t
)
←
a
v
e
r
a
g
e
(
R
e
t
u
r
n
s
(
S
t
)
)
\begin{aligned} 1)&输入:待评估策略\pi \\ 2)&初始化:任意设置v(s)\in \mathbb{R},s \in S \\ & Returns(s) \leftarrow 一个空列表 \\ 3)&无退出循环: \\ &\qquad 根据策略\pi产生的经验片段:S_0,A_0,R_1,S_1,...,S_{T-1},A_{T-1},R_T\\ &\qquad G \leftarrow 0 \\ &\qquad 经验片段中的每一步进行循环,t=T-1,T-2,...0:\\ &\qquad \qquad G \leftarrow \gamma G+R_t+1 \\ &\qquad \qquad 再次访问当前要计算回报的状态则退出此次循环,否则继续\\ &\qquad 将G赋给列表Returns \\ &\qquad v(s_t) \leftarrow average(Returns(S_t)) \end{aligned}
1)2)3)输入:待评估策略π初始化:任意设置v(s)∈R,s∈SReturns(s)←一个空列表无退出循环:根据策略π产生的经验片段:S0,A0,R1,S1,...,ST−1,AT−1,RTG←0经验片段中的每一步进行循环,t=T−1,T−2,...0:G←γG+Rt+1再次访问当前要计算回报的状态则退出此次循环,否则继续将G赋给列表Returnsv(st)←average(Returns(St))
v
π
v_\pi
vπbackup diagram对比:
5.2Monte Carlo Estimate of Action Values
对于DP算法,在模型已知的情况下,只需知道state-values,就足以确定策略了,但在无模型情况下,只知道state-values是不能确定一个策略的,必须确定每个action-state值,以便于评估 q π ( s , a ) q_\pi(s,a) qπ(s,a)。
方法:fist-visit,every-visit。
问题:不是所有的action-state都能访问到。
方案:exploring starts ,以非0概率选择每一个action-state作为片段起点。此方案不具有普遍适用性
5.3Monte Carlo Contral
前提:exploring starts ,无限个采样片段。
与DP类似,采用GPI的方式将策略评估与策略改进(greedy policy)结合:
π 0 → E q π 0 → I π 1 → E q π 1 → I π 2 → . . . → I π ∗ → E q ∗ \qquad \pi_0 \rightarrow^Eq_{\pi0}\rightarrow^I\pi_1\rightarrow^Eq_{\pi1}\rightarrow^I\pi2\rightarrow...\rightarrow^I\pi_*\rightarrow^Eq^* π0→Eqπ0→Iπ1→Eqπ1→Iπ2→...→Iπ∗→Eq∗
构建贪心策略:
π
(
s
)
≐
arg
max
a
q
(
s
,
a
)
\pi(s)\doteq \arg \max_aq(s,a)
π(s)≐argmaxaq(s,a),
s
∈
S
s \in S
s∈S。
q
π
k
(
s
,
π
k
+
1
(
s
)
)
=
q
π
k
(
s
,
arg
max
a
q
π
k
(
s
,
a
)
)
=
max
a
q
π
k
(
s
,
a
)
≥
q
π
k
(
s
,
π
k
(
s
)
)
≥
v
π
k
(
s
)
(
5.1
)
\begin{aligned} q_{\pi_{k}}\left(s, \pi_{k+1}(s)\right) &=q_{\pi_{k}}\left(s, \underset{a}{\arg \max } q_{\pi_{k}}(s, a)\right) \\ &=\max _{a} q_{\pi_{k}}(s, a) \\ & \geq q_{\pi_{k}}\left(s, \pi_{k}(s)\right) \\ & \geq v_{\pi_{k}}(s) \qquad \qquad \qquad \qquad \qquad (5.1) \end{aligned}
qπk(s,πk+1(s))=qπk(s,aargmaxqπk(s,a))=amaxqπk(s,a)≥qπk(s,πk(s))≥vπk(s)(5.1)
MC ES 伪代码
以上方法基于两个前提:1)exploring starts ,2)无限个采样片段,两个前提都不易得到。
这里对2)提出两种解决方案:
1)在每一次策略评估中都尽可能的接近 q π k q _{\pi_k} qπk,通过测量和假设来获得估计误差的边界和概率,并在每个 policy evaluation 过程中采取充分的措施来保证他们的边界充分的小。然而这种方法在实际中需要非常多的 episodes。
2)在没有完成策略评估时就进行策略改进。
5.4Monte Carlo Control without Exploring Starts
On-policy:评估、改进正在进行决策的策略。
Off-policy:评估、改进非进行决策的策略,利用的片段由其他决策产生的。