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。
此处以更新
MC:
TD:(one-step return)
其中
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
算法伪代码如下:
刚刚提到的基于Importance Sampling的off-Policy learning 非常简单,但不太实用,更常用的是采用per-decision importance sampleing 思想,接下来来介绍以下这种方法。
首先,普通的 n-step return可以写作:
再考虑 off-policy中,behavior policy和 target policy不同即
此时,如果
对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
从上往下看,从
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的结合。引入一个切换变量
由于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
相关阅读
一、背景 实时计算应用主要分为以下四类:(1)ETL:ETL应该是目前实时计算最普遍的应用场景。例如在TDBank的数据链路中,TDSort读取消息缓
巴科斯范式(Backus-Naur Form)是一种由Backus和Naur引入的形式化符号表示编程语言的语法。 规范 引号中的字符表示这些他们本身,quo
社区团购怎么做?有赞“群团购”更名“社区团购” 强化团长管理功能。社区团购市场还在不断加热。不仅十荟团
分布式的发展史1946年情人节(2.14),世界上第一台电子数字计算机诞生在美国宾夕法尼亚大学,他的名字叫ENIAC,这台计算机占地170米,重
前言: 对于muduo库,我觉得,光Linux多线程上提到的一些实现,还是不够的,在base/里面,还有/net里面提供了很多不错的实现,值得去学习,暑