第七章 n步自举读书笔记

第七章 n步自举

在本章中,我们结合了前两章讲的蒙特卡洛方法和一步时序差分方法,拓展出n步TD方法。N步方法使我们从TD(0)的一步时间限制中跳出,可以根据问题合理的选择n的大小。和往常一样,我们先介绍n步自举的预测问题,然后在考虑它的控制问题。

7.1 n步TD预测

一步TD方法是等一个时间步数后根据下一个状态的估计值自举计算,而蒙特卡洛方法是等所有的时间步数完成后进行计算,n步自举是中间的任何数,可以是二步自举,也可以是三步自举···下图展示了三者之间的区别。

这种方法仍然是TD方法,是因为仍然是根据后来的估计值的差别来更行之前的估计值,只不过在n步之后才进行更新,所以叫n步TD方法。

蒙特卡罗方法的更新目标(target of the update)为:Gt = Rt+1 + γRt+2 + γ2Rt+3 + ··· +γT-t-1RT

一步TD方法的一步返回为:Gt:t+1 = Rt+1 + γVt(St+1)

N步返回为:Gt:t+n = Rt+1 + γRt+2  + γVt(St+n)

那么n步更新公式为:Vt+n(St) = Vt+n-1 (St)+ α[Gt:t+n – Vt+n-1(St)]

N步更新的代码如下图所示

N步返回的一个重要属性是在最糟糕的状态下它偏差的期望一定小于或等于Vt+n-1的估计。即

这种性质称为误差变小属性。所以n步TD方法能在合适的条件下收敛到正确的估计值。

例子 7.1 把n步TD方法用在随机行走上

在随机行走这个例子中,我们把5个状态的值函数都设为0.5,假设有一个情节:C,D,E,terminal 产生+1的回报。如果是一步返回的话,只有V(E)的值函数会朝着1变化,如果是两步返回的话,V(D)和V(E)的返回都会朝着一变化,如果n >= 3 ,则访问过的C,D,E的值函数都会朝着1变化。

从这个例子中可以看出,结合了蒙特卡洛方法和TD方法的n步TD方法有比它们两个极端的情况性能都要好的潜能。

7.2 n步Sarsa

这一节讲控制问题,之前讲的Sarsa是一步Sarsa。它的状态行为对的反向传播树图表为:

N步返回为

更新公式为

伪代码为

期望Sarsa的n步返回为

7.3 基于重要性采样的n步离策略学习

离策略学习是学习策略Π的值函数,同时用另一个更加探索性的策略来作为行为策略,而Π策略是根据Q函数贪婪选择的。我们还是用重要性采样比来表示目标策略和行为策略的不同。因为n步策略有n个action,所以重要性采样比ρ的计算只需要从t到t+n。

其中

下面的公式也可以把n步sarsa更新包括起来,只是重要性采样比是1。

注意到ρ是从n+1开始算的,这是因为我们考虑的是状态-行为对,只考虑接下来的行动。完整算法的伪代码如下图所示:

离策略的期望Sarsa的更新公式和上面是一样的只是重要性系数比少了一项,是ρt+1:t+n-2,而不是ρt+1:t+n-1。因为在最后一个状态中所有可能的行为都被考虑进去了。

7.4 *带有控制变量的每步离策略方法

前几节对多步离策略的方法的介绍是简单和概念上清晰的,但是它们可能不是最高效的。一个更复杂的方法是利用像5.9节中每步决策重要性采样的思想。对于n步返回,可以写成迭代形式的如 Gt:h = Rt+1 + γGt+1:h         

现在考虑离线学习,当行为策略和目标策略不一样时,就需要引入重要性系数,考虑当在时间t时the action被策略Π选择的可能性为0,那么ρt为0,导致n步返回为0,这就会造成比较大的变动。另外一种更复杂的方法中我们使用了另一种离线返回的表示:

在这个表示下,当ρt为0时,Gt:h等于Vh-1(St),相当于没有变化。这个公式也是在线返回的一种统一(在线算法的ρt=1)。

带有控制变量的离线形式为

重要性采样促成了离线学习,但是会有较大的更新偏差,这就造成步进参数阿尔法设置的小点,因此导致学习很缓慢。离线学习比在线学习收敛慢的问题可能是不可避免的,毕竟行动策略和目标策略不一样。但是有方法来改进它们,控制变量就是降低方差的一种方法。下一节介绍一个不使用重要性采样的方法。

7.5 无重要性采样的离策略学习:n步反向传播树算法

反向传播树算法是一种不使用重要性采样方法的方法。反向传播树更新是根据完整树的估计行为值进行更新的。它的一步更新和期望Sarsas是相同的。

Gt:t+1 = Rt+1 + γ

两步更新为

由该公式可以得出递归形式的更新公式为

所以行为-值更新公式为

算法的伪代码如下所示

 

7.6 *一个统一的算法: n-step Q(σ)

到目前为止我们学习了三种不同的行为值更新算法,n步Sarsa是用的全是采样转换,n步期望Sarsa只有在最后一步用到了所有的分支,其余也是都是用的采样转换,而反向传播树更新没有使用采样转换而是利用了所有的分支。

上图的第四个给我们提供了提示,我们是不是可以一步一步地进行考虑这一步是不是按照采样转换如Sarsa那样,或者计算所有行动值的期望,像反向传播树那样。如果一直利用采样转化,那就成为了Sarsa;如果只有在最后一步使用期望,那就称为期望Sarsa,如果全是计算期望就成为反向传播树算法。

我们用σt来代表采样的度,σt=1代表着使用采样转化,σt=0代表着计算期望而不用采样转换。随机变量σt可能是At或者St或者St-At的函数。我们称这种新算法为n-step Q(σ)。

由于

和带有控制变量的离策略公式

只有Π和ρ不同所以可以整合在一个公式中为

离策略 n-step Q(σ)伪代码如下所示

7.7 总结

在这一章中我们在时序差分学习和蒙特卡洛方法中拓宽了TD方法。实验证明在中间步数的自举方法是十分重要的,要比两种极端情况下要表现得好。

我们在这一章的重点是n步方法,n步方法是向前多看了n个回报,状态和行为。N步自举的几个缺点:更新有n步的延迟,计算和内存要求比较高。在第12章用资格痕迹方法可以花费较少的计算和内存。

虽然n步自举比用资格痕迹花费大,但是它们的概念更加简单,我们也利用这个优势在n步的情况下把离线学习用两种方式来实现,一是通过重要性采样,而是基于反向传播树的更新。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值