强化学习系列(七):n-step Bootstrapping (步步为营)

一、前言

强化学习系列(五):蒙特卡罗方法(Monte Carlo)强化学习系列(六):时间差分算法(Temporal-Difference Learning)中,我们介绍了两种用于求解环境模型未知的MDP方法:MC和TD,MC是一种每episode更新一次的方法,TD是单步更新的方法,n-step Bootstrapping (步步为营)是一种介于TD和MC之间的方法,n-step更新一次。

本章我们仍然按照GPI思想,分prediction 和control 问题介绍n-step Bootstrapping (步步为营)方法。

二、n-step TD prediction

n-step TD prediction方法是一种介于蒙特卡罗方法(Monte Carlo)和时间差分算法(Temporal-Difference Learning)之间的方法,与MC和TD的Backup图如下:
这里写图片描述
最左侧的为我们在第六章中介绍的TD(0)算法,最右侧为我们在第五章中介绍的MC算法,当在一个采样数据中选择以n步数据来更新value function 时,采用的方法为 n-step TD prediction。

此处以更新 S t 的state-value的估计值来说明n-step TD prediction,假设采样数据为 S t , R t + 1 , S t + 1 , R t + 2 , . . . , R T , S T


MC:
这里写图片描述

TD:(one-step return)
这里写图片描述
其中 γ V t ( S t + 1 ) 代替了 γ R t + 2 + γ 2 R t + 3 + . . . + γ T t 1 R T

two-step return:
这里写图片描述

n-step return:
这里写图片描述


n-step 的state value更新公式为
这里写图片描述

算法伪代码:
这里写图片描述

三、n-step TD Control

上一小节介绍了n-step TD用于prediction问题,本节介绍n-step TD Control,主要介绍分为on-policy方法(n-step Sarsa)和off-policy方法,分别对使用Importance Sampling和不使用Importance Sampling(的方法 n-step Tree Backup Algorithm),以及部分使用Importance Sampling的方法(n-step Q(σ))做介绍。

3.1 n-step Sarsa

首先介绍on-policy方法n-step Sarsa,在第六章中我们介绍了one-step sarsa( sarsa(0) )方法,下面我们画出一系列Sarsa的backup 图。
这里写图片描述

我们重新定义n-step returns(update targets) :
这里写图片描述
当 t + n大于T时,
这里写图片描述

action-value function 更新公式为
这里写图片描述

算法伪代码为:
这里写图片描述

3.2 n-step Off-policy Learning by Importance Sampling

第六章中提到了两种off-policy的方法,我们首先来看基于 Importance Sampling 的off-policy方法。
回忆一下off-policy learning,用于采样的策略b (behavior policy) 和用于evlauate、improve的策略 π (target policy) 是两个不同的策略。为了用策略b的数据来估计策略 π,需要计算两策略之间的关系, 即 Importance Sampling ratio:
这里写图片描述

在n-step off-policy learning中,我们只需要考虑n个action,故state value function 更新公式如下:
这里写图片描述

在第五章中我们讨论过,在环境模型未知的情况下,仅仅估计state value function不能进行Policy improvement,因此,需要估计action value,此时,注意action value的更新需要state-action pair,即本时刻的state s t 选择的 a t 是已知的,所以在估计action value时,Importance Sampling ratio从t+1时刻开始:
这里写图片描述

算法伪代码如下:
这里写图片描述

刚刚提到的基于Importance Sampling的off-Policy learning 非常简单,但不太实用,更常用的是采用per-decision importance sampleing 思想,接下来来介绍以下这种方法。
首先,普通的 n-step return可以写作:
这里写图片描述
再考虑 off-policy中,behavior policy和 target policy不同即 b π ,假设在t时刻由b生成的action,永远不会被 π 选择,即这里写图片描述为0,这会导致这一组采样数据的Importance Sampling ratio为0,从而产生较大的方差。如果我们换一种方式表示update target G t : h 的话,会更好:
这里写图片描述

此时,如果 ρ t = 0 ,target G t : h = V h 1 ( S t ) 不为零且保持不变,所以不会引起较大的方差。这种方法叫做control variate。

对action-value的更新如下:
这里写图片描述

3.3 Off-policy Learning Without Importance Sampling:The n-step Tree Backup Algorithm

off-policy可以不通过importance sampleing的方式进行更新吗?在第六章中我们提到的Q learning 和 Expected sarsa都是Off-policy Learning Without Importance Sampling,可以将这一思想引申到n-step TD 中吗?本节将介绍一种不需要Importance Sampling 的 Off-policy Learning 方法:n-step Tree Backup Algorithm。该算法的backup图如下:
这里写图片描述
该算法构建了一个树状结构,每一层的action,除了选定的action A i 外,还有潜在的未被选择的action。从叶节点处反馈来更新action value 的估计值。简单来说,用所有叶节点的加权和来更新action value 的估计值。所有的叶节点均为未被选择的action,而被选择的action作为中间节点存在。

从上往下看,从 S t , A t S t + 1 A t + 1 ,所有未被选择的action a可能被选择的概率为 π ( a | S t + 1 ) ,对action value 的估计值的贡献权重为 π ( a | S t + 1 ) ,第二层,从 S t + 1 A t + 1 S t + 2 A t + 2 ,所有未被选择的action a’ 可能被选择的概率为 π ( a | S t + 2 ) ,所有叶节点(未被选择的action)对action value 的估计值的贡献权重为 π ( A t + 1 , S t + 1 ) π ( a | S t + 2 ) ,第三层,所有叶节点(未被选择的action a”)对action value 的估计值的贡献权重为 π ( A t + 1 , S t + 1 ) π ( A t + 2 | S t + 2 ) π ( a | S t + 3 ) 。明确了权重的分配,我们来看具体的计算过程:


target for on-step tree backup algorithm(Expected Sarsa)
这里写图片描述

target for two-step tree backup algorithm
这里写图片描述

target for n-step tree backup algorithm
这里写图片描述


action value的更新公式为
这里写图片描述

算法伪代码如下:
这里写图片描述

其实,这个算法的思想在于平衡了action之间的探索问题,将采样数据中没有选择到的action以选择概率的形式体现在了target 中,相当于使得Policy b的采样数据得到扩展。

3.4 A Unifying Algorithm: n-step Q(σ)

上文中我们介绍了n-step sarsa 和 n-step tree backup algorithm,一种是只on-policy的方法,另一种是off-policy的方法,我们观察他们的backup 图发现很有意思,n-step sarsa的backup 图是一颗没有分叉的树,而 n-step tree backup algorithm的backup 图是一颗每个state选择action时都有分叉的树,那么能不能找到一个介于他们之间的算法呢?这就是n-step Q(σ),他的backup 图如下:
这里写图片描述

使得树的一节分叉一节不分叉我们可以获得n-step Q(σ),他的backup 图,那么n-step Q(σ)的target,也可以看做n-step sarsa 和 n-step tree backup algorithm的结合。引入一个切换变量 σ ,当 σ = 1 时,采用sarsa,当 σ = 0 时,采用 tree backup。

由于target for n-step sarsa可以写作:
这里写图片描述

我们可以构造TD error如下:
这里写图片描述
其中这里写图片描述

可以定义n-steps Q(σ) 的returns 如下:
这里写图片描述

在off-policy中,需要在importance sample ratio中也引入 σ :
这里写图片描述

算法伪代码如下:
这里写图片描述

四、总结

本章中我们介绍了介于MC和TD(0)之间的方法,这些方法在性能上比MC和TD(0)优秀。但是这些方法也有缺点计算相比MC和TD(0)过于复杂,和TD(0)相比,这些算法需要更大的存储空间用来存储state,action和reward,在第12章中我们会介绍如何用小计算量和小存储空间来运用multi-step TD。

David Silver 课程
Reinforcement Learning: an introduction

猜你喜欢

转载自blog.csdn.net/LagrangeSK/article/details/81353394