必威体育Betway必威体育官网
当前位置:首页 > IT技术

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

时间:2019-09-29 13:14:21来源:IT技术作者:seo实验室小编阅读:90次「手机版」
 

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。

此处以更新St" role="presentation">St的state-value的估计值来说明n-step TD prediction,假设采样数据为St,Rt+1,St+1,Rt+2,...,RT,ST" role="presentation">St,Rt+1,St+1,Rt+2,...,RT,ST


MC:

这里写图片描述

TD:(one-step return)

这里写图片描述

其中γVt(St+1)" role="presentation">γVt(St+1)代替了γRt+2+γ2Rt+3+...+γT−t−1RT" role="presentation">γRt+2+γ2Rt+3+...+γTt1RT

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 st" role="presentation">st选择的at" role="presentation">at是已知的,所以在估计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≠π" role="presentation">bπ ,假设在t时刻由b生成的action,永远不会被π" role="presentation">π选择,即这里写图片描述为0,这会导致这一组采样数据的Importance Sampling ratio为0,从而产生较大的方差。如果我们换一种方式表示update target Gt:h" role="presentation">Gt:h的话,会更好:

这里写图片描述

此时,如果ρt=0" role="presentation">ρt=0,target Gt:h=Vh−1(St)" role="presentation">Gt:h=Vh1(St)不为零且保持不变,所以不会引起较大的方差。这种方法叫做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 Ai" role="presentation">Ai外,还有潜在的未被选择的action。从叶节点处反馈来更新action value 的估计值。简单来说,用所有叶节点的加权和来更新action value 的估计值。所有的叶节点均为未被选择的action,而被选择的action作为中间节点存在。

从上往下看,从St,At" role="presentation">St,AtSt+1,At+1" role="presentation">St+1At+1,所有未被选择的action a可能被选择的概率为π(a|St+1)" role="presentation">π(a|St+1),对action value 的估计值的贡献权重π(a|St+1)" role="presentation">π(a|St+1),第二层,从St+1,At+1" role="presentation">St+1At+1St+2,At+2" role="presentation">St+2At+2,所有未被选择的action a’ 可能被选择的概率为π(a‘|St+2)" role="presentation">π(a|St+2),所有叶节点(未被选择的action)对action value 的估计值的贡献权重为π(At+1,St+1)π(a′|St+2)" role="presentation">π(At+1,St+1)π(a|St+2),第三层,所有叶节点(未被选择的action a”)对action value 的估计值的贡献权重为 π(At+1,St+1)π(At+2|St+2)π(a″|St+3)" role="presentation">π(At+1,St+1)π(At+2|St+2)π(a|St+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的结合。引入一个切换变量σ" role="presentation">σ,当σ=1" role="presentation">σ=1时,采用sarsa,当σ=0" role="presentation">σ=0时,采用 tree backup。

由于target for n-step sarsa可以写作:

这里写图片描述

我们可以构造TD ERROR如下:

这里写图片描述

其中这里写图片描述

可以定义n-steps Q(σ) 的returns 如下:

这里写图片描述

在off-policy中,需要在importance sample ratio中也引入σ" role="presentation">σ:

这里写图片描述

算法伪代码如下:

这里写图片描述

四、总结

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

David Silver 课程

Reinforcement Learning: an introduction

相关阅读

腾讯Oceanus实时计算平台架构设计---学习总结

一、背景 实时计算应用主要分为以下四类:(1)ETL:ETL应该是目前实时计算最普遍的应用场景。例如在TDBank的数据链路中,TDSort读取消息缓

BNF学习笔记

巴科斯范式(Backus-Naur Form)是一种由Backus和Naur引入的形式化符号表示编程语言的语法。 规范 引号中的字符表示这些他们本身,quo

社区团购怎么做?有赞“社区团购” 强化团长管理功能

社区团购怎么做?有赞“群团购”更名“社区团购” 强化团长管理功能。社区团购市场还在不断加热。不仅十荟团

分布式架构的演进(来自咕泡学院学习笔记)

分布式的发展史1946年情人节(2.14),世界上第一台电子数字计算机诞生在美国宾夕法尼亚大学,他的名字叫ENIAC,这台计算机占地170米,重

muduo源码学习笔记(1)

前言: ​ 对于muduo库,我觉得,光Linux多线程上提到的一些实现,还是不够的,在base/里面,还有/net里面提供了很多不错的实现,值得去学习,暑

分享到:

栏目导航

推荐阅读

热门阅读