第五章 蒙特卡洛方法
文章目录
- 第五章 蒙特卡洛方法
在这一章中,我们考虑第一类实用的估计价值函数并寻找最优策略的方法。与第4章不同,在这里我们 并不假设拥有完备的环境知识。蒙特卡洛算法仅仅需要
经验
,即从真实或者模拟的环境交互中采样得到的状态、动作、收益的序列。从
真实
经验中进行学习是非常好的,因为它不需要关于环境动态变化规律的先验知识,却依然能够达到最优的行为。从
模拟
经验中学习也是同样有效的,尽管这时需要一个模型,但这个模型只需要能够生成状态转移的一些
样本,而不需要像动态规划(DP)算法那样生成所有可能转移的概率分布。在绝大多数情况下,虽然很难得到显式的分布,但从希望得到的分布进行采样却很容易。
**蒙特卡洛算法通过平均样本的回报来解决强化学习问题。**为了保证能够得到有良好定义的回报,这里我们只定义用于分幕式任务的蒙特卡洛算法。在分幕式任务中,我们假设一段经验可以被分为若干个幕,并且无论选取怎样的动作整个幕一定会终止。价值估计以及策略改进在整个幕结束时才进行。**因此蒙特卡洛算法是逐幕做出改进的,而非在每一步(在线)都有改进。**通常,术语“蒙特卡洛”泛指任何包含大量随机成分的估计方法。在这里我们用它特指那些对完整的回报取平均的算法(而非在下一章中介绍的从部分回报中学习的算法)
第2章中的赌博机算法采样并平均每个动作的收益
,蒙特卡洛算法与之类似,采样并平均每一个“状态-动作”二元组的回报
。区别在于现在有多个状态,并且相互关联。换言之,在某个状态采取动作之后的回报取决于在同一个幕内后来的状态中采取的动作。由于所有动作的选择都在随时刻演进而不断地学习,所以从较早状态的视角来看,这个问题是非平稳的。
为了处理其非平稳性,我们采用了类似于第4章中研究DP时提到的广义策略迭代(GPI)算法的思想。当时我们从马尔科夫决策过程的知识中计算
价值函数,而现在我们从马尔科夫决策过程采样样本的经验回报中学习
价值函数。
5.1 蒙特卡洛预测
我们首先考虑如何在给定一个策略的情况下,用蒙特卡洛算法来学习其状态价值函数。
假设给定在策略
π
\pi
π下途径状态s的多幕数据,我们想估计策略
π
\pi
π下状态s的价值函数
v
π
(
s
)
v_\pi(s)
vπ(s)。在一幕中第一次访问s被称为首次访问
,首次访问型MC算法
用s的所有首次访问的回报的平均值估计
v
π
(
s
)
v_\pi(s)
vπ(s),而每次访问型MC算法
则使用所有访问的回报的平均值。它们最终都会(对于每次访问型MC算法是二次收敛)收敛。
下框中展示的是“首次访问型MC算法”的伪代码。它需要检查 S t S_t St是否在当前幕出现过。
当s的访问次数(或首次访问次数)趋向无穷时,首次访问型MC和每次访问型MC均会收敛到 v ∗ ( s ) v_*(s) v∗(s)。
下面我们通过一个例子来讲解如何应用蒙特卡洛算法。
例5.1 二十一点
二十一点
是一种流行于赌场的游戏,其目标是使得你的扑克牌点数之和在不超过21的情况下越大越好。J、Q、K的点数视作10,A既可以视作1也可以视作11。假设每一个玩家都独立地与庄家进行比赛。游戏开始时会给各玩家与庄家发两张牌。庄家的牌一张正面朝上一张背面朝上。玩家直接获得21点(一张A与一张10)的情况称为天和
。此时玩家直接获胜,除非庄家也是天和,那就是平局。如果玩家不是天和,那么他可以一张一张地继续要牌
,知道他主动停止(停牌
)或者牌的点数和超过21点(爆牌
)。如果玩家爆牌了就算输掉比赛。如果玩家选择停牌,就轮到庄家行动。庄家根据一个固定的策略进行游戏:他一直要牌,直到点数等于或超过17时停牌。如果庄家爆牌,那么玩家获胜,根据谁的点数更靠近21决定胜负或平局。
二十一点是一个典型的分幕式有限马尔可夫决策过程。可以将每一局看作一幕。胜、负、平局分别获得收益+1、-1和0。每局游戏进行中的收益都为0,并且不打折扣(
γ
=
1
\gamma=1
γ=1);所以最终的收益即为整个游戏的回报。玩家的动作为要牌或停牌。状态则取决于玩家的牌和庄家显示的牌。 *我们假设所有的牌来自无穷多的一组牌(即每次取出的牌都会再放回牌堆),因此就没有必要记下已经抽了哪些牌。*如果玩家手上有一张A,可以视作11且不爆牌,那么称这张A为可用的
。此时这张牌总会被视作11,因为如果视作1的话,点数综合必定小于等于11,而这时玩家就会要牌。所以玩家做出的选择只会依赖于三个(状态)变量:手牌的总和(1221),庄家显示的牌(A10),以及他是否有可用的A。这样共计200个状态。
考虑下面这种策略,玩家在手牌点数之和小于20时要牌,否则停牌。为了通过蒙特卡洛算法计算这种策略的状态价值函数,需要根据该策略模拟很多次游戏,并且计算每一个状态回报的平均值。得到如图5.1所示的状态价值函数。
从图可以看出,有可用的A的状态估计在模拟了10 000幕游戏后仍然不确定、不规律,因为“用可用A”是比较罕见的状态,但是在模拟了500 000局游戏后,价值函数都能很好地近似。
练习 5.1
考虑图5.1右侧的图。为什么估计的价值函数在最后两行突然增高?为什么它在最靠左侧的一列降低?为什么上方图中靠前的值比下方图中对应的位置要高?
答:倒数第二行是一个临界值。点数小于二十对应要牌操作,大于20就停牌,此时不会爆牌,游戏的一局结束,获得收益。如果点数在20~21,更有可能获得正收益,所以价值函数更高。如果点数小于20,则继续要牌,状态转移为20及以上或直接爆牌,获得正收益的机会相对更小。
最左侧一列,庄家显示的牌有A,代表庄家的赢面更大,所以价值函数降低。
上方图中表示的是有可用A的情况,它在点数较小的时候可以充当11的点数,并且不会爆牌,所以状态转移到靠后的行,状态价值相对变高。而下方图中表示的是没有可用A的情况,A如果充当11点会爆牌,所以A只能充当1,因此点数之和更小,状态价值相对更小。
- 什么是on-policy和off-policy?
- importance sampling 是什么?
练习5.2
加入我们在解决二十一点问题时使用的不是首次访问蒙特卡洛算法而是每次访问型蒙特卡洛算法,那么你觉得结果会非常不一样吗?为什么?
标答:结果是一样的,因为这款游戏是无记忆的(所有的牌来自无穷多的一组牌)。
**即使我们完全了解这个任务的环境知识,使用DP方法来计算价值函数也不容易。**因为DP需要知道下一时刻的概率分布,它需要知道表示环境动态的四元函数p,而这在二十一点问题中是很难得到的。比如,假设玩家手牌的点数为14,然后选择停牌。如果将玩家最后得到+1的收益的概率视作庄家显示的牌的函数,那么该如何进行求解?在DP之前
必须计算得到所有的这些概率,然而这些计算通常既复杂又容易出错。相反,通过蒙特卡洛算法生成一些游戏的样本则非常容易,且这种情况很常见。蒙特卡洛算法只需利用若干幕采样序列就能计算的特性是一个巨大的优势,即便我们已知整个环境的动态特性也是如此。
**我们是否能够将回溯图的思想应用到蒙特卡洛算法中呢?**回溯图的基本思想是顶部为待更新的根节点,下面则是中间与叶子结点,它们的收益和近似价值都会在更新时用到。
如下图所示,在蒙特卡洛算法中估计
v
π
v_\pi
vπ时,根为一个状态节点,然后往下是某幕样本序列一直到终止状态为止的完整轨迹,其中包含该幕中的全部状态转移。**DP的回溯图显示了所有可能的转移,而蒙特卡洛算法则仅仅显示在当前幕中采样到的那些转移。 ** DP的回溯图仅仅包含一步转移,而蒙特卡洛算法则包含了到这一幕结束为止的所有转移。回溯图上的这些区别清楚地体现了这两种算法之间的本质区别。
**蒙特卡洛算法的一个重要的事实是:对于每个状态的估计是独立的,而不是自举
的。**这与DP完全不同。
*特别注意,计算一个状态的代价与状态的个数是无关的。*这使得蒙特卡洛算法适合在仅仅需要获得一个或者一个子集的状态的价值函数时使用。我们可以从这个特定的状态开始采样生成一些幕序列,然后获取回报的平均值,而完全不需要考虑其他的状态。
蒙特卡洛算法相比于DP的三个优势:
- 可以从实际经验学习
- 可以从模拟经历学习
- 计算一个状态的代价与状态的个数是无关的
例5.2 肥皂泡
一个闭合线框浸泡在肥皂水中,沿着线框边缘形成了一个肥皂泡。如果线框的几何形状不规则但是已知,我们该如何计算肥皂泡表面的形状呢?这个形状满足任意一点受到相邻部分施加的外力和为零的条件(忽略重力?)。这意味着在表面上的任意一点,其高度等于它领域的其他点的高度的平均值。此外,表面的边界恰好与线框重合。这个问题通常的解法是将整个表面网格化,然后通过迭代计算每个网格的高度。在线框上的网格高度固定为线框的高度,其他的点则调整为四个相邻网格高度的平均值。就像DP的策略迭代一样,不停迭代这个过程,最终会收敛到一个所求表面的近似值。
蒙特卡洛方法最早用来解决的问题类型与这个问题十分相似。我们可以不进行上述的迭代计算,而是在表面选一个网格点开始随机行走,每一步等概率地走到相邻的四个网格点之一,直到到达边界。这样到达边界点的高度的期望值就是起点高度的一个近似(???)。因此,某个网格点的高度可以通过从此点开始的多次随机行走的终点的高度的平均值来近似。如果人们只对一个点,或者一小部分点组成的集合比较感兴趣,那么这种蒙特卡罗法比起迭代法更加有效率。
5.2 动作价值的蒙特卡洛估计
如果无法得到环境的模型,那么计算动作
的价值(“状态-动作”二元组的价值,也即动作价值函数的值)比起计算状态
的价值更加有用一些。在有模型的情况下,单靠状态价值函数就足以确定一个策略:用在DP那一章讲过的方法,我们只需简单地向前看一步,选取特定的动作,使得当前收益与后继状态的价值函数之和最大即可。(
π
(
s
)
=
a
r
g
m
a
x
a
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
V
(
s
′
)
]
\pi(s)=\underset{a}{argmax}\sum_{s',r}p(s',r|s,a)[r+\gamma V(s')]
π(s)=aargmax∑s′,rp(s′,r∣s,a)[r+γV(s′)])但在没有模型(
p
(
s
′
,
r
∣
s
,
a
)
p(s',r|s,a)
p(s′,r∣s,a)未知)的情况下,仅仅有状态价值函数是不够的。我们必须通过显式地确定每个动作的价值来确定一个策略。所以这里我们主要的目标是使用蒙特卡洛算法确定
q
∗
q_*
q∗。因此我们首先考虑动作价值函数的策略评估问题。
动作价值函数的策略评估问题的目标就是估计 q π ( s , a ) q_\pi(s,a) qπ(s,a),即在策略π下状态从s采取动作a的期望回报。只需将对状态的访问改为对“状态-动作”二元组的访问,蒙特卡洛算法就可以用几乎和之前完全相同的方式来解决此问题。和之前一样,在对每个“状态-动作”二元组的访问次数趋向无穷时,这些方法都会二次收敛到动作价值函数的真实期望值。
这里唯一的坑在于一些“状态-动作”二元组可能永远都不会被访问到。但是,我们为了比较这些动作,又需要估计在一个状态下所有可采取的动作的价值函数,而不仅仅是最好的那个动作。
这就是在第2章中提及的,如何保持试探
的普遍问题。如何保证所有“状态-动作”二元组都有非零的概率被选为起点?这样就保证了采样的幕趋向无穷的时候,每一个“状态-动作”二元组都会被访问到无数次。我们把这种假设称为试探性
出发。
试探性出发假设有时非常有效,但当然也并非总是那么可靠。
练习5.3
计算 q π q_\pi qπ的蒙特卡洛估计的回溯图是什么样的?
答:和书中提到的状态值一样,只是我们有状态-动作对而不是状态。
5.3 蒙特卡洛控制
现在已经可以考虑如何使用蒙特卡洛估计来解决控制问题了,即如何近似最优的策略。基本的思想是采用在DP章节中介绍的广义迭代(GPI)。在GPI中,我们同时维护一个近似的策略和近似的价值函数。价值函数会不断迭代使其更加精确地近似对应当前策略的真实价值函数,而当前的策略也会根据当前的价值函数不断调优。下图显示了这一过程。
首先,我们讨论经典策略迭代算法的蒙特卡洛版本。
π 0 ⟶ E q π 0 ⟶ 1 π 1 ⟶ E q π 1 ⟶ I π 2 ⟶ E ⋯ ⟶ I π ∗ ⟶ E q ∗ \pi_{0} \stackrel{\mathrm{E}}{\longrightarrow} q_{\pi_{0}} \stackrel{1}{\longrightarrow} \pi_{1} \stackrel{\mathrm{E}}{\longrightarrow} q_{\pi_{1}} \stackrel{\mathrm{I}}{\longrightarrow} \pi_{2} \stackrel{\mathrm{E}}{\longrightarrow} \cdots \stackrel{\mathrm{I}}{\longrightarrow} \pi_{*} \stackrel{\mathrm{E}}{\longrightarrow} q_{*} π0⟶Eqπ0⟶1π1⟶Eqπ1⟶Iπ2⟶E⋯⟶Iπ∗⟶Eq∗
这里, ⟶ E \stackrel{\mathrm{E}}{\longrightarrow} ⟶E表示策略评估,而 ⟶ I \stackrel{\mathrm{I}}{\longrightarrow} ⟶I表示策略改进。假设我们观测到了无限多幕的序列,并且这些幕保证了试探性出发假设。在这种情况下,对于任意的 π k \pi_k πk,蒙特卡洛算法都能精确地计算对应的 q π k q_{\pi_k} qπk。
策略改进的方法是在当前价值函数上贪心地选择动作。由于我们有动作价值函数
,所以在贪心的时候完全不需要使用任何的模型信息。对于任意的一个动作价值函数q,对应的贪心策略为:对于任意一个状态
s
∈
S
s \in S
s∈S,必定选择对应动作价值函数最大的动作
π
(
S
)
≐
a
r
g
max
a
q
(
s
,
a
)
.
\pi(S)\doteq arg \underset{a}{\operatorname{max}}q(s,a).
π(S)≐argamaxq(s,a).
策略改进可以通过将
q
π
k
q_{\pi_k}
qπk对应的贪心策略作为
π
k
+
1
\pi_{k+1}
πk+1来进行。这样的
π
k
\pi_{k}
πk和
π
k
+
1
\pi_{k+1}
πk+1满足策略改进定理,因为对于所有的状态
s
∈
S
s \in S
s∈S,
q
π
k
(
s
,
π
k
+
1
(
s
)
)
=
q
π
k
(
s
,
argmax
a
q
π
k
(
s
,
a
)
)
=
max
a
q
π
k
(
s
,
a
)
⩾
q
π
k
(
s
,
π
k
(
s
)
)
⩾
v
π
k
(
s
)
\begin{aligned} q_{\pi_{k}}\left(s, \pi_{k+1}(s)\right) &=q_{\pi_{k}}\left(s, \underset{a}{\operatorname{argmax}} q_{\pi_{k}}(s, a)\right) \\ &=\max _{a} q_{\pi_{k}}(s, a) \\ & \geqslant q_{\pi_{k}}\left(s, \pi_{k}(s)\right) \\ & \geqslant v_{\pi_{k}}(s) \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)
我们在上文提出了两个很强的假设来保证蒙特卡洛算法的收敛。一个是试探性出发假设,另一个是在进行策略评估的时候有无限多幕的样本序列进行试探。
首先讨论如何去除第二个假设。可以想方设法在每次策略评估中对 q π k q_{\pi_k} qπk做出尽量好的逼近。这就需要做一些假设并定义一些测度,来分析逼近误差的幅度和出现概率的上下界,然后采取足够多的步数来保证这些界足够小。
第二种避免无限多幕样本序列假设的方法是不再要求在策略改进前就完成策略评估。在每一个评估步骤中,我们让动作价值函数逼近 q π k q_{\pi_k} qπk,但我们并不期望它在经过很多步之前非常接近真实的值。这种思想的一种极端实现形式就是价值迭代,即在相邻的两部策略改进中只进行一次策略评估,而不要求多次迭代后的收敛。价值迭代的“就地更新”版本则更加极端:在单个状态中交替进行策略的改进与评估。
对于蒙特卡洛策略迭代,自然可以逐幕交替进行评估与改进。每一幕结束后,使用观测到的回报进行策略评估,然后在该幕序列访问到的每一个状态上进行策略的改进。使用这个思路的一个简单的算法,称作基于试探性出发的蒙特卡洛(蒙特卡洛ES)
,(ES代表exploring Starts),下框中给出了这个算法。
练习5.4
该框中的蒙特卡洛ES伪代码效率不高。因为对每一个“状态-动作”二元组,它都需要维护一个列表存放所有的回报值,然后反复地计算它们的平均值。我们其实可以采用更高效的方法来计算,类似2.4节中介绍的,我们仅需维护一个平均值和一个统计量(对每一个“状态-动作”二元组),然后增量式地去更新就可以了。描述一下如何修改伪代码来实现这个更高效的算法。
答:
Q + = α ( r e t u r n − γ Q ) Q+=\alpha(return-\gamma Q) Q+=α(return−γQ)
这个 α \alpha α代表步长,它等于首次访问该动作的次数分之一( α = 1 n \alpha=\frac{1}{n} α=n1)
在蒙特卡洛ES中,无论之前遵循的是哪一个策略,对于每一个“状态-动作”二元组的所有回报都被累加并平均。
例5.3 解决二十一点问题
使用蒙特卡洛ES可以很直接地解决二十一点问题。由于所有幕都是模拟的游戏,因此可以很容易地使所有可能的起点概率都不为零,确保试探性出发假设成立。在这个例子中,只需要简单地随机等概率选择庄家的扑克牌、玩家手牌的点数,以及确定是否有可用的A即可。我们使用之前的例子中提及的策略作为初始策略:即只在20或21点停牌。初始的动作价值函数可以全部为零。图5.2显示了蒙特卡洛ES得出的二十一点游戏的最优策略。这个策略与Thorp(1966)发现的基础策略
相比,除了其中不存在可用的A外,其他完全相同。我们不确定造成这一差异的原因,但是我们相信这是我们描述的二十一点游戏版本的最优策略。
5.4 没有试探性出发假设的蒙特卡洛控制
**如何避免很难被满足的试探性出发假设呢?**唯一的一般性解决方案就是智能体能够持续不断地选择所有可能的动作。有两种方法可以保证这一点,分别被称为同轨策略(on-policy)
方法和离轨策略(off-policy)
方法。
- 在同轨策略中,用于生成采样数据序列的策略和用于实际决策的待评估和改进的策略是相同的。
- 在离轨策略中,用于评估或者改进的策略与生成采样数据的策略是不同的,即生成的数据“离开”了待优化的策略所决定的决策序列轨迹。
上文提及的蒙特卡洛ES算法是同轨策略方法的一个例子。这一节我们将介绍如何设计一个同轨策略的蒙特卡洛控制方法,使其不再依赖于不合实际的试探性出发假设。离轨策略方法将在下一节中介绍。
在同轨策略方法中,策略一般是”软性“的,即对于任意
s
∈
S
s \in S
s∈S以及
a
∈
A
(
s
)
a \in A(s)
a∈A(s),都能有
π
(
a
∣
s
)
>
0
\pi(a|s)>0
π(a∣s)>0,但它们会逐渐地逼近一个确定性的策略。第2章中提到的很多方法都能做到这点。在这一节中我们介绍的同轨策略方法称为
ϵ
−
贪
心
\epsilon-贪心
ϵ−贪心策略,意思是在绝大多数时候都采取获得最大估计值的动作价值函数所对应的动作,但同时以一个较小的
ϵ
\epsilon
ϵ概率随机选择一个动作。即对于所有的非贪心动作,都有
ϵ
∣
A
(
s
)
∣
\frac{\epsilon}{|\mathcal{A}(s)|}
∣A(s)∣ϵ被选中,剩余的大部分的概率为
1
−
ϵ
+
ϵ
∣
A
(
s
)
∣
1-\epsilon+\frac{\epsilon}{|\mathcal{A}(s)|}
1−ϵ+∣A(s)∣ϵ,这是选中贪心动作的概率。这种
ϵ
\epsilon
ϵ-贪心策略是
ϵ
−
\epsilon-
ϵ−软性
策略中的一个例子,即对某个
ϵ
>
0
\epsilon>0
ϵ>0,所有的状态和动作都有
π
(
a
∣
s
)
≥
ϵ
∣
A
(
s
)
∣
\pi(a|s) \geq \frac{\epsilon}{|\mathcal{A}(s)|}
π(a∣s)≥∣A(s)∣ϵ。在所有
ϵ
−
\epsilon-
ϵ−软性策略中,
ϵ
\epsilon
ϵ-贪心策略在某种层面上是最接近贪心策略的。
同轨策略算法的蒙特卡洛控制的总体思想依然是GPI。如同蒙特卡洛ES一样,我们使用首次访问型MC算法来估计当前策略的动作价值函数。然而,由于缺乏试探性出发假设,我们不能简单地通过对当前价值函数进行贪心优化来改进策略,否则就无法进一步试探非贪心的动作。幸运的是,GPI并不要求优化过程中所遵循的策略一定是贪心的,只需要它逐渐逼近
贪心策略即可。**在我们的同轨策略算法中,我们仅仅改为遵循
ϵ
−
\epsilon-
ϵ−贪心策略。**对于任意一个
ϵ
−
\epsilon-
ϵ−软性
策略π,根据
q
π
q_\pi
qπ生成的任意一个
ϵ
\epsilon
ϵ-贪心策略保证优于或等于π。完整的算法在下框中给出。
根据策略改进定理,对于一个
ϵ
\epsilon
ϵ-软性策略π,任何一个根据
q
π
q_\pi
qπ生成的
ϵ
\epsilon
ϵ-贪心策略都是对其的一个改进。假设**
π
′
\pi'
π′是一个
ϵ
\epsilon
ϵ-贪心策略**。策略改进定理成立,因为对任意的
s
∈
S
s \in S
s∈S,
q
π
(
s
,
π
′
(
s
)
)
=
∑
a
π
′
(
a
∣
s
)
q
π
(
s
,
a
)
=
ε
∣
A
(
s
)
∣
∑
a
q
π
(
s
,
a
)
+
(
1
−
ε
)
max
a
q
π
(
s
,
a
)
⩾
ε
∣
A
(
s
)
∣
∑
a
q
π
(
s
,
a
)
+
(
1
−
ε
)
∑
a
π
(
a
∣
s
)
−
ε
∣
A
(
s
)
∣
1
−
ε
q
π
(
s
,
a
)
(
由
于
期
望
累
加
和
是
一
个
用
和
为
1
的
非
负
权
重
进
行
的
加
权
平
均
值
,
所
以
一
定
小
于
等
于
其
中
的
最
大
值
)
。
=
ε
∣
A
(
s
)
∣
∑
a
q
π
(
s
,
a
)
−
ε
∣
A
(
s
)
∣
∑
a
q
π
(
s
,
a
)
+
∑
a
π
(
a
∣
s
)
q
π
(
s
,
a
)
=
v
π
(
s
)
\begin{aligned} q_{\pi}\left(s, \pi^{\prime}(s)\right) &=\sum_{a} \pi^{\prime}(a \mid s) q_{\pi}(s, a) \\ &=\frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} q_{\pi}(s, a)+(1-\varepsilon) \max _{a} q_{\pi}(s, a) \\ & \geqslant \frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} q_{\pi}(s, a)+(1-\varepsilon) \sum_{a} \frac{\pi(a \mid s)-\frac{\varepsilon}{|\mathcal{A}(s)|}}{1-\varepsilon} q_{\pi}(s, a) \\&(由于期望累加和是一个用和为 1 的非负权重进行的加权平均值, 所以一定小于等于其中 的最大值)。 \\&=\frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} q_{\pi}(s, a)-\frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} q_{\pi}(s, a)+\sum_{a} \pi(a \mid s) q_{\pi}(s, a) \\ &=v_{\pi}(s) \end{aligned}
qπ(s,π′(s))=a∑π′(a∣s)qπ(s,a)=∣A(s)∣εa∑qπ(s,a)+(1−ε)amaxqπ(s,a)⩾∣A(s)∣εa∑qπ(s,a)+(1−ε)a∑1−επ(a∣s)−∣A(s)∣εqπ(s,a)(由于期望累加和是一个用和为1的非负权重进行的加权平均值,所以一定小于等于其中的最大值)。=∣A(s)∣εa∑qπ(s,a)−∣A(s)∣εa∑qπ(s,a)+a∑π(a∣s)qπ(s,a)=vπ(s)
所以,根据策略改进定理,
π
′
≥
π
\pi' \geq \pi
π′≥π,即对于任意的
s
∈
S
s \in S
s∈S,满足
v
π
′
(
s
)
≥
v
π
(
s
)
v_{\pi'}(s) \geq v_\pi(s)
vπ′(s)≥vπ(s)。下面证明该式的等号成立的条件是:当且仅当
π
′
\pi'
π′和
π
\pi
π都为最优的
ϵ
\epsilon
ϵ-软性策略,即它们都比所有其他的
ϵ
\epsilon
ϵ-软性策略更优或相同。
设想一个与原先环境几乎相同的新环境,唯一的区别是我们将策略是
ϵ
\epsilon
ϵ-软性这一要求“移入”环境中。新的环境与旧的环境有相同的动作与状态集,并表现出如下的行为。在状态s采取动作a时,新环境有
1
−
ε
1-\varepsilon
1−ε的概率与旧环境的表现完全相同。然后以
ε
\varepsilon
ε的概率重新等概率选择一个动作,然后有和旧环境采取这一新的随机动作一样的表现。在这个新环境中的最优策略的表现和旧环境中最优的
ε
\varepsilon
ε-软性策略的表现是相同的。令
v
~
∗
\tilde{v}_{*}
v~∗和
q
~
∗
\tilde{q}_{*}
q~∗为新环境的最优价值函数,当且仅当
v
π
=
v
~
∗
v_\pi=\tilde{v}_{*}
vπ=v~∗时,策略
π
\pi
π是一个最优的
ε
\varepsilon
ε-软性策略。根据
v
~
∗
\tilde{v}_{*}
v~∗的定义,我们知道它是下式的唯一解
v
~
∗
(
s
)
=
(
1
−
ε
)
max
a
q
~
∗
(
s
,
a
)
+
ε
∣
A
(
s
)
∣
∑
a
q
~
∗
(
s
,
a
)
=
(
1
−
ε
)
max
a
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
v
~
∗
(
s
′
)
]
+
ε
∣
A
(
s
)
∣
∑
a
∑
s
′
,
r
r
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
v
~
∗
(
s
′
)
]
\begin{aligned} \tilde{v}_{*}(s)&=(1-\varepsilon) \max _{a} \tilde{q}_{*}(s, a)+\frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} \tilde{q}_{*}(s, a) \\&=(1-\varepsilon) \max _{a} \sum_{s^{\prime}, r} p\left(s^{\prime}, r \mid s, a\right)\left[r+\gamma \tilde{v}_{*}\left(s^{\prime}\right)\right] \\ &\quad+\frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} \sum_{s^{\prime}, r^{r}} p\left(s^{\prime}, r \mid s, a\right)\left[r+\gamma \tilde{v}_{*}\left(s^{\prime}\right)\right] \end{aligned}
v~∗(s)=(1−ε)amaxq~∗(s,a)+∣A(s)∣εa∑q~∗(s,a)=(1−ε)amaxs′,r∑p(s′,r∣s,a)[r+γv~∗(s′)]+∣A(s)∣εa∑s′,rr∑p(s′,r∣s,a)[r+γv~∗(s′)]
当等式成立且
ε
\varepsilon
ε-软性策略
π
\pi
π 无法再改进的时俟, 由公式(3)我们有
v
π
(
s
)
=
(
1
−
ε
)
max
a
q
π
(
s
,
a
)
+
ε
∣
A
(
s
)
∣
∑
a
q
π
(
s
,
a
)
=
(
1
−
ε
)
max
a
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
v
π
(
s
′
)
]
+
ε
∣
A
(
s
)
∣
∑
a
∑
s
′
,
r
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
v
π
(
s
′
)
]
\begin{aligned} v_{\pi}(s)=&(1-\varepsilon) \max _{a} q_{\pi}(s, a)+\frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} q_{\pi}(s, a) \\ =&(1-\varepsilon) \max _{a} \sum_{s^{\prime}, r} p\left(s^{\prime}, r \mid s, a\right)\left[r+\gamma v_{\pi}\left(s^{\prime}\right)\right] \\ &+\frac{\varepsilon}{|\mathcal{A}(s)|} \sum_{a} \sum_{s^{\prime}, r} p\left(s^{\prime}, r \mid s, a\right)\left[r+\gamma v_{\pi}\left(s^{\prime}\right)\right] \end{aligned}
vπ(s)==(1−ε)amaxqπ(s,a)+∣A(s)∣εa∑qπ(s,a)(1−ε)amaxs′,r∑p(s′,r∣s,a)[r+γvπ(s′)]+∣A(s)∣εa∑s′,r∑p(s′,r∣s,a)[r+γvπ(s′)]
然而,除了下标为
v
π
v_\pi
vπ而不是
v
~
∗
\tilde{v}_{*}
v~∗以外,这个等式和上一个完全相同。由于
v
~
∗
\tilde{v}_{*}
v~∗是唯一解,因此一定有
v
π
=
v
~
∗
v_\pi=\tilde{v}_{*}
vπ=v~∗。
实际上,这里我们已经介绍了如何让策略迭代适用于 ε \varepsilon ε-软性策略。将贪心策略的原生概念扩展到 ε \varepsilon ε-软性策略上,除了得到最优的 ε \varepsilon ε-软性策略外,每一步都能保证策略有所改进。尽管这个分析假设了动作价值函数可以被精确计算,然而它与动作价值函数是如何计算的无关。这样我们就得到了和上一节几乎相同的结论。虽然现在我们只能获得 ε \varepsilon ε-软性策略集合中的最优策略,但我们已经不再需要试探性出发假设了。
5.5 基于重要度采样的离轨策略
所有的学习控制方法都面临一个困境:它们希望学到的动作可以使随后的智能体行为是最优
的,但是为了搜索所有的动作(以保证找到
最优动作),它们需要采取非最优的行动。如何在遵循试探策略采取行动的同时学习到最优策略呢?在前面小节中提到的同轨策略方法实际上是一种妥协——它并不学习最优策略的动作值,而是学习一个接近最优而且仍能进行试探的策略的动作值(
ε
\varepsilon
ε-策略对应的动作)。一个更加直接的方法是干脆采用两个策略,一个用来学习并最终成为最优策略,另一个更加有试探性,用来产生只能以的行动样本。用来学习的策略被称为目标策略
,用于生成行动样本的策略被称为行动策略
。在这种情况下,我们认为学习所用的数据“离开”了待学习的目标策略,因此整个过程被称为离轨策略学习
。
由于离轨策略方法的数据来自于一个不同的策略,所以相比于同轨策略方法,方差更大,收敛更慢。但另一方面离轨策略方法更强大,更通用。
本节我们通过讨论预测
问题来开始对离轨策略的学习,在这个实例中,目标策略和行动策略都是固定的。假设我们希望预测
v
π
v_\pi
vπ或
q
π
q_\pi
qπ,但是我们只有遵循另一个策略
b
(
b
≠
π
)
b(b\neq\pi)
b(b=π)所得到的若干幕样本。在这种情况下,
π
\pi
π是目标策略,
b
b
b是行动策略,两个策略都固定且已知。
为了使用从b得到的多幕样本序列去预测
π
\pi
π,我们要求在
π
\pi
π下发生的每个动作都至少偶尔能在b下发生。换句话说,对任意
π
(
a
∣
s
)
>
0
\pi(a|s)>0
π(a∣s)>0,我们要求
b
(
a
∣
s
)
>
0
b(a|s)>0
b(a∣s)>0。我们称其为覆盖
假设。根据这个假设,在与
π
\pi
π不同的状态中,
b
b
b必须是随机的。
几乎所有的离轨策略方法都采用了重要度采样
,重要度采样是一种在给定来自其他分布的样本的条件下,估计某种分布的期望值的通用方法。我们将重要度采样应用与离轨策略学习,对回报值根据其轨迹在目标策略与行动策略中出现的相对概率进行加权,这个相对概率也被称为重要度采样比
。给定起始状态
S
t
S_t
St,后续的状态-动作轨迹
A
t
,
S
t
+
1
,
A
t
+
1
,
.
.
.
,
S
T
A_t,S_{t+1},A_{t+1},...,S_T
At,St+1,At+1,...,ST在策略
π
\pi
π下发生的概率是
Pr
{
A
t
,
S
t
+
1
,
A
t
+
1
,
…
,
S
T
∣
S
t
,
A
t
:
T
−
1
∼
π
}
=
π
(
A
t
∣
S
t
)
p
(
S
t
+
1
∣
S
t
,
A
t
)
π
(
A
t
+
1
∣
S
t
+
1
)
⋯
p
(
S
T
∣
S
T
−
1
,
A
T
−
1
)
=
∏
k
=
t
T
−
1
π
(
A
k
∣
S
k
)
p
(
S
k
+
1
∣
S
k
,
A
k
)
\begin{aligned} \operatorname{Pr}\{&\left.A_{t}, S_{t+1}, A_{t+1}, \ldots, S_{T} \mid S_{t}, A_{t: T-1} \sim \pi\right\} \\ &=\pi\left(A_{t} \mid S_{t}\right) p\left(S_{t+1} \mid S_{t}, A_{t}\right) \pi\left(A_{t+1} \mid S_{t+1}\right) \cdots p\left(S_{T} \mid S_{T-1}, A_{T-1}\right) \\ &=\prod_{k=t}^{T-1} \pi\left(A_{k} \mid S_{k}\right) p\left(S_{k+1} \mid S_{k}, A_{k}\right) \end{aligned}
Pr{At,St+1,At+1,…,ST∣St,At:T−1∼π}=π(At∣St)p(St+1∣St,At)π(At+1∣St+1)⋯p(ST∣ST−1,AT−1)=k=t∏T−1π(Ak∣Sk)p(Sk+1∣Sk,Ak)
这里,p是状态转移概率函数。因此,在目标策略和行动策略轨迹下的相对概率(重要度采样比)是
ρ
t
:
T
−
1
≐
∏
k
=
t
T
−
1
π
(
A
k
∣
S
k
)
p
(
S
k
+
1
∣
S
k
,
A
k
)
∏
k
=
t
T
−
1
b
(
A
k
∣
S
k
)
p
(
S
k
+
1
∣
S
k
,
A
k
)
=
∏
k
=
t
T
−
1
π
(
A
k
∣
S
k
)
b
(
A
k
∣
S
k
)
\rho_{t: T-1} \doteq \frac{\prod_{k=t}^{T-1} \pi\left(A_{k} \mid S_{k}\right) p\left(S_{k+1} \mid S_{k}, A_{k}\right)}{\prod_{k=t}^{T-1} b\left(A_{k} \mid S_{k}\right) p\left(S_{k+1} \mid S_{k}, A_{k}\right)}=\prod_{k=t}^{T-1} \frac{\pi\left(A_{k} \mid S_{k}\right)}{b\left(A_{k} \mid S_{k}\right)}
ρt:T−1≐∏k=tT−1b(Ak∣Sk)p(Sk+1∣Sk,Ak)∏k=tT−1π(Ak∣Sk)p(Sk+1∣Sk,Ak)=k=t∏T−1b(Ak∣Sk)π(Ak∣Sk)
尽管整体的轨迹概率值与MDP的状态转移概率有关,而且MDP的转移概率通常是未知的,但是它在分子和分母中是完全相同的,所以可被约分。最终,重要度采样比只与两个策略和样本序列数据相关,而且与MDP的动态特性(状态转移概率)无关。
回想一下,之前我们希望估计目标策略下的期望回报(价值),但我们只有**行动策略中的回报
G
t
G_t
Gt。**这些从行动策略中得到的回报的期望
E
[
G
t
∣
S
t
=
s
]
=
V
b
(
s
)
\mathbb{E}[G_t|S_t=s]=V_b(s)
E[Gt∣St=s]=Vb(s)是不准确的,所以不能用它们的平均来得到
v
π
v_\pi
vπ。这里就要用到重要度采样了。使用比例系数
ρ
t
:
T
−
1
\rho_{t:T-1}
ρt:T−1可以调整回报使其具有正确的期望值
E
[
ρ
t
:
T
−
1
G
t
∣
S
t
=
s
]
=
V
π
(
s
)
\mathbb{E}[\rho_{t:T-1} G_t|S_t=s]=V_\pi(s)
E[ρt:T−1Gt∣St=s]=Vπ(s)
现在我们已经做好了准备工作,下面我们给出通过观察到的一批遵循策略b的多幕采样序列并将其回报进行平均来预测
v
π
(
s
)
v_\pi(s)
vπ(s)的蒙特卡洛算法。为了方便起见,我们在这里对时刻进行编号时,即使时刻跨越幕的边界,编号也递增。对于每次访问型方法,我们可以定义所有访问过状态s的时刻集合为
T
(
s
)
\mathcal{T}(s)
T(s)。而对于首次访问型方法,
T
(
s
)
\mathcal{T}(s)
T(s)只包含在幕内首次访问状态s的时刻。我们用
T
(
t
)
T(t)
T(t)来表示时刻t后的首次终止,用
G
t
G_t
Gt来表示t之后到达
T
(
t
)
T(t)
T(t)时的回报值。那么
{
G
t
}
t
∈
T
(
s
)
\{G_t\}_{t \in \mathcal{T}(s)}
{Gt}t∈T(s)就是状态s对应的回报值,
{
ρ
t
:
T
(
t
)
−
1
}
t
∈
T
(
s
)
\{\rho_{t:T(t)-1}\}_{t \in \mathcal{T}(s)}
{ρt:T(t)−1}t∈T(s)是相应的重要度采样比。为了预测
v
π
(
s
)
v_\pi(s)
vπ(s),我们只需要根据重要度采样比来调整回报值并对结果进行平均即可
$$
V(s)\doteq\frac{\sum_{t \in \mathcal{T}(s) }\rho_{t:T(t)-1}G_t}{| \mathcal{T}(s)|}
$$
通过这样一种简单平均实现的重要度采样被称为普通重要度采样
。
另一个重要的方法是加权重要度采样
,它采用一种加权
平均的方法,其定义为
V
(
s
)
≐
∑
t
∈
T
(
s
)
ρ
t
:
T
(
t
)
−
1
G
t
∑
t
∈
T
(
s
)
ρ
t
:
T
(
t
)
−
1
V(s)\doteq\frac{\sum_{t \in \mathcal{T}(s) }\rho_{t:T(t)-1}G_t}{\sum_{t \in \mathcal{T}(s) }\rho_{t:T(t)-1}}
V(s)≐∑t∈T(s)ρt:T(t)−1∑t∈T(s)ρt:T(t)−1Gt
如果分母为零,式(10)的值也定义为零。为了理解两种重要度采样方法的区别,我们讨论它们在首次访问型方法下,获得一个单幕回报之后的估计值。在加权平均的估计中,比例系数
ρ
t
:
T
(
t
)
−
1
\rho_{t:T(t)-1}
ρt:T(t)−1在分子与分母中被约分,所以估计值就等于观测到的回报值,而与重要度采样比无关(假设比例系数非零)。考虑到这个回报值是仅有的观测结果,所以这是一个合理的估计,但它的期望是
v
b
(
s
)
v_b(s)
vb(s)而不是
v
π
(
s
)
v_\pi(s)
vπ(s),在统计学意义上这个估计是有偏的。作为对比,使用简单平均公式(9)得到的结果在期望上总是
v
π
(
s
)
v_\pi(s)
vπ(s)(是无偏的),但是其值可能变得很极端。假设比例系数是10,这意味着,被观测到的决策序列轨迹遵循目标策略的可能性是遵循行动策略的10倍。在这种情况下,普通重要度采样的估计值会是观测到的回报值的10倍。也就是说,尽管该幕数据序列的轨迹应该可以非常有效地反映目标策略,但其估计值却会离观测到的回报值很远。
在数学上,两种重要度采样算法在首次访问型方法下的差异可以用偏差与方差来表示。普通重要度采样的估计是无偏的,而加权重要度采样的估计是有偏的(偏差值渐进收敛到零)。另一方面,普通重要度采样的方差一般是*的,因为重要度采样比的方差是*的。而在加权估计中任何回报的最大权值都是1。其实如果假设回报值有界,那么即使重要度采样比的方差是无穷的,加权重要度采样估计的方差仍能收敛到零。在实际应用时,人们偏好加权估计,因为它的方差经常很小。尽管如此,我们不会完全放弃普通重要度采样,因为它更容易扩展到我们将在本书第二部分提到的基于函数逼近的近似方法。
在5.7节中,我们将会给出一个使用加权重要度采样进行离轨策略估计的完整的每次访问型MC算法。
练习5.5
考虑只有一个非终止状态和一个单一动作的马尔科夫决策过程,动作设定为:以概率p跳回非终止状态,以概率1-p转移到终止状态。令每一时刻所有转移的收益都为+1,且 γ = 1 \gamma=1 γ=1。假设你观察到一幕序列持续了10个时刻,获得了值为10的回报。则对这个非终止状态的首次访问型和每次访问型的价值估计分别是什么?
答:首次访问型:因为只有一幕序列,所以 V = 1 / 1 = 1 V=1/1=1 V=1/1=1。对于每次访问型, V = 9 / 9 = 1 V=9/9=1 V=9/9=1
例5.4 对二十一点游戏中的状态值的离轨策略估计
我们分别采用普通重要度采样和加权重要度采样,从离轨策略数据中估计单个二十一点游戏状态(见例5.1)。之前的蒙特卡洛控制方法的优点之一是它们无需建立对其他状态的估计就能对单个状态进行估计。在这个例子中,我们评估这样一个状态,庄家露出一张牌2,玩家的牌的和是13,且玩家有一张可用的A(也就是说玩家有一张A,一张2,或者与之等价的情况有三张A)。通过从这个状态开始等概率选择要牌或停牌(行动策略)可以得到采样数据。目标策略只在和达到20或21时停牌,这和在例5.1中一样。在目标策略中,这个状态的值大概是-0.27726(这是利用目标策略独立生成1亿幕数据后对回报进行平均得到的)。 两种离轨策略方法在采用随机策略经过1000幕离轨策略数据采样后都很好地逼近了这个值。为了验证结果的可靠性,我们独立运行了100次,每一次都从估计为零开始学习10 000幕。图5.3展示了得到的学习曲线——图中我们将每种方法的估计的均方误差视为幕数量的函数,并将运行100次的结果进行平均。两种算法的错误率最终都趋近于零,但是加权重要度采样在开始时错误率明显较低,这也是实践中的典型现象。
例5.5 无穷方差
普通重要度采样的估计的方差通常是无穷的,尤其当缩放过的回报值具有无穷的方差时,其收敛性往往不尽人意,而这种现象在带环的序列轨迹中进行离轨策略学习时很容易发生。图5.4显示了一个简单的例子。
图中只有一个非终止状态s和两种动作:向左和向右。采取向右的动作将确定地向终止状态转移。采取向左的动作则有0.9的概率回到s,0.1的概率转移到终止状态,后一种转移的收益是+1,其他转移则都是0。我们讨论总是选择向左的动作的目标策略。所有在这种策略下的采样数据都包含了一些回到s的转移,最终转移到终止状态并返回+1。所以,s在目标策略下的价值始终是1( γ = 1 \gamma=1 γ=1)。假设我们正从离轨策略数据中估计这个价值,并且该离轨策略中的行动策略以等概率选择向右或向左的动作。
图5.4的下部展示了基于普通重要度采样的首次访问型MC算法的10次独立运行的结果。即使在数百万幕后,预测值仍然没有收敛到正确的值1。作为对比,加权重要度采样算法在第一次以向左的动作结束的幕之后就给出了1的预测。所有不等于1的回报(即以向右的动作结束时得到的回报)会与目标策略不符,因此重要度采样比 ρ t : T ( t ) − 1 \rho_{t:T(t)-1} ρt:T(t)−1的值为零,对式(10)的中的分子与分母没有任何贡献。加权重要度采样算法只对与目标策略一致的回报进行加权平均,而所有这些回报值都是1。
我们可以通过简单计算来确认,在这个例子中经过重要度采样加权过的回报值的方差是无穷的。随机变量X的方差的定义是其相对于均值 X ˉ \bar{X} Xˉ的偏差的期望值,可以写为:
V a r [ X ] ≐ E [ ( X − X ˉ ) 2 ] = E [ X 2 − 2 X X ˉ + X ˉ 2 ] = E [ X 2 ] − X ˉ 2 . Var[X]\doteq\mathbb{E}[(X-\bar{X})^2]=\mathbb{E}[X^2-2X\bar{X}+\bar{X}^2]=\mathbb{E}[X^2]-\bar{X}^2. Var[X]≐E[(X−Xˉ)2]=E[X2−2XXˉ+Xˉ2]=E[X2]−Xˉ2.
因此,如果像在这个例子中这样,均值是有限的,那么当且仅当随机变量平方的期望是无穷时方差才为无穷。因此我们需要证明经过重要度采样加权过的回报的平方的期望是无穷
E b [ ( ∏ t = 0 T − 1 π ( A t ∣ S t ) b ( A t ∣ S t ) G 0 ) 2 ] \mathbb{E}_{b}\left[\left(\prod_{t=0}^{T-1} \frac{\pi\left(A_{t} \mid S_{t}\right)}{b\left(A_{t} \mid S_{t}\right)} G_{0}\right)^{2}\right] Eb[(∏t=0T−1b(At∣St)π(At∣St)G0)2]
为了计算这个期望,我们把它根据幕的长度和终止情况进行分类。首先注意到,任意以向右的动作结束的幕,其重要度采样比都是零,因为目标策略永远不会采取这样的动作。这样的采样序列不会对期望产生贡献(括号中的值等于零),因此可以忽略。现在我们只需要考虑包含了一定数量(可能是零)的向左的动作返回到非终止状态,然后再接着一个向左的动作转移到终止状态的幕。所有这些幕的回报值都是1,所以可以忽略 G 0 G_0 G0项。为了获得平方的期望,我们只需要考虑每种长度的幕,将每种长度的幕的出现概率乘以重要度采样比的平方,再将它们加起来:
= 1 2 ⋅ 0.1 ( 1 0.5 ) 2 (长度为 1 的幕) + 1 2 ⋅ 0.9 ⋅ 1 2 ⋅ 0.1 ( 1 0.5 1 0.5 ) 2 (长度为 2 的幕) + 1 2 ⋅ 0.9 ⋅ 1 2 ⋅ 0.9 ⋅ 1 2 ⋅ 0.1 ( 1 0.5 1 0.5 1 0.5 ) 2 (长度为 3 的幕) + ⋯ = 0.1 ∑ k = 0 ∞ 0. 9 k ⋅ 2 k ⋅ 2 = 0.2 ∑ k = 0 ∞ 1. 8 k = ∞ . \begin{aligned}=& \frac{1}{2} \cdot 0.1\left(\frac{1}{0.5}\right)^{2} \quad \text { (长度为 } 1 \text { 的幕) } \\ &+\frac{1}{2} \cdot 0.9 \cdot \frac{1}{2} \cdot 0.1\left(\frac{1}{0.5} \frac{1}{0.5}\right)^{2} \quad \text { (长度为 } 2 \text { 的幕) } \\ &+\frac{1}{2} \cdot 0.9 \cdot \frac{1}{2} \cdot 0.9 \cdot \frac{1}{2} \cdot 0.1\left(\frac{1}{0.5} \frac{1}{0.5} \frac{1}{0.5}\right)^{2}\text { (长度为 } 3 \text { 的幕) } \\ &+\cdots \\=& 0.1 \sum_{k=0}^{\infty} 0.9^{k} \cdot 2^{k} \cdot 2=0.2 \sum_{k=0}^{\infty} 1.8^{k}=\infty . \end{aligned} ==21⋅0.1(0.51)2 (长度为 1 的幕) +21⋅0.9⋅21⋅0.1(0.510.51)2 (长度为 2 的幕) +21⋅0.9⋅21⋅0.9⋅21⋅0.1(0.510.510.51)2 (长度为 3 的幕) +⋯0.1k=0∑∞0.9k⋅2k⋅2=0.2k=0∑∞1.8k=∞.
练习 5.6
用给定b生成的回报,类比公式(5.6),用动作价值函数
Q(s,a)替代状态价值函数V(s),得到的式子是什么?
标答:以在状态s采取行动a为条件:
q π ( s , a ) = E π [ ρ t + 1 : T − 1 G t ∣ S t = s , A t = s ] q_\pi(s,a)=\mathbb{E}_\pi[\rho_{t+1:T-1}G_t|S_t=s,A_t=s] qπ(s,a)=Eπ[ρt+1:T−1Gt∣St=s,At=s]
由b产生的回报,动作价值函数为
Q ( s , a ) = ∑ t ∈ T ( s , a ) ρ t + 1 : T − 1 G t ∑ t ∈ T ( s , a ) ρ t + 1 : T − 1 Q_(s,a)=\frac{\sum_{t \in \mathcal{T}(s,a)}\rho_{t+1:T-1}G_t}{\sum_{t \in \mathcal{T}(s,a)}\rho_{t+1:T-1}} Q(s,a)=∑t∈T(s,a)ρt+1:T−1∑t∈T(s,a)ρt+1:T−1Gt
T ( s , a ) \mathcal{T}(s,a) T(s,a)包含了访问状态-价值对儿的时间戳
练习5.7
实际在使用普通重要度采样时,与图5.3所示的学习曲线一样,错误率随着训练一般都是下降的。但是对于加权重要度采样,错误率会先上升然后下降。为什么会这样?
答:
普通重要度采样时,刚开始由于样本的缺少,方差非常大,随着采样的进行,方差会逐渐减小。
加权重要度采样算法在刚开始的幕中有更大的概率会得到零的 ρ \rho ρ,因为目标策略是20和21时停牌,其他时候要牌,但是行动策略是随机选择停牌和要牌,这两种策略导致的行动相同的概率很小。于是刚开始进行估计的实际可用样本少,当累积 ρ = 0 \rho=0 ρ=0,使得前几幕 v ( s ) = 0 v(s)=0 v(s)=0,这个值正好与真实值 v ∗ ( s ) = − 0.2 v_*(s)=-0.2 v∗(s)=−0.2接近,所以刚开始的错误率很小,随着采样的进行,这种接近带来的误差会减小,所以实际上方差会增大,随着采样的进行,方差又会减小。
练习5.8
在图5.4和例5.5的结果中采用了首次访问型MC方法。假设在同样的问题中采用了每次访问型MC方法。估计器的方差仍会是无穷吗?为什么?
标答:
Yes, all terms in the sum are ≥ 0 and there woud just be more of them.
5.6 增量式实现
蒙特卡洛预测方法可以通过拓展第2章(2.4节)中介绍的方法逐幕地进行增量式实现。我们在第2章中对收益
进行平均,在,蒙特卡洛方法中我们对回报
进行平均。除此之外,在第2章中使用的方法可以以完全相同的方式用于同轨策略
的蒙特卡洛方法中。对于离轨策略
的蒙特卡洛方法,我们需要分别讨论使用普通
重要度采样和加权
重要度采样的方法。
在普通重要度采样的条件下,回报先乘上重要度采样比
ρ
t
:
T
(
t
)
−
1
\rho_{t:T(t)-1}
ρt:T(t)−1式(7)进行缩放再简单地取平均。对此,我们同样可以使用第2章中介绍的增量式方法,只要将第2章中的收益替换为缩放后的回报即可。下面需要讨论一下采用加权
重要度采样的离轨策略方法。对此我们需要对回报加权平均,而且需要一个略微不同的增量式算法。
假设我们有一个回报序列
G
1
,
G
2
,
.
.
.
,
G
n
−
1
G_1,G_2,...,G_{n-1}
G1,G2,...,Gn−1,它们都从相同的状态开始,且每一个回报都对应一个随机权重
W
i
W_i
Wi(例如,
W
i
=
ρ
t
:
T
(
t
)
−
1
W_i=\rho_{t:T(t)-1}
Wi=ρt:T(t)−1)。我们希望得到如下的估计,并且在获得了一个额外的回报值
G
n
G_n
Gn时能保持更新。
V
n
≐
∑
k
=
1
n
−
1
W
k
G
k
∑
k
=
1
n
−
1
W
k
,
n
≥
2
,
V_n\doteq \frac{\sum_{k=1}^{n-1}W_k G_k}{\sum_{k=1}^{n-1}W_k}, n \geq 2,
Vn≐∑k=1n−1Wk∑k=1n−1WkGk,n≥2,
我们为了能不断跟踪
V
n
V_n
Vn的变化,必须为每一个状态维护前n个回报对应的权值的累加和
C
n
C_n
Cn。
V
n
V_n
Vn的更新方法是:
V
n
+
1
≐
V
n
+
W
n
C
n
[
G
n
−
V
n
]
,
n
≥
1
V_{n+1}\doteq V_n+\frac{W_n}{C_n}[G_n-V_n], \space\space\space\space\space\space n\geq1
Vn+1≐Vn+CnWn[Gn−Vn], n≥1
以及
C n + 1 ≐ C n + W n + 1 , C_{n+1\doteq C_n+ W_{n+1}}, Cn+1≐Cn+Wn+1,
这里 C 0 ≐ 0 C_0 \doteq0 C0≐0( V 1 V_1 V1是任意的,所以不用特别指定)。下方的框中包含了一个完整的用于蒙特卡洛策略评估的逐幕增量算法。这个算法表面上针对与离轨策略的情况,采用加权重要度采样,但是对于同轨策略的情况同样适用,只需要选择同样的目标策略与行动策略即可(这种情况下 π = b \pi=b π=b,W始终为1)。近似值Q收敛于 q π q_\pi qπ(对于所有遇到的“状态-动作”二元组),而动作则根据b进行选择,这个b可能是一个不同的策略。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Izae9ncz-1639210159400)(D:\研究僧\RL\pic\离轨策略MC预测算法(策略评估),用于估计Q.jpg)]
练习5.9
对使用首次访问型蒙特卡洛的策略评估(5.1节)过程进行修改,要求采用2.4节中描述的对样本平均的增量式实现。
标答:
算法除了以下部分,其他不变:
- 初始化 V ( s ) = 0 , ∀ s ∈ S V(s)=0,\forall s \in \mathcal{S} V(s)=0,∀s∈S
- 不需要 R e t u r n s ( s ) Returns(s) Returns(s)列表
- 删除最后两行,加入:
$ V(S_t)\leftarrow V(S_t)+ \frac{1}{T-t}[G_t-V(S_t)]$
练习5.10
从式(5.7)推导出加权平均的更新规则(式5.8)。推导时遵循非加权规则(式2.3)的推导思路。
推导:
V
n
+
1
−
V
n
=
∑
k
=
1
n
−
1
W
k
G
k
+
W
n
G
n
C
n
−
∑
k
=
1
n
−
1
W
k
G
k
∑
k
=
1
n
−
1
W
k
(
通
分
)
=
∑
k
=
1
n
−
1
W
k
∑
k
=
1
n
−
1
W
k
G
k
+
W
n
G
n
∑
k
=
1
n
−
1
W
k
−
C
n
∑
k
=
1
n
−
1
W
k
G
k
C
n
∑
k
=
1
n
−
1
W
k
=
(
∑
k
=
1
n
−
1
W
k
−
C
n
)
∑
k
=
1
n
−
1
W
k
G
k
+
W
n
G
n
∑
k
=
1
n
−
1
W
k
C
n
∑
k
=
1
n
−
1
W
k
=
V
n
∑
k
=
1
n
−
1
W
k
−
C
n
C
n
+
W
n
G
n
C
n
=
−
W
n
V
n
C
n
+
W
n
G
n
C
n
=
W
n
C
n
(
G
n
−
V
n
)
\begin{aligned} V_{n+1}-V_n&= \frac{\sum_{k=1}^{n-1}W_k G_k+W_n G_n}{C_n}- \frac{\sum_{k=1}^{n-1}W_k G_k}{\sum_{k=1}^{n-1}W_k} \\(通分)&= \frac{\sum_{k=1}^{n-1}W_k \sum_{k=1}^{n-1}W_k G_k+W_n G_n \sum_{k=1}^{n-1}W_k- C_n\sum_{k=1}^{n-1}W_k G_k }{C_n\sum_{k=1}^{n-1}W_k} \\&=\frac{(\sum_{k=1}^{n-1}W_k-C_n)\sum_{k=1}^{n-1}W_k G_k+W_n G_n\sum_{k=1}^{n-1}W_k}{C_n\sum_{k=1}^{n-1}W_k} \\&=V_n\frac{\sum_{k=1}^{n-1}W_k-C_n}{C_n}+\frac{W_n G_n}{C_n} \\&=\frac{-W_nV_n}{C_n}+\frac{W_n G_n}{C_n} \\&=\frac{W_n}{C_n}(G_n-V_n) \end{aligned}
Vn+1−Vn(通分)=Cn∑k=1n−1WkGk+WnGn−∑k=1n−1Wk∑k=1n−1WkGk=Cn∑k=1n−1Wk∑k=1n−1Wk∑k=1n−1WkGk+WnGn∑k=1n−1Wk−Cn∑k=1n−1WkGk=Cn∑k=1n−1Wk(∑k=1n−1Wk−Cn)∑k=1n−1WkGk+WnGn∑k=1n−1Wk=VnCn∑k=1n−1Wk−Cn+CnWnGn=Cn−WnVn+CnWnGn=CnWn(Gn−Vn)
5.7 离轨策略蒙特卡洛控制
我们下面讨论本书涉及的第二类学习控制方法——离轨策略方法。之前介绍的同轨策略方法与其的区别在于,同轨策略方法在使用某个策略进行控制的同时也对那个策略的价值进行评估。在离轨策略方法中,这两个工作是分开的。用于生成行动数据的策略,被称为行动策略
。行动策略可能与实际上被评估和改善的策略无关,而被评估和改善的策略称为目标策略
。这样分离的好处在于当行动策略能对所有可能的动作继续进行采样时,目标策略可以是确定的(比如贪心)。
离轨策略蒙特卡洛控制方法用到了在前两节中提及的一种技术。它们遵循行动策略并对目标策略进行学习和改进。这些方法要求行动策略对目标策略可能做出的所有动作都有非零的概率被选择。为了试探所有的可能性,我们要求行动策略是软性的(也就是说它在所有状态下选择所有动作的概率都非零) 。
下面的框中展示了一个基于GPI和重要度采样的离轨策略蒙特卡洛控制方法,用于估计
π
∗
\pi_*
π∗和
q
∗
q_*
q∗。目标策略
π
≈
π
∗
\pi ≈ \pi_*
π≈π∗是对应Q得到的贪心策略,这里Q是对
q
π
q_\pi
qπ的估计**。行动策略b可以是任何策略**,但为了保证
π
\pi
π能收敛到一个最优的策略,对每一个“状态-动作”二元组都需要取得无穷多次回报,这可以通过选择
ϵ
\epsilon
ϵ-软性的b来保证。即使动作是根据不同的软策略b选择的,而且这个策略可能会在幕间甚至幕内发生变化,策略
π
\pi
π仍能在所有遇到的状态下收敛到最优。
一个潜在的问题是,当幕中某时刻后剩下的动作都是贪心的时候,这种方法也只会从幕的尾部进行学习(?)。如果非贪心的行为较为普遍,则学习的速度会很慢,尤其是对于那些在很长的幕中较早出现的状态就更是如此。这可能会极大的降低学习速度。目前,对于这个问题在离轨策略蒙特卡洛方法中的严重程度尚无足够的研究和讨论。但如果真的很严重,处理这个问题最重要的方法可能是时序差分学习,这一算法思想将在第6章中介绍。另外,如果 γ < 1 \gamma<1 γ<1,则下一节中提到的方法也可能对此有明显帮助。
练习5.11
在算法框内的离轨策略MC控制算法中,你也许会觉得W的更新应该采用重要度采样比 π ( A t ∣ S t ) b ( A t ∣ S t ) \frac{\pi(A_t|S_t)}{b(A_t|S_t)} b(At∣St)π(At∣St),但它实际上却用了 1 b ( A t ∣ S t ) \frac{1}{b(A_t|S_t)} b(At∣St)1。为什么这是正确的?
标答:
π \pi π是贪婪的,所以
π ( a ∣ s ) = 1 a = a r g m a x a ′ Q ( s , a ′ ) \pi(a|s)=\mathbb{1}_{a=\underset{a'}{argmax}Q(s,a')} π(a∣s)=1a=a′argmaxQ(s,a′).
练习5.12(编程)
你正在像图5.5中所示的那样开赛车经过弯道。你想开得尽量快,但又不想因为开得太快而冲出赛道。简化的赛道是网格位置(也就是图中的单元格)的离散集合,赛车在其中一个格内。速度同样也是离散的,在每一步中,赛车可以在水平或者垂直方向上同时移动若干格。动作是速度其中一个分量的变化量。在一个时刻中,任何一个分量的该变量可能为+1、-1或0,总共就有9(3×3)种动作。两种速度分量都限制在非负且小于5,并且除非赛车在起点,否则两者不能同时为零。每幕起始于一个随机选择的起始状态,此时两个速度分量都为零。当赛车经过终点时幕终止。在赛车没有跨过终点线前,每步的收益都是-1。如果赛车碰到了赛道的边缘,它会被重置到起点线上的一个随机位置,两个速度分量都被置为零且幕继续。在每步更新赛车的位置前,先检查赛车预计的路径是否与赛道边界相交。如果它和终点线相交,则该幕结束;如果它与其他任意的地方相交,就认为赛车撞到了赛道边界并把赛车重置回起点线。为了增加任务的挑战性,在每步中,不管预期的增量是多少,两个方向上的速度增量有0.1的概率可能同时为0。使用蒙特卡洛控制方法来计算这个任务中最优的策略并展示最优策略的一些轨迹(展示轨迹时不要加随机噪声)。
*折扣敏感的重要度采样
到目前为止,我们讨论的离轨策略都需要为回报计算重要度采样的权重,它把回报视为单一整体,而不考虑回报是每个时刻的折后收益之和这一内部结构。现在我们简要地介绍一些使用这种结构来大幅减少离轨策略估计的方差的前沿研究思想。
举例来说,考虑一种幕很长且 γ \gamma γ显著小于1的情况。具体来说,假设幕持续100步并且 γ = 0 \gamma=0 γ=0。那么0时刻的回报就会是 G 0 = R 1 G_0=R_1 G0=R1,但它的重要度采样比却会是100个因子之积,即 π ( A 0 ∣ S 0 ) b ( A 0 ∣ S 0 ) π ( A 1 ∣ S 1 ) b ( A 1 ∣ S 1 ) … π ( A 99 ∣ S 99 ) b ( A 99 ∣ S 99 ) \frac{\pi(A_0|S_0)}{b(A_0|S_0)}\frac{\pi(A_1|S_1)}{b(A_1|S_1)}\dots\frac{\pi(A_{99}|S_{99})}{b(A_{99}|S_{99})} b(A0∣S0)π(A0∣S0)b(A1∣S1)π(A1∣S1)…b(A99∣S99)π(A99∣S99)。在普通重要度采样中会用整个乘积对回报进行缩放,但实际上只需要按第一个因子来衡量,即 π ( A 0 ∣ S 0 ) b ( A 0 ∣ S 0 ) \frac{\pi(A_0|S_0)}{b(A_0|S_0)} b(A0∣S0)π(A0∣S0)。另外99个因子: π ( A 1 ∣ S 1 ) b ( A 1 ∣ S 1 ) … π ( A 99 ∣ S 99 ) b ( A 99 ∣ S 99 ) \frac{\pi(A_1|S_1)}{b(A_1|S_1)}\dots\frac{\pi(A_{99}|S_{99})}{b(A_{99}|S_{99})} b(A1∣S1)π(A1∣S1)…b(A99∣S99)π(A99∣S99)都是无关的没因为在得到首次收益之后,整幕回报就已经决定了。后面的这些因子与回报相独立且期望为1,不会改变预期的更新,但它们会极大地增加其方差。在某些情况下,它们甚至可以使得方差无穷大。下面我们讨论一种思路来避免这种与期望更新无关的巨大方差。
这种思路的本质是把折扣看作幕终止的概率,或者说,部分终止的程度
。对于任何
γ
∈
[
0
,
1
)
\gamma \in [0,1)
γ∈[0,1),我们可以把回报
G
0
G_0
G0看作在一步内,以
1
−
γ
1-\gamma
1−γ的程度部分终止,产生的回报仅仅是首次收益
R
1
R_1
R1,然后再在两步后以
(
1
−
γ
)
γ
(1-\gamma)\gamma
(1−γ)γ的程度部分终止,产生
R
1
+
R
2
R_1+R_2
R1+R2的回报,依此类推。后者的部分终止程度对应于第二步的终止程度
1
−
γ
1-\gamma
1−γ,以及在第一步尚未终止的
γ
\gamma
γ。因此第三步的终止程度是
(
1
−
γ
)
γ
2
(1-\gamma)\gamma^2
(1−γ)γ2,其中
γ
2
\gamma^2
γ2对应的是在前两步都不终止。这里的部分回报被称为平价部分回报
G ˉ t : h ≐ R t + 1 + R t + 2 + ⋯ + R h , 0 ≤ t < h ≤ T \bar{G}_{t:h}\doteq R_{t+1}+R_{t+2}+\dots+R_{h}, \space\space\space\space 0\leq t \lt h \leq T Gˉt:h≐Rt+1+Rt+2+⋯+Rh, 0≤t<h≤T,
其中“平价”表示没有折扣,“部分”表示这些回报不会一直延续到终止,而在h处停止,h被称为视界
(T是幕终止的时间)。传统的全回报
G
t
G_t
Gt可被看作上述平价部分回报的总和
G
t
≐
R
t
+
1
+
γ
R
t
+
2
+
γ
2
R
t
+
3
+
⋯
+
γ
T
−
t
−
1
R
T
=
(
1
−
γ
)
R
t
+
1
+
(
1
−
γ
)
γ
(
R
t
+
1
+
R
t
+
2
)
+
(
1
−
γ
)
γ
2
(
R
t
+
1
+
R
t
+
2
+
R
t
+
3
)
⋮
+
(
1
−
γ
)
γ
T
−
t
−
2
(
R
t
+
1
+
R
t
+
2
+
⋯
+
R
T
−
1
)
+
γ
T
−
t
−
1
(
R
t
+
1
+
R
t
+
2
+
⋯
+
R
T
)
=
(
1
−
γ
)
∑
h
=
t
+
1
T
−
1
γ
h
−
t
−
1
G
ˉ
t
:
h
+
γ
T
−
t
−
1
G
ˉ
t
:
T
.
\begin{aligned} G_{t} \doteq & R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\cdots+\gamma^{T-t-1} R_{T} \\ =&(1-\gamma) R_{t+1} \\ &+(1-\gamma) \gamma\left(R_{t+1}+R_{t+2}\right) \\ &+(1-\gamma) \gamma^{2}\left(R_{t+1}+R_{t+2}+R_{t+3}\right) \\ & \vdots \\ &+(1-\gamma) \gamma^{T-t-2}\left(R_{t+1}+R_{t+2}+\cdots+R_{T-1}\right) \\ &+\gamma^{T-t-1}\left(R_{t+1}+R_{t+2}+\cdots+R_{T}\right) \\ =&(1-\gamma) \sum_{h=t+1}^{T-1} \gamma^{h-t-1} \bar{G}_{t: h}+\gamma^{T-t-1} \bar{G}_{t: T} . \end{aligned}
Gt≐==Rt+1+γRt+2+γ2Rt+3+⋯+γT−t−1RT(1−γ)Rt+1+(1−γ)γ(Rt+1+Rt+2)+(1−γ)γ2(Rt+1+Rt+2+Rt+3)⋮+(1−γ)γT−t−2(Rt+1+Rt+2+⋯+RT−1)+γT−t−1(Rt+1+Rt+2+⋯+RT)(1−γ)h=t+1∑T−1γh−t−1Gˉt:h+γT−t−1Gˉt:T.
现在我们需要一种类似的阶段的重要度采样比来缩放平价部分回报。由于
G
ˉ
t
:
h
\bar{G}_{t:h}
Gˉt:h只涉及到视界h为止的收益,因此我们只需要使用到h为止的概率值。我们定义了如下普通重要度采样估计器,它是式(9)的推广
V
(
s
)
≐
∑
t
∈
T
(
s
)
(
(
1
−
γ
)
∑
h
=
t
+
1
T
(
t
)
−
1
γ
h
−
t
−
1
ρ
t
:
h
−
1
G
ˉ
t
:
h
+
γ
T
(
t
)
−
t
−
1
ρ
t
:
T
(
t
)
−
1
G
ˉ
t
:
T
(
t
)
)
∣
T
(
s
)
∣
,
V(s) \doteq \frac{\sum_{t \in \mathcal{T}(s)}\left((1-\gamma) \sum_{h=t+1}^{T(t)-1} \gamma^{h-t-1} \rho_{t: h-1} \bar{G}_{t: h}+\gamma^{T(t)-t-1} \rho_{t: T(t)-1} \bar{G}_{t: T(t)}\right)}{|\mathcal{T}(s)|},
V(s)≐∣T(s)∣∑t∈T(s)((1−γ)∑h=t+1T(t)−1γh−t−1ρt:h−1Gˉt:h+γT(t)−t−1ρt:T(t)−1Gˉt:T(t)),
以及如下的加权重要度采样估计器,它是公式(10)的推广
V
(
s
)
≐
∑
t
∈
T
(
s
)
(
(
1
−
γ
)
∑
h
=
t
+
1
T
(
t
)
−
1
γ
h
−
t
−
1
ρ
t
:
h
−
1
G
ˉ
t
:
h
+
γ
T
(
t
)
−
t
−
1
ρ
t
:
T
(
t
)
−
1
G
ˉ
t
:
T
(
t
)
)
∑
t
∈
T
(
s
)
(
(
1
−
γ
)
∑
h
=
t
+
1
T
(
t
)
−
1
γ
h
−
t
−
1
ρ
t
:
h
−
1
+
γ
T
(
t
)
−
t
−
1
ρ
t
:
T
(
t
)
−
1
)
.
V(s) \doteq \frac{\sum_{t \in \mathcal{T}(s)}\left((1-\gamma) \sum_{h=t+1}^{T(t)-1} \gamma^{h-t-1} \rho_{t: h-1} \bar{G}_{t: h}+\gamma^{T(t)-t-1} \rho_{t: T(t)-1} \bar{G}_{t: T(t)}\right)}{\sum_{t \in \mathcal{T}(s)}\left((1-\gamma) \sum_{h=t+1}^{T(t)-1} \gamma^{h-t-1} \rho_{t: h-1}+\gamma^{T(t)-t-1} \rho_{t: T(t)-1}\right)} .
V(s)≐∑t∈T(s)((1−γ)∑h=t+1T(t)−1γh−t−1ρt:h−1+γT(t)−t−1ρt:T(t)−1)∑t∈T(s)((1−γ)∑h=t+1T(t)−1γh−t−1ρt:h−1Gˉt:h+γT(t)−t−1ρt:T(t)−1Gˉt:T(t)).
5.9 * 每次决策型重要度采样
还有一种方法也可以在离轨策略的重要度采样中考虑回报是收益之和的内部结构,这种方法即使在没有折扣(即
γ
=
1
\gamma=1
γ=1)时,也可以减小方差。在离轨策略估计器(式9)和估计器式(10)中,分子中求和计算中的每一项本身也是一个求和式
ρ
t
:
T
−
1
G
t
=
ρ
t
:
T
−
1
(
R
t
+
1
+
γ
R
t
+
2
+
⋯
+
γ
T
−
t
−
1
R
T
)
=
ρ
t
:
T
−
1
R
t
+
1
+
γ
ρ
t
:
T
−
1
R
t
+
2
+
⋯
+
γ
T
−
t
−
1
ρ
t
:
T
−
1
R
T
\begin{aligned} \rho_{t: T-1} G_{t} &=\rho_{t: T-1}\left(R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^{T-t-1} R_{T}\right) \\ &=\rho_{t: T-1} R_{t+1}+\gamma \rho_{t: T-1} R_{t+2}+\cdots+\gamma^{T-t-1} \rho_{t: T-1} R_{T} \end{aligned}
ρt:T−1Gt=ρt:T−1(Rt+1+γRt+2+⋯+γT−t−1RT)=ρt:T−1Rt+1+γρt:T−1Rt+2+⋯+γT−t−1ρt:T−1RT
离轨策略的估计器依赖于这些项的期望值,那么我们看看看是否可以用更简单的方式来表达这个值。注意式(17)中的每个子项是一个随机收益和一个随机重要度采样比的乘积。例如,用式(7)可以将第一个子项写为
ρ
t
:
T
−
1
R
t
+
1
=
π
(
A
t
∣
S
t
)
b
(
A
t
∣
S
t
)
π
(
A
t
+
1
∣
S
t
+
1
)
b
(
A
t
+
1
∣
S
t
+
1
)
π
(
A
t
+
2
∣
S
t
+
2
)
b
(
A
t
+
2
∣
S
t
+
2
)
⋯
π
(
A
T
−
1
∣
S
T
−
1
)
b
(
A
T
−
1
∣
S
T
−
1
)
R
t
+
1
\rho_{t: T-1} R_{t+1}=\frac{\pi\left(A_{t} \mid S_{t}\right)}{b\left(A_{t} \mid S_{t}\right)} \frac{\pi\left(A_{t+1} \mid S_{t+1}\right)}{b\left(A_{t+1} \mid S_{t+1}\right)} \frac{\pi\left(A_{t+2} \mid S_{t+2}\right)}{b\left(A_{t+2} \mid S_{t+2}\right)} \cdots \frac{\pi\left(A_{T-1} \mid S_{T-1}\right)}{b\left(A_{T-1} \mid S_{T-1}\right)} R_{t+1}
ρt:T−1Rt+1=b(At∣St)π(At∣St)b(At+1∣St+1)π(At+1∣St+1)b(At+2∣St+2)π(At+2∣St+2)⋯b(AT−1∣ST−1)π(AT−1∣ST−1)Rt+1
现在可以注意到,在所有这些因子中,只有第一个和最后一个(收益)是相关;所有其他比率均为期望值为1的独立随机变量
E
[
π
(
A
k
∣
S
k
)
b
(
A
k
∣
S
k
)
]
≐
∑
a
b
(
a
∣
S
k
)
π
(
a
∣
S
k
)
b
(
a
∣
S
k
)
=
∑
a
π
(
a
∣
S
k
)
=
1
\mathbb{E}\left[\frac{\pi\left(A_{k} \mid S_{k}\right)}{b\left(A_{k} \mid S_{k}\right)}\right] \doteq \sum_{a} b\left(a \mid S_{k}\right) \frac{\pi\left(a \mid S_{k}\right)}{b\left(a \mid S_{k}\right)}=\sum_{a} \pi\left(a \mid S_{k}\right)=1
E[b(Ak∣Sk)π(Ak∣Sk)]≐a∑b(a∣Sk)b(a∣Sk)π(a∣Sk)=a∑π(a∣Sk)=1
因此,由于独立随机变量乘积的期望是变量期望值的乘积,所以我们就可以把除了第一项以外的所有比率移出期望,只剩下
E
[
ρ
t
:
T
−
1
R
t
+
1
]
=
E
[
ρ
t
:
t
R
t
+
1
]
.
\mathbb{E}[\rho_{t: T-1} R_{t+1}]=\mathbb{E}[\rho_{t: t} R_{t+1}].
E[ρt:T−1Rt+1]=E[ρt:tRt+1].
如果我们对式(17)的第k项重复这样的分析,就会得到
E [ ρ t : T − 1 R t + k ] = E [ ρ t : t + k − 1 R t + k ] . \mathbb{E}[\rho_{t: T-1} R_{t+k}]=\mathbb{E}[\rho_{t: t+k-1} R_{t+k}]. E[ρt:T−1Rt+k]=E[ρt:t+k−1Rt+k].
这样一来,原来式(17)的期望就可以写成
E [ ρ t : T − 1 G t ] = E [ G ˉ t ] \mathbb{E}[\rho_{t: T-1} G_{t}]=\mathbb{E}[\bar{G}_t] E[ρt:T−1Gt]=E[Gˉt],
其中,
G ˉ t = ρ t : T − 1 R t + 1 + γ ρ t : T − 1 R t + 2 + ⋯ + γ T − t − 1 ρ t : T − 1 R T \bar{G}_t=\rho_{t: T-1} R_{t+1}+\gamma \rho_{t: T-1} R_{t+2}+\cdots+\gamma^{T-t-1} \rho_{t: T-1} R_{T} Gˉt=ρt:T−1Rt+1+γρt:T−1Rt+2+⋯+γT−t−1ρt:T−1RT
我们可以把这种思想称为每次决策型
重要度采样。借助这个思想,对于普通重要度采样器,我们就找到了一种替代方法来进行计算:使用
G
ˉ
t
\bar{G}_t
Gˉt来计算公式(9)相同的无偏期望,以减小估计器的方差
V
(
s
)
≐
G
ˉ
t
ρ
t
:
T
(
t
)
−
1
G
t
∣
T
(
s
)
∣
V(s)\doteq\frac{\bar{G}_t \rho_{t:T(t)-1}G_t}{| \mathcal{T}(s)|}
V(s)≐∣T(s)∣Gˉtρt:T(t)−1Gt
对于加权
重要度采样,是否也有一个每次决策型的版本?我们还不知道。到目前为止,我们已知的所有为其提出的估计器都不具备统计意义上的一致性(即数据无限时,它们也不会收敛到真实值)。
*练习 5.13
给出从公式(18)到(20)的详细推导步骤
*练习5.14
使用截断加权平均估计器(式16)的思想修改离轨策略的蒙特卡洛控制算法(见5.7节)。注意首先需要把这个式子转换为动作价值函数。
5.10 本章小结
本章介绍了从经验中学习价值函数和最优策略的蒙特卡洛方法,这些“经验”的表现形式是多幕采样数据
。相比于DP方法,这样做至少有三个优点。
- 首先,它们不需要描述环境动态特性的模型,而且可以直接通过与环境的交互来学习最优的决策行为。
- 其次,它们可以使用数据仿真或者
采样模型
。在非常多的应用中,虽然很难构建DP方法所需要的显式状态概率转移模型,但是通过仿真采样得到多幕序列数据却是很简单的。 - 第三,蒙特卡洛方法可以很简单和高效地
聚焦
于状态的一个小的子集,它可以只评估关注的区域而不评估其余的状态(第8章会进一步讨论这一点)。
后文还会提到蒙特卡洛方法的第四个优点,蒙特卡洛方法在马尔可夫性不成立时性能损失较小。这是因为它不用后继状态的估值来更新当前的估值。换句话说,这是因为它不需要自举。
在设计蒙特卡洛控制方法时,我们遵循了第4章介绍的广义策略迭代(GPI)的总体架构。GPI包含了策略评估和策略改进的交互过程。蒙特卡洛方法提供了另一种策略评估的方法。蒙特卡洛方法不需要建立一个模型计算每一个状态的价值,而只需要简单地将从这个状态开始得到的多个回报进行平均即可。因为每一状态的价值就是回报的期望,因此这个平均值就是状态的一个很好的近似。在控制方法中,我们特别感兴趣的是去近似动作价值函数,因为在没有环境转移模型的情况下,它也可以用于改进策略。蒙特卡洛方法逐幕地交替进行策略评估和策略改进,并可以逐幕地增量式实现。
保证足够多的试探
是蒙特卡洛控制方法中的一个重要问题。贪心地选择在当前时刻的最优动作是不够的,因为这样其他的动作就不会得到任何回报,并且可能永远不会学到实际上可能更好的其他动作。一种避免这个问题的方法是随机选择每幕开始的“状态-动作”二元组,使其能够覆盖所有的可能性。这种试探性出发
方法有时可以在具备仿真采样数据的应用中使用,但不太可能应用在具有真实经验的学习中。在同轨策略
方法中,智能体一直保持试探并尝试寻找也能继续保持试探的最优策略。在离轨策略
中,虽然智能体也在试探,但它实际上学习的可能是与它试探时使用的策略无关的另一个确定性最优策略。
离轨策略
预测指的是在学习目标策略的价值函数时,使用的是另一个不同的行动策略
所生成的数据。这种学习方法基于某种形式的重要度采样
,即用在两种策略下观察到的动作的概率的比值对回报进行加权,从而把行动策略下的期望值转化为目标策略下的期望值。普通重要度采样
将加权后的回报按照采样幕的总数直接平均,而加权重要度采样
则进行加权平均。普通重要度采样得到的是无偏估计,但具有更大的甚至是无限的方差。在实践中更受青睐的是加权重要度采样,它的方差总是有限的。尽管离轨策略蒙特卡洛方法的概念很简单,但它在预测和控制问题中的应用问题还尚未解决,还在研究中。
本章中讨论的蒙特卡洛方法与第4章中讨论的DP方法的不同之处在于以下两个方面。第一,蒙特卡洛方法是用样本经验计算的,因此可以无需环境的概率转移模型,直接学习。第二,蒙特卡洛方法不自举。也就是说,它们不通过其他价值的估计来更新自己的价值估计。这两个差异并不是绑定在一起的,而是可以分开的。在第6章中,我们考虑像蒙特卡洛方法一样从经验中学习,但也想DP方法一样自举的方法。
无关的另一个确定性最优策略。
离轨策略
预测指的是在学习目标策略的价值函数时,使用的是另一个不同的行动策略
所生成的数据。这种学习方法基于某种形式的重要度采样
,即用在两种策略下观察到的动作的概率的比值对回报进行加权,从而把行动策略下的期望值转化为目标策略下的期望值。普通重要度采样
将加权后的回报按照采样幕的总数直接平均,而加权重要度采样
则进行加权平均。普通重要度采样得到的是无偏估计,但具有更大的甚至是无限的方差。在实践中更受青睐的是加权重要度采样,它的方差总是有限的。尽管离轨策略蒙特卡洛方法的概念很简单,但它在预测和控制问题中的应用问题还尚未解决,还在研究中。
本章中讨论的蒙特卡洛方法与第4章中讨论的DP方法的不同之处在于以下两个方面。第一,蒙特卡洛方法是用样本经验计算的,因此可以无需环境的概率转移模型,直接学习。第二,蒙特卡洛方法不自举。也就是说,它们不通过其他价值的估计来更新自己的价值估计。这两个差异并不是绑定在一起的,而是可以分开的。在第6章中,我们考虑像蒙特卡洛方法一样从经验中学习,但也想DP方法一样自举的方法。