分级加权打分算法 java_7.5 无重要性采样的离策略学习:n-步备份树算法

忙于琐事,有几天没更新啦。原来计划是去年放假回去把这个专栏写的差不多,奈何在家中真是无心学习啊(主要是冷)。即使开学这么久还没完成。索性就悠然下来,闲暇放松的时候写一写。一方面是因为觉得太急促,容易出错;再者写文章还真是个费时费力的活,需要心平气和。但是,我相信一定会一个不拉的写完这个系列,毕竟有始有终嘛。

好了,言归正传。本节我们继续介绍一个n-step的TD方法。叫做树备份算法(tree-backup algorithm),也是一个off-policy的方法。但是我们不用重要性采样。(对于待带*号的章节,后续在补充)

我们先介绍一下树备份备份算法的主要思想。

看到这个名字,我们大概就能知道这个算法的核心思想:一是采用树的结构,二是在树结构上执行备份操作。

回想什么叫备份?通过后续状态的值更新当前状态值的操作,叫做备份。所有的更新操作都可以叫做备份,区别在于用那些状态备份,如何备份。

我们先给出一个3步树备份算法的备份图:

9dfc56f3410253521397817be97f4a08.png

包含两个采样动作

。大家可能注意到了,这个图和以往的有点不同。在MC中,就是一个分支,直到终止状态。在TD中也是一个分支,不同在于我们只采样有限步,然后用估计的值函数替代后续的采样回报(bootstrapping)。
这里有采样,但是也包含没有采样到的动作值函数(图中左右节点),这样就构成了一个树的结构。我们把没有采样到的动作节点叫做叶子节点(所谓叶子节点就是没有子节点的节点,在状态
的时候,我们一个动作都没选择,对应它的子节点都是叶子节点)。

有个这个备份图,到底怎么更新父节点的值呢?比如对于节点

.

更新目标

正常的,我们可能就是使用实际采样的序列

这条分支(中间)的量来构造更新的目标。但是在树备份更新中,不仅包含采样的动作序列,还得考虑旁路(图中左右叶子节点),也就是没有选择的节点。整个更新,
类似于从叶子节点到根节点的一次回溯,因此我们叫做树备份

大概知道了更新目标(父节点)是通过叶子节点值函数构造的。到底怎么写这个方程呢?这里我们给每个叶子节点都分配一个权重,权重的大小正比于叶子节点所对应的动作

在目标策略
下的概率。而更新目标就是以此概率作为权重的所有的叶子节点的加权和。对于第一层的叶子节点(
下面左右的两个节点),权重为
.而对于该层的非叶子节点,也就是
,它发生的概率
用来对所有第2层的节点加权。

1025aee1ba66664ae6cb8ab7d415fa46.png

对于每个叶子节点以及他们的加权权重如上图所示,我们的备份操作是从下往上的,如红色箭头所示。

下面具体的给出树备份算法的公式:

对于一步的备份算法,update target是:

2步备份算法的update target是:

可以通过下图理解上图的公式:

6528235dd7720f8b077630d781d56612.png

公式中第一项对应的是第一层叶子节点的加权和(蓝色节点),第二项表示的是图中阴影部分的加权值。稍微观察我们就发现,阴影部分又构成了一颗子树,它的值就等于

.因此我们可以得到任意一个
步树备份算法的迭代公式:

时,用公式(7.15),
时,
,表示最后一个终止状态的回报。

控制算法

有了更新的update target,我们可以依照

-步Sarsa算法构造一个控制算法:

整个流程伪代码如下:

ddb520a35abf891eaf1271c50486126e.png

思考

为什么这种树备份的操作避免了重要性采样?

我谈谈理解,不一定对。首先这无疑是一个off-policy的算法。因为通过上面伪代码黄色部分字体,我们知道每一步选择动作的时候是随机选择的。那么对于重要性采样,它的核心的作用是什么呢?是为了纠正行为策略和目标策略导致的状态动作对的分布差异(state distribution inducted by behavior policy and target policy)。树备份的这种操作,有点类似DP算法,因为它考虑了所有的动作,但是树的延伸方向又依赖于采样操作。只有采样到的动作才生长出子节点来。更新的时候,把未采样的动作值函数也考虑进去,这无疑降低了采样动作(行为策略)对于更新的影响。另一个方面,所有更新权重都是依赖于目标策略的。这可以看做是一种纠正。所以综上两点,就能最大限度的降低离策略对更新的影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值