Monte Carlo Methods
这一章考虑了第一类用于估计价值函数并寻找最优策略的学习方法(first learning methods)。蒙特卡洛方法s不需要完备的环境知识,它们仅仅需要经验,即从真实或者模拟的环境交互中采样得到的状态、动作、收益序列。
蒙特卡洛方法s通过平均样本的回报来解决强化学习问题。这里只定义用于分幕式任务的蒙特卡洛方法s。价值估计和策略改进在一个幕结束时才进行。因此蒙特卡洛方法s是逐幕做出改进的,而非每一步(在线online)都有改进。通常术语“蒙特卡洛”泛指任何包含大量随即成分的估计方法s。这里我们用它特指那些对完整的回报取平均的方法s(相对于从部分收益中学习的方法s,将在下一章中介绍)。
蒙特卡洛方法s采样并平均每一个“状态-动作”二元组(each state–action pair)的回报。与赌博机方法s的区别是,这里状态是相互关联的。
在上一章,我们从MDP的知识中计算价值函数,而在这里,我们从MDP的样本回报(sample returns)中学习价值函数。蒙特卡洛方法s只有通过采样获得的经验。
5.1 Monte Carlo Prediction
蒙特卡洛方法s的基础——根据经验估计状态的价值:对所有访问(visit)这个状态之后产生的回报进行平均。
首次访问型MC方法(The first-visit MC method):本章主要关注的方法。
每次访问型MC方法(The every-visit MC method):可以更自然地拓展到函数近似(function approximation)与资格迹( eligibility traces)方法。此方法无需检查 S t S_t St是否在当前幕的早期时段出现过。
两种方法的收敛性的探讨。
例 5.1 二十一点:即使知道此问题的完整环境知识,使用DP方法来计算价值函数也很困难。DP方法需要提前获得每个状态的期望收益和转移概率,然而这些计算往往既复杂又容易出错。蒙特卡洛方法s只需要利用若干幕采样序列就能计算的特性是一个巨大优势,即使我们已知整个环境的 知识/动态特性/动态的知识。
练习 5.1:1,根据玩家的策略,当手牌点数小于20时,玩家会继续要牌,此时有很高的概率爆牌,因此状态价值很低;但是当手牌点数为20或21时,根据庄家策略,玩家有很高的概率手牌大于庄家,因此价值函数突然增高。2,当庄家显示的牌为10或A时,庄家的总点数有更高的概率为20或21,这导致本局平局或输掉的概率增大,导致最靠左右两侧的价值降低。3,由于A既可以是1也可以是11,当玩家的起始手牌有A时,他可以根据情况来决定点数;玩家有更高的概率获得点数20/21而不爆牌。
练习 5.2:结果不会非常不一样。在这个游戏中,由于点数不会减少,因此每一个幕中不可能出现两个相同的状态。
将回溯图的思想应用到蒙特卡洛算法s中。回溯图的区别清楚地体现了两种算法之间的本质区别。
蒙特卡洛方法s的一个重要事实:对于每个状态的估计是独立的。蒙特卡洛方法s并没有使用自举思想。
特别需要注意:计算一个状态的代价与状态的个数无关。这使得蒙特卡洛方法s可以获得一个或一个子集的状态的价值函数,根据采样获取回报的平均值,而完全不需要考虑其他的状态。这是蒙特卡罗方法s相比DP方法s的三个优势之一。
例 5.2 肥皂泡:边框形状已知,且表面连续。DP方法:根据边框的高度,对内部的点不断迭代。采取就地更新方法,起初不使用未估计的点估计其他点,例如一个点周围有一个点尚未被估计,则只是用其余被估计的点估计该点。蒙特卡洛方法:从感兴趣的点开始随机行走,最终到达的边界点就是对该点的近似。两种方法通过不断迭代,最终都会收敛到近似值。
5.2 Monte Carlo Estimation of Action Values
在没有环境模型*的情况下,仅仅有状态价值函数无法确定一个策略,动作的价值(即动作价值函数的值)更加有用一些。
读书笔记:没有模型,仅从经验中学习,因此只有部分状态的价值,无法直接使用状态价值函数进行单步搜索。
*环境模型到底是什么?:根据环境的知识,通过计算得到的收益和转移概率?或者等价于环境的知识?
动作价值函数的策略评估问题:只需将对状态的访问改为对“状态-动作”二元组的访问,蒙特卡洛方法就可以用几乎和之前完全相同的方式来解决此问题。
这里唯一的问题是,一些“状态-动作”二元组可能永远不会被访问。确定性的策略导致每个状态只会观测到一个动作的回报。由于没有平均回报,其他动作的蒙特卡洛估计值不会随着经验的增加而改善。
解决思路:保持试探。方法一:试探性出发(exploring starts)——将指定的“状态-动作”二元组作为起点进行采样,所有“状态-动作”二元组都有一定的概率被选为起点。
当直接从真实环境进行学习时,试探性出发假设很难满足——方法二:只考虑那些在每个状态下所有动作都有非零概率被选中的随机策略——两个重要变种。
练习 5.3:根节点为状态动作二元组。
5.3 Monte Carlo Control
基于试探性出发假设的蒙特卡洛控制方法。
控制问题:近似最优策略。 → \rightarrow → 广义策略迭代(GPI)。
首先,思考经典策略迭代的蒙特卡洛版本。策略评估完全按照上一节的方法进行,假设策略评估时有无限多幕的样本序列进行试探。策略改进的方法是在当前价值函数上贪心地选择动作。动作价值函数的策略改进不需要使用任何的模型信息。策略改进定理保证新策略一定更优,除非原策略已经是最优策略。这反过来保证了整个流程会收敛到最优策略和最优价值函数。
去除假设
首先去除策略评估时有无限多幕的样本序列进行试探这一假设。对于DP和蒙特卡洛算法s,有两个方法。第一个方法是坚持在每次策略评估中近似 q π k q_{\pi_k} qπk 的想法。然而即使问题规模很小,这种方法也可能需要大量的幕序列以用于计算。
第二种方法是放弃在策略改进前完成策略评估 → \rightarrow → 价值迭代 → \rightarrow → 价值迭代的“就地更新”版本:
价值迭代的“双数组更新”版本:先进行策略评估的一次遍历,然后进行策略改进。
价值迭代的“就地更新”版本:在单个状态s中交替进行策略的改进和评估。
对于蒙特卡洛策略迭代 → \rightarrow → Monte Carlo with Exploring Starts (Monte Carlo ES):逐幕交替进行评估与改进。
Initialize, for all
s
∈
S
s \in S
s∈S,
a
∈
A
(
s
)
a \in A(s)
a∈A(s):
Q
(
s
,
a
)
←
Q(s, a) ←
Q(s,a)← arbitrary
π
(
s
)
←
π(s) ←
π(s)← arbitrary
R
e
t
u
r
n
s
(
s
,
a
)
←
Returns(s, a) ←
Returns(s,a)← empty list
Repeat forever:
Choose
S
0
∈
S
S_0 ∈ S
S0∈S and
A
0
∈
A
(
S
0
)
A_0 ∈ A(S_0)
A0∈A(S0) s.t. all pairs have probability > 0
Generate an episode starting from
S
0
S_0
S0,
A
0
A_0
A0, following
π
π
π
For each pair
s
s
s,
a
a
a appearing in the episode:
G
←
G ←
G← return following the first occurrence of
s
s
s,
a
a
a
Append
G
G
G to
R
e
t
u
r
n
s
(
s
,
a
)
Returns(s, a)
Returns(s,a)
Q
(
s
,
a
)
←
Q(s, a) ←
Q(s,a)← average(
R
e
t
u
r
n
s
(
s
,
a
)
Returns(s, a)
Returns(s,a))
For each
s
s
s in the episode:
π
(
s
)
←
a
r
g
m
a
x
a
Q
(
s
,
a
)
π(s) ← argmax_a Q(s, a)
π(s)←argmaxaQ(s,a)
练习 5.4:
Initialize, for all
s
∈
S
s \in S
s∈S,
a
∈
A
(
s
)
a \in A(s)
a∈A(s):
Q
(
s
,
a
)
←
Q(s, a) ←
Q(s,a)← arbitrary
π
(
s
)
←
π(s) ←
π(s)← arbitrary
N
u
m
b
e
r
(
s
,
a
)
←
Number(s, a) ←
Number(s,a)← 0
Repeat forever:
Choose
S
0
∈
S
S_0 ∈ S
S0∈S and
A
0
∈
A
(
S
0
)
A_0 ∈ A(S_0)
A0∈A(S0) s.t. all pairs have probability > 0
Generate an episode starting from
S
0
S_0
S0,
A
0
A_0
A0, following
π
π
π
For each pair
s
s
s,
a
a
a appearing in the episode:
G
←
G ←
G← return following the first occurrence of
s
s
s,
a
a
a
a
n
d
\mathbf{and}
and
N
u
m
b
e
r
(
s
,
a
)
←
N
u
m
b
e
r
(
s
,
a
)
+
1
Number(s, a) ← Number(s, a) + 1
Number(s,a)←Number(s,a)+1
Q
(
s
,
a
)
←
Q
(
s
,
a
)
+
1
N
u
m
b
e
r
(
s
,
a
)
[
G
−
Q
(
s
,
a
)
]
Q(s, a) ← Q(s, a) + \frac{1}{Number(s, a)}[G - Q(s, a)]
Q(s,a)←Q(s,a)+Number(s,a)1[G−Q(s,a)]
For each
s
s
s in the episode:
π
(
s
)
←
a
r
g
m
a
x
a
Q
(
s
,
a
)
π(s) ← argmax_a Q(s, a)
π(s)←argmaxaQ(s,a)
注:Number(s, a) 为“状态-动作”二元组 (s, a) 首次出现的次数。
需要指出的是,蒙特卡洛ES的收敛性尚未得到严格的证明。
例 5.3 解决二十一点问题:所有幕都是模拟的游戏。
5.4 Monte Carlo Control without Exploring Starts
唯一的一般性解决方案:智能体能够持续不断地选择所有可能的动作 → \rightarrow → on-policy (同轨策略) methods and off-policy (离轨策略) methods。
在同轨策略方法中,用于生成采样数据序列的策略(即用于决策的策略) 和 被评估或改进的策略 是相同的;而在离轨策略方法中,被评估或改进的策略 和 用于生成采样数据的策略 是不同的,即生成的数据“离开”了待优化的策略所决定的决策序列轨迹。
本节将介绍一个没有试探性出发假设的同轨策略的蒙特卡洛控制方法。
在同轨策略方法中,策略一般是“soft”的。 ϵ \epsilon ϵ- g r e e d y greedy greedy 策略是 ϵ \epsilon ϵ- s o f t soft soft 策略的一个特例。
对于任意一个 ϵ \epsilon ϵ- s o f t soft soft 策略 π \pi π,根据 q π q_\pi qπ 生成的任意一个 ϵ \epsilon ϵ- g r e e d y greedy greedy 策略保证优于或等于 π \pi π。
使用 ϵ \epsilon ϵ- s o f t soft soft policies 的同轨策略的首次访问型MC控制算法。
ϵ \epsilon ϵ- s o f t soft soft 策略的策略改进定理的证明。
5.5 Off-policy Prediction via Importance Sampling
用另一个策略产生的幕来学习一个策略的价值函数。
The target policy:用来学习;学习其价值函数是学习过程的目标。
The behavior policy:用来生成行动样本;它是控制智能体和产生行为的策略。
Off-policy learning:学习所用的数据“离开”了待学习的目标策略;在仅有“非”(不遵循)该策略的经验下学习该策略。
离轨策略方法方差更大,收敛更慢;但同时也更强大,更通用。可以将同轨策略方法视为一种目标策略与行动策略相同的离轨策略方法的特例。
一个预测问题实例,两个策略都固定且已知。
覆盖假设(the assumption of coverage):对任意 π ( a ∣ s ) > 0 \pi(a|s)>0 π(a∣s)>0,要求 b ( a ∣ s ) > 0 b(a|s)>0 b(a∣s)>0。在策略 b b b 与策略 π \pi π 不同的状态中, b b b 必须是随机的。另一方面,策略 π \pi π 则可能是确定的。
在控制过程中,目标策略通常是一个确定性的贪心策略。而当行为策略是随机的且具有探索性时,策略 π \pi π 会成为一个确定性的最优策略。不过本节仅讨论当 π \pi π 不变且已知时的“预测问题”。
重要度采样:给定另一个分布的样本,估计一个分布的期望值的一种通用方法/技术。 → \rightarrow → 对回报值根据其轨迹在目标策略与行动策略中出现的相对概率(即重要度采样比 ρ t : T − 1 \rho_{t:T-1} ρt:T−1)进行加权。因此,目标策略的期望回报为 ρ t : T − 1 G t \rho_{t:T-1}G_t ρt:T−1Gt 。
符号规定:
1,时间编号跨越幕的边界递增;
2,
τ
(
s
)
\tau(s)
τ(s):所有访问过状态 s 的时刻(或在幕内首次访问状态 s 的时刻)的集合;
3,
T
(
t
)
T(t)
T(t):时刻 t 后的首次终止;
4,
G
t
G_t
Gt:在 t 之后到达
T
(
t
)
T(t)
T(t) 时的回报值;
则:
1,
{
G
t
}
t
∈
τ
(
s
)
\left \{ G_t \right \}_{t\in \tau(s)}
{Gt}t∈τ(s):状态 s 对应的回报值s;
2,
{
ρ
t
:
T
−
1
}
t
∈
τ
(
s
)
\left \{ \rho_{t:T-1} \right \}_{t\in \tau(s)}
{ρt:T−1}t∈τ(s):相应的重要度采样比s。
普通重要度采样:使估计值离观测值很远
→
\rightarrow
→ 方差。
加权重要度采样:有偏
→
\rightarrow
→ 偏差。
练习 5.5:首访为10,每访为5.5。
例 5.4 对二十一点游戏中的状态值的离轨策略估计
例 5.5 无穷方差:普通重要度采样得到的估计值非常不稳定,因为这个采样的方差是无限大的(因为重要度采样比的方差是无限大的),估计值不会收敛。可以自己写一些采样序列,通过计算对比两种方法。
练习 5.7 解:在初始阶段,我们不太可能从行为策略的采样数据中看到与目标策略相匹配的幕(即只在所有牌的总和大于等于20的时候停牌),因此我们对 V ( s ) V(s) V(s) 的估计将保持为0,这恰好与 V π ( s ) V_{\pi}(s) Vπ(s) 的真实值相接近。当我们从策略b中看到一些符合我们目标策略的轨迹时,我们输出的方差最初会很高,导致较高的误差,随着我们观察到更多的轨迹,方差会逐渐下降,直到10,000次后渐进地接近真实值。
练习 5.8 解:估计器的方差仍然是无穷的,因为每次访问该状态的预期收益仍然是1。在这种情况下,首次访问和每次访问的MC之间的唯一区别是,回报值项的数量会随着访问状态的次数而增加,因此方差会继续增加到无穷大。
5.6 Incremental Implementation
逐幕地进行增量式实现蒙特卡洛预测方法。第二章对收益进行平均,蒙特卡洛方法对回报进行平均。同轨蒙特卡洛和使用普通重要度采样的离轨蒙特卡洛都可以以相同的方式使用第二章中的方法。
使用普通重要度采样的离轨蒙特卡洛方法的增量形式:用2.4中的计算过程再推一遍。
5.7 Off-Policy Monte Carlo Control
本书的第二类学习控制方法——离轨策略方法。同轨方法:在使用策略进行控制(即近似最优策略or控制智能体生成数据?)的同时,也评估该策略。
两个策略分离的好处:当行动策略能对所有可能的动作继续进行采样时,目标策略可以是确定的(例如贪心)。
行动策略必须是软性的,以保证目标策略所有可能做出的动作被选择的概率都非零。
使用重要度采样的离轨策略MC控制方法:此处,目标策略是贪心策略,行为策略是 ϵ \epsilon ϵ- s o f t soft soft 策略。一个潜在的问题是,这种方法只从幕的尾部学习,即在最后一个非贪心动作之后。
练习 5.11:因为此处目标策略为贪心策略,即一个确定性策略,其概率值为1,因此可以替换。
5.8 Importance Sampling on Truncated Returns
(折扣敏感的重要度采样)
根据折扣,对采样进行处理,以减小策略估计的方差。
思路:把折扣看作幕终止的概率,或者部分终止的程度。
平价部分回报(flat partial returns)
回报截断的重要度采样更加复杂,原估计器中的一项,被拆分成了 T − t − 1 + 1 T-t-1+1 T−t−1+1 项。相比于折扣率为1 的加权重要度采样,此时分子分母中的采样比系数无法被约分。此时,估计无偏?
5.9 Per-Decision Importance Sampling
考虑收益内部结构的另一种方法。
重要性采样比中的一些项与收益不相关,它们是期望值为1的独立随机变量。
独立随机变量乘积的期望是变量期望值的乘积。
通过移除这些项,可以估计值的减小方差。
尚不知道加权重要度采样是否有每次决策性版本。到目前为止,我们已知的所有为其提出的估计器都不具备统计意义上的一致性(即数据无限时,他们也不会收敛到真实值)。
练习 5.14:权值的增量形式?
5.10 Summary
蒙特卡洛方法的四个优点。
蒙特卡洛预测。
蒙特卡洛控制。
试探性出发。
同轨策略方法和离轨策略方法。
时序差分学习:和蒙特卡洛一样从经验中学习,但也像DP方法一样自举。
Bibliographical and Historical Remarks
狄利克雷问题:数学中,狄利克雷问题(Dirichlet problem)是寻找一个函数,使其为给定区域内一个指定的偏微分方程(PDE)的解,且在边界上取预定值。