蒙特卡洛强化学习(简称MC强化学习)是一种无模型强化学习算法,该算法无需知道马尔科夫决策环境模型,即不需要提前获得立即回报期望矩阵R(维度为(nS,nA))、状态转移概率数组P(维度为(nA,nS,nS)),而是通过与环境的反复交互,使用统计学方法,利用交互数据直接进行策略评估和策略优化,从而学到最优策略。
为了更好的描述MC方法,深入理解如下概念非常必要。
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + ? = ∑ k = 1 T γ k ? 1 R t + k G_t = R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\cdots=\sum_{k=1}^{T}\gamma^{k-1}R_{t+k} Gt?=Rt+1?+γRt+2?+γ2Rt+3?+?=k=1∑T?γk?1Rt+k?
假设以任意起始状态开始的完整轨迹有多条条,则这多条完整轨迹可以表示为:
轨迹0:
s
0
,
0
,
a
0
,
0
,
r
0
,
1
,
s
0
,
1
,
a
0
,
1
,
r
0
,
2
,
?
?
,
s
0
,
L
0
,
a
0
,
L
0
,
r
0
,
L
0
+
1
,
s
T
,
a
0
,
L
0
+
1
,
r
0
,
L
0
+
2
s_{0,0},a_{0,0},r_{0,1},s_{0,1},a_{0,1},r_{0,2},\cdots,s_{0,L_0},a_{0,L_0},r_{0,L_0+1},s_T,a_{0,L_0+1},r_{0,L_0+2}
s0,0?,a0,0?,r0,1?,s0,1?,a0,1?,r0,2?,?,s0,L0??,a0,L0??,r0,L0?+1?,sT?,a0,L0?+1?,r0,L0?+2?
轨迹1:
s
1
,
0
,
a
1
,
0
,
r
1
,
1
,
s
1
,
1
,
a
1
,
1
,
r
1
,
2
,
?
?
,
s
1
,
L
1
,
a
1
,
L
1
,
r
1
,
L
1
+
1
,
s
T
,
a
1
,
L
1
+
1
,
r
1
,
L
1
+
2
s_{1,0},a_{1,0},r_{1,1},s_{1,1},a_{1,1},r_{1,2},\cdots,s_{1,L_1},a_{1,L_1},r_{1,L_1+1},s_T,a_{1,L_1+1},r_{1,L_1+2}
s1,0?,a1,0?,r1,1?,s1,1?,a1,1?,r1,2?,?,s1,L1??,a1,L1??,r1,L1?+1?,sT?,a1,L1?+1?,r1,L1?+2?
…
轨迹k:
s
k
,
0
,
a
k
,
0
,
r
k
,
1
,
s
k
,
1
,
a
k
,
1
,
r
k
,
2
,
?
?
,
s
k
,
L
k
,
a
k
,
L
k
,
r
k
,
L
k
+
1
,
s
T
,
a
k
,
L
k
+
1
,
r
k
,
L
k
+
2
s_{k,0},a_{k,0},r_{k,1},s_{k,1},a_{k,1},r_{k,2},\cdots,s_{k,L_k},a_{k,L_k},r_{k,L_k+1},s_T,a_{k,L_k+1},r_{k,L_k+2}
sk,0?,ak,0?,rk,1?,sk,1?,ak,1?,rk,2?,?,sk,Lk??,ak,Lk??,rk,Lk?+1?,sT?,ak,Lk?+1?,rk,Lk?+2?
…
上述每条轨迹中的三元组
(
s
k
,
m
,
a
k
,
m
,
r
k
,
m
+
1
(s_{k,m},a_{k,m},r_{k,m+1}
(sk,m?,ak,m?,rk,m+1?表示轨迹k中,状态为
s
k
+
m
s_{k+m}
sk+m?,执行行为
a
k
+
m
a_{k+m}
ak+m?后获得的立即回报的采样值为
r
k
,
m
+
1
r_{k,m+1}
rk,m+1?,
r
k
,
L
k
+
1
r_{k,L_k+1}
rk,Lk?+1?表示轨迹k时,智能体观测到的环境状态为终止状态的上一状态
s
k
,
L
k
s_{k,L_k}
sk,Lk??下,执行动作
a
k
,
L
k
a_{k,L_k}
ak,Lk??的立即回报采样。
可见,一条完整轨迹(回合或episode),必须满足:
已知:一个MDP(马尔科夫过程)的折扣系数
γ
\gamma
γ、环境的最终状态
s
T
s_T
sT?,智能体从任意状态开始,遵循初始策略
π
(
a
∣
s
)
\pi(a|s)
π(a∣s),通过与环境的交互,获得多条完整轨迹数据:
[
(
s
k
,
0
,
a
k
,
0
,
r
k
,
1
)
,
(
s
k
,
1
,
a
k
1
,
r
k
,
2
)
,
?
?
,
(
s
k
,
L
k
,
a
k
,
L
k
,
r
k
,
L
k
+
1
)
,
(
s
T
,
a
k
,
L
k
+
1
,
r
k
,
L
k
+
2
)
]
k
?
轨迹索引号
,
k
=
0
,
1
,
?
s
k
,
m
,
a
k
,
m
,
r
k
,
m
+
1
?
轨迹
k
的索引号为
m
的那次采样数据,依次表示状态值,行为值,立即回报观测值
L
k
?
索引号为
k
的那条完整轨迹走了
L
k
+
1
步才达到最终状态
s
T
\begin{align*} &[(s_{k,0},a_{k,0},r_{k,1}),(s_{k,1},a_{k_1},r_{k,2}),\cdots,(s_{k,L_{k}},a_{k,L_{k}},r_{k,L_k+1}),(s_T,a_{k,L_k+1},r_{k,L_k+2})]\\ &k-轨迹索引号,k=0,1,\cdots\\ &s_{k,m},a_{k,m},r_{k,m+1}-轨迹k的索引号为m的那次采样数据,依次表示状态值,行为值,立即回报观测值\\ &L_k-索引号为k的那条完整轨迹走了L_k+1步才达到最终状态s_T \end{align*}
?[(sk,0?,ak,0?,rk,1?),(sk,1?,ak1??,rk,2?),?,(sk,Lk??,ak,Lk??,rk,Lk?+1?),(sT?,ak,Lk?+1?,rk,Lk?+2?)]k?轨迹索引号,k=0,1,?sk,m?,ak,m?,rk,m+1??轨迹k的索引号为m的那次采样数据,依次表示状态值,行为值,立即回报观测值Lk??索引号为k的那条完整轨迹走了Lk?+1步才达到最终状态sT??
求解:最优策略
π
?
(
a
∣
s
)
\pi^*(a|s)
π?(a∣s)