深度强化学习实验室
官网:http://www.neurondance.com/
论坛:http://deeprl.neurondance.com/
作者:高新根博士(DeepRL-Lab研究员)
编辑:DeepRL
本文章读者能简单理解如下几个问题:
估计值函数的主要方法有哪些?(文章中将简单介绍这些方法)
为什么说TD(Temporal Difference Method )算法的估计量高偏差低方差?
为什么说MC(Monte Carlo Method)算法的估计量无偏差高方差?
-return如何做到在方差和方差间找平衡点的?
TD(
)为何比
-return有计算方面的优势?
TD、MC、
-return以及TD(
)之间的关系是什么?
策略梯度(Policy Gradient)方法为何经常用到优势函数(Advantage Function)?
最常用的优势函数的估计方法GAE(Generalized Advantage Estimation)与
-return有什么关系?
大部分强化学习算法中需要用到值函数(状态值函数或者动作值函数),估计值函数的方法主要有时序差分(Temporal-difference, TD)算法和蒙特卡罗(Monte Carlo, MC)方法。这些方法各有优缺点,TD算法的估计量具有高偏差(Bias)低方差(Variance)的特点,相反,MC算法的估计量具有低偏差高方差的特点。Hajime在2000年提出了一种巧妙地在偏差与方差间找平衡的方法,称为-return(按照Sutton的RL书的叫法)。TD(
)是Sutton提出的能够使计算消耗更平均的
-return的变种。
此外,一部分策略梯度(Policy Gradient)的方法经常会选择优势函数来构造策略梯度。泛化优势估计(Generalized Advantage Estimation, GAE)是John Schulman提出的估计优势函数的方法,它实际是将-return方法应用于估计优势函数的方法。
本篇文章将几个最基本的估计值函数的方法(包括TD、MC、-return和TD(
))以及估计优势函数的方法(GAE)放在一起介绍,为的是梳理这些方法之间的关系(文末讨论),希望对读者有所帮助。除了常规介绍这些方法的具体内容外,笔者总结本文与其它相关文章的增加的主要信息有:
简单分析了这些方法偏差与方差的高低特点,比如为何说TD算法高偏差低方差。
简单梳理了这些方法之间的关系
1.值函数的估计方法
1.1 时序差分算法
强化学习中Agent与环境的交互过程是由马尔可夫决策过程(Markov Decision Process, MDP)描述的。MDP对环境做了一个假设,称作马尔可夫性质,即下一时刻的状态只由上一时刻的状态和动作决定。该假设下,状态转移概率分布可以被简化:
马尔可夫性质决定了值函数(状态值与动作值函数)可以写成递归的形式,即贝尔曼等式:其中
为状态转移概率分布。
贝尔曼等式清晰地展示了值函数之间的迭代规律,或者说是相邻两个时刻的值函数间的关系: (以状态值函数为例)当前时刻的状态值等于下一时刻的回报值与下一时刻的状态值的和的期望。
假设当前需要估计某个策略 对应的值函数
,我们可以用一个参数化函数
来近似真实的状态值函数
。贝尔曼等式可以用于作为评判近似的值函数是否接近真实值函数的标准:如果近似的值函数也具有贝尔曼等式的迭代性质,就可以认为
是
合适的近似函数。按照该思路,可以用如下的时序差分误差作为度量
性能的标准,即TD-error或者TD-residual:
一种常见的方式是最小化TD-error的平方值为目标指导参数 的优化,即求解如下最优化问题:
此外,Q函数也可以用同样的方法进行估计。
挖个坑找个时间补:TD算法可以用贝尔曼算子来做另外一种解读。
(3) TD算法的特点——高偏差低方差
TD算法可以看成是利用策略 生成的样本
,并且使用
作为值函数
的估计量。整个优化的过程,近似值函数
与真实的值函数之间一直存在误差,它们之间的关系可以表示为:
其中, 为近似误差。
接着按照检验估计量无偏性的思路,检查估计量的期望与估计量之间是否相等。估计量 的期望可以做如下转化:
可以看出估计量中存在 这个无法避免的偏差。
此外由于估计量中的随机变量维度较少,即只有当前时刻的回报值 ,以及下一时刻的状态
,使值函数的估计量能够保持在较低水平。
1.2 蒙特卡罗算法
题外话:这里介绍的蒙特卡洛算法是指蒙特卡罗估计(用于估计/预测值函数),区别于蒙特卡罗控制(用蒙特卡罗估计方法预测值函数并用值函数提升策略)。
(1) MC算法——基于值函数的定义
蒙特卡罗算法直接从值函数的定义出发,将回报值的累加作为值函数的估计量。假设 为策略
生成的样本,MC方法将
的折扣累加形式
作为状态
下的状态值的估计量。(Q函数也可以用同样的方法进行估计。)
(2) MC算法的特点——无偏差高方差
再一次按照检验估计量无偏性的思路,检查估计量的期望与估计量之间是否相等。MC方法对状态值的估计量的期望等于状态值函数的定义:
显然MC算法对状态值的估计量是无偏估计量。
此外由于估计量中的随机变量为t时刻之后所有的回报值 ,维度高,决定了该估计量具有高方差的特点。
1.3
-return算法
前面对TD算法和MC算法的介绍可以发现它们是两个极端:TD算法高偏差低方差,而MC算法无偏差高方差。 -return方法是一种试图在偏差和方差之间找到平衡点的方法。
我们从TD算法出发,尝试找一种降低其估计量偏差的方法。前面的分析中可以知道TD算法为了减少方差(减少估计量中的随机变量数),仅用到1步的回报值(当前时刻的回报值 )以及下一时刻的状态值
,而状态值
中的近似误差带来了偏差,偏差为
,受到折扣因子
加权影响的。如果用到2步的回报值,即用t和t+1时刻的回报值
、
以及t+2时刻的近似状态值
也可以作为状态值的估计量,即
,该估计量的偏差为
,受到权重
影响。如果继续考虑n步的情况,可以看出估计量的偏差为
,由于
,
随n的增大而降低,可以发现n越大偏差越小。
假设RL环境的设置是Episodic的情况(总有一个终止状态),t+N时刻为终止状态,按照上述的思路可以列出N种(n从1到N)关于的状态值的估计量:
n为1即为TD算法的估计量,n为N是MC算法的估计量。-return算法对这N个估计量进行加权平均,在TD于MC算法中找折中点,通过这种方式在偏差和方差间找平衡。加权平均的方式如下所示:
每一项前面的权重的和为1。其中 ,当
即为TD算法,当
即为MC算法。注意到n越大,对应的估计量的分量
的权重越小。
1.4 TD(
)算法
-return方法虽然有平衡偏差与方差的优点,但它必须用到当前时刻之后直到到达终止状态的所有数据(forward view),也就是说只有在一条episode结束后才能计算出对应的状态估计量,使得计算消耗在时间上极不平均。
TD()是利用了当前时刻之前的样本(backward view),不必等到episode结束才进行计算,时计算消耗在时间上更平均。它的思路类似于基于动量的梯度优化器,如(Adagrad、RMSProp、Adam等),让梯度不仅受当前时刻的样本影响,还收到先前梯度方向的影响。具体做法是增加一个包含先前参数梯度信息的轨迹向量:
其中, 是根据当前时刻的样本计算出的梯度分量,
包含先前样本计算出的梯度分量信息。实际梯度的方向由
决定(步长和正负由TD-error决定),即:
虽然上述操作使得TD()在计算上显得更优雅,但显然它的合理性弱于
-return,实际效果也可能会弱于
-return。实际上如果在TD算法中用到基于动量的梯度优化器,基本上等同于TD(
)的效果。
题外话:(off-line与on-line)如果估计值函数时,需要等到episode结束才能开始计算可以成这样的算法为off-line方法(如-return);否则称为on-line方法(如TD(
))。
2.优势函数的估计方法
2.1 优势函数
优势函数可以用比较直白的话来解释:它用于度量在某个状态下选取某个具体动作
的合理性——它直接给出动作
的性能与所有可能的动作的性能的均值的差值。如果该差值(优势)大于0,说明动作
优于平均,是个合理的选择;如果差值(优势)小于0,说明动作
次于平均,不是好的选择。度量状态
下的动作
的性能最合适的形式就是动作值函数(即Q函数)
;而度量状态
所有可能动作的性能的均值的最合适形式是状态值函数(即V函数)
。这里给出优势函数的定义式:
题外话:优势函数对于策略梯度的意义
优势函数与策略梯度(Policy Gradient)类算法天然契合。
可以将梯度式子拆成两部分看:(1) 是状态
情况下取到动作
的对数似然的梯度方向。如果参数
沿着该方向走,则提升了(鼓励)动作
的概率;如果参数
沿着该梯度的负方向走,则降低了(打压)动作
的概率。(2)
这个标量决定了参数
应该沿着正方向走还是负方向走。
假设选用优势函数作为,即:
接着分析两种情况:(1):说明动作
优于平均值,值得鼓励,正好它的值为正数可以让参数
沿着正梯度方向走。(2)
:说明动作
次于平均值,应该避免,正好它的值为负数可以让参数
沿着负梯度方向走。因此说优势函数与策略梯度天然契合。
2.2 优势函数与TD-error
介绍到TD算法时提到TD-error的形式如下:
如果将优势函数稍微化简,可以发现它实际上是TD-error的期望:
也就是说可以用TD-error作为优势函数的估计量。
为了求得TD-error,需要用到值函数 ,实际算法中一般用到近似的值函数
,因此与TD算法一样,由于近似误差的存在,直接将
作为优势函数的估计量会有较大的偏差。
2.3 泛化优势估计(GAE)
泛化优化估计(GAE)实际上是-return应用在估计优势函数的版本。可以按照介绍
-return方法中的使用n步回报值的思路列出N种优势函数的估计量。
其中Sutton的书中将最后一项 称为蒙特卡罗误差(Monte Carlo error)。这些估计量的偏差同样随着n的增加而减小,方差随着n的增大而增大。GAE采用了同
-return一样的加权平均方法来权衡优势函数估计量的偏差与方差:
当N趋近无穷大时,该估计量可以化简成简单的形式:
实际情况下N很难达到无穷大,因此这个形式的优势函数估计量还是有近似误差的。
3.画重点
估计值函数的方法中,TD算法方差小但偏差大;MC算法无偏但方差大;-return是一种折中又相对简单的方法,但需要采样完一整条episode才能计算(off-line)。TD(
)是对
-return算法的改进,用类似动量优化方法(Adagrad、RMSProp、Adam等)使算法无需在采样到episode的结尾才进行计算,让计算消耗平摊在每个时间点上。GAE实际上是
-return用于估计优势函数的版本。
主要参考来源
Sutton R , Barto A . Reinforcement Learning:An Introduction[M]. MIT Press, 1998.
Schulman, John & Moritz, Philipp & Levine, Sergey & Jordan, Michael & Abbeel, Pieter. (2015). High-Dimensional Continuous Control Using Generalized Advantage Estimation.
Kimura, H. and S. Kobayashi. “An Analysis of Actor/Critic Algorithms Using Eligibility Traces: Reinforcement Learning with Imperfect Value Function.” ICML (1998).
原文地址:https://zhuanlan.zhihu.com/p/345687962
完
总结3: 《强化学习导论》代码/习题答案大全
总结6: 万字总结 || 强化学习之路
完
第97篇:MuZero算法过程详细解读
第96篇: 值分布强化学习(Distributional RL)总结
第95篇:如何提高"强化学习算法模型"的泛化能力?
第94篇:多智能体强化学习《星际争霸II》研究
第93篇:MuZero在Atari基准上取得了新SOTA效果
第91篇:详解用TD3算法通关BipedalWalker环境
第88篇:分层强化学习(HRL)全面总结
第85篇:279页总结"基于模型的强化学习方法"
第84篇:阿里强化学习领域研究助理/实习生招聘
第83篇:180篇NIPS2020顶会强化学习论文
第81篇:《综述》多智能体强化学习算法理论研究
第80篇:强化学习《奖励函数设计》详细解读
第79篇: 诺亚方舟开源高性能强化学习库“刑天”
第77篇:深度强化学习工程师/研究员面试指南
第75篇:Distributional Soft Actor-Critic算法
第74篇:【中文公益公开课】RLChina2020
第73篇:Tensorflow2.0实现29种深度强化学习算法
第72篇:【万字长文】解决强化学习"稀疏奖励"
第71篇:【公开课】高级强化学习专题
第70篇:DeepMind发布"离线强化学习基准“
第66篇:分布式强化学习框架Acme,并行性加强
第65篇:DQN系列(3): 优先级经验回放(PER)
第64篇:UC Berkeley开源RAD来改进强化学习算法
第61篇:David Sliver 亲自讲解AlphaGo、Zero
第59篇:Agent57在所有经典Atari 游戏中吊打人类
第58篇:清华开源「天授」强化学习平台
第57篇:Google发布"强化学习"框架"SEED RL"
第53篇:TRPO/PPO提出者John Schulman谈科研
第52篇:《强化学习》可复现性和稳健性,如何解决?
第51篇:强化学习和最优控制的《十个关键点》
第50篇:微软全球深度强化学习开源项目开放申请
第49篇:DeepMind发布强化学习库 RLax
第48篇:AlphaStar过程详解笔记
第47篇:Exploration-Exploitation难题解决方法
第45篇:DQN系列(1): Double Q-learning
第44篇:科研界最全工具汇总
第42篇:深度强化学习入门到精通资料综述
第41篇:顶会征稿 || ICAPS2020: DeepRL
第40篇:实习生招聘 || 华为诺亚方舟实验室
第39篇:滴滴实习生|| 深度强化学习方向
第37篇:Call For Papers# IJCNN2020-DeepRL
第36篇:复现"深度强化学习"论文的经验之谈
第35篇:α-Rank算法之DeepMind及Huawei改进
第34篇:从Paper到Coding, DRL挑战34类游戏
第31篇:强化学习,路在何方?
第30篇:强化学习的三种范例
第29篇:框架ES-MAML:进化策略的元学习方法
第28篇:138页“策略优化”PPT--Pieter Abbeel
第27篇:迁移学习在强化学习中的应用及最新进展
第26篇:深入理解Hindsight Experience Replay
第25篇:10项【深度强化学习】赛事汇总
第24篇:DRL实验中到底需要多少个随机种子?
第23篇:142页"ICML会议"强化学习笔记
第22篇:通过深度强化学习实现通用量子控制
第21篇:《深度强化学习》面试题汇总
第20篇:《深度强化学习》招聘汇总(13家企业)
第19篇:解决反馈稀疏问题之HER原理与代码实现
第17篇:AI Paper | 几个实用工具推荐
第16篇:AI领域:如何做优秀研究并写高水平论文?
第15篇:DeepMind开源三大新框架!
第13篇:OpenSpiel(28种DRL环境+24种DRL算法)
第11篇:DRL在Unity自行车环境中配置与实践
第8篇:ReinforceJS库(动态展示DP、TD、DQN)
第5篇:深度强化学习在阿里巴巴的技术演进
第4篇:深度强化学习十大原则
第2篇:深度强化学习的加速方法
第1篇:深入浅出解读"多巴胺(Dopamine)论文"、环境配置和实例分析