参考资料:
本系列文章大部分内容来自西湖大学赵世钰老师的强化学习的数学原理课程(参考资料1),并参考了部分参考资料2、3的内容进行补充。
系列博文索引:(更新中)
*注:【】内文字为个人想法,不一定准确
*图源:https://zhuanlan.zhihu.com/p/36494307
求解RL问题,要么需要模型,要么需要数据。之前介绍了基于模型(model-based)的方法。然而在实际场景中,环境的模型(如状态转移函数)往往是未知的,这就需要用无模型(model-free)方法解决问题。
无模型的方法可以分为两大类:蒙特卡洛方法(Monte Carlo,MC)和时序差分学习(Temporal Difference,TD)。本文介绍蒙特卡洛方法。
蒙特卡洛思想:通过大数据量的样本采样来进行估计【本质上是大数定律的应用(基于独立同分布采样)】,将策略迭代中依赖于model的部分替换为model-free。
MC的核心idea:并非直接求解
q
π
(
s
,
a
)
q_{\pi} (s, a)
qπ?(s,a)的准确值,而是基于数据(sample / experience)来估计
q
π
(
s
,
a
)
q_{\pi} (s, a)
qπ?(s,a)的值。MC直接通过动作值的定义进行均值估计,即:
q
π
(
s
,
a
)
=
E
π
[
G
t
∣
S
t
=
s
,
A
t
=
a
]
≈
1
N
∑
i
=
1
N
g
(
i
)
(
s
,
a
)
q_{\pi}(s, a) = \mathbb{E}_\pi [ G_t | S_t = s, A_t = a ] \approx \frac{1}{N} \sum^N_{i=1} g^{(i)} (s, a)
qπ?(s,a)=Eπ?[Gt?∣St?=s,At?=a]≈N1?i=1∑N?g(i)(s,a)
其中
g
(
i
)
(
s
,
a
)
g^{(i)} (s, a)
g(i)(s,a)表示对于
G
t
G_t
Gt?的第
i
i
i个采样。
算法步骤:在第 k k k次迭代中,给定策略 π k \pi_k πk?(随机初始策略: π 0 \pi_0 π0?)
MC Basic与策略迭代的区别:在第 k k k次迭代中
*MC Basic只是用来说明MC的核心idea,并不会在实际中应用,因为其非常低效。
思想:提升MC Basic的效率
MC Exploring Starts
Exploring Starts在实际中难以实现,考虑引入soft policy:随机(stochastic)选择动作
ε-Greedy策略:
π
(
a
∣
s
)
=
{
1
?
ε
∣
A
(
s
)
∣
(
∣
A
(
s
)
∣
?
1
)
,
for?the?greedy?action,?
ε
∣
A
(
s
)
∣
,
for?other?
∣
A
(
s
)
∣
?
1
?actions.
\pi(a|s) = \begin{cases} 1-\frac{\varepsilon}{|\mathcal{A}(s)|} (|\mathcal{A}(s)|-1), &\text{for the greedy action, } \\ \frac{\varepsilon}{|\mathcal{A}(s)|}, &\text{for other } |\mathcal{A}(s)|-1 \text{ actions.} \end{cases}
π(a∣s)={1?∣A(s)∣ε?(∣A(s)∣?1),∣A(s)∣ε?,?for?the?greedy?action,?for?other?∣A(s)∣?1?actions.?
其中,
ε
∈
[
0
,
1
]
\varepsilon \in [0,1]
ε∈[0,1],
∣
A
(
s
)
∣
|\mathcal{A}(s)|
∣A(s)∣表示状态
s
s
s下的动作数量。
MC ε-Greedy:在策略提升阶段,求解下式
π
k
+
1
(
s
)
=
arg?max
?
π
∈
Π
ε
∑
a
π
(
a
∣
s
)
q
π
k
(
s
,
a
)
\pi_{k+1}(s) = \argmax_{\color{red}\pi \in \Pi_\varepsilon} \sum_a \pi(a|s) q_{\pi_{k}}(s, a)
πk+1?(s)=π∈Πε?argmax?a∑?π(a∣s)qπk??(s,a)
其中,
π
∈
Π
ε
\pi \in \Pi_\varepsilon
π∈Πε?表示所有ε-Greedy策略的集合。得到的最优策略为:
π
k
+
1
(
a
∣
s
)
=
{
1
?
ε
∣
A
(
s
)
∣
(
∣
A
(
s
)
∣
?
1
)
,
a
=
a
k
?
,
ε
∣
A
(
s
)
∣
,
a
≠
a
k
?
.
\pi_{k+1}(a|s) = \begin{cases} 1-\frac{\varepsilon}{|\mathcal{A}(s)|} (|\mathcal{A}(s)|-1), &a = a_k^*, \\ \frac{\varepsilon}{|\mathcal{A}(s)|}, &a \neq a_k^*. \end{cases}
πk+1?(a∣s)={1?∣A(s)∣ε?(∣A(s)∣?1),∣A(s)∣ε?,?a=ak??,a=ak??.?
MC ε-Greedy与MC Basic和MC Exploring Starts的区别:
MC ε-Greedy与MC Exploring Starts的唯一区别在于ε-Greedy策略,因此MC ε-Greedy不需要Exploring Starts。
MC ε-Greedy通过探索性牺牲了最优性,但可以通过设置一个较小的ε(如0.1)进行平衡
最终训练得到的策略,可以去掉ε,直接使用greedy的确定性策略(consistent)。