赞
踩
参考博客。
Stationary or not
根据环境是否稳定、可以将强化学习问题分为stationary、non-stationary。
如果状态转移和奖励函数是确定的,即选择动作
a
a
a后执行它的结果是确定的,那么这个环境就是stationary。这一般对应于medel-based RL。也就是已经训练了环境模型。
如果状态转移或奖励函数是不确定的,即选择动作
a
a
a后执行它的结果是不确定的,那么这个环境就是non-stationary。
样本效率是指学习系统达到任何选定的目标性能水平所需的数据量,它(sample efficiency)是深度强化学习中一个基础问题。举个简单的例子,为了训练机器人打Atari视频游戏,深度Q网络(Deep Q-Networks)需要跟游戏环境进行上亿次的交互,才能学习到比较好的策略,训练时间为6~9天。相比起来我们人类几分钟就能学会玩一个游戏。因此目前的深度强化学习的样本效率是非常低的。
主要参考博客。
这个博客,大牛分析了关于基于模型的强化学习和无模型强化学习在sample efficiency的方面的对比。一般来讲,大家都任务基于模型的RL的sample efficiency比无模型的RL高,但是这个大牛却给出了不一样的观点。如果上面那个博客你打不开,可以看一下这个翻译过的博客,不过翻译的错误出很多,可以将就看一下。
正文开始
“基于模型的方法比没有模型的方法更具样本效率。”近年来,这种经常重复的格言在几乎所有基于模型的RL论文(包括Jacob论文)中都引起关注。如此常识,没有人甚至不介意在旁边加上引文,陈述的真实性是不言而喻的。很明显,但是这是错误的。实际上,在很多情况下,两种方法的采样效率是相同的。
在比较两种方法在给定转换数据集时学习的值函数时,可以看出MBRL和MFRL之间的等效性。无模型方法是通过TD学习直接学习此值函数。相反,基于模型的方法是通过学习转换模型然后展开来隐式地学习此值函数。折扣奖励的总和为我们带来了价值。给定相同的转换数据集,这两种方法中的每一种都将计算出真实值函数的近似值。当数据丰富时,两种方法都将给出接近完美的近似值。算法的采样效率是指随着越来越多的数据可用,逼近误差降低的速度。
这两种算法在表面上看起来非常不同,因此期望误差以不同的速率减小。但是,正如Parr 2008中所证明的那样,在表格和线性设置中,这两种方法不仅具有相同的比率,而且实际上产生了完全相同的值函数!这两种方法是等效的。基于模型的方法并没有使它具有更有效地采样的基础。
但是,即使知道了这种等效性,许多研究人员仍然有很强的直觉,即学习环境模型会更好。我们同意!让我们尝试进一步探索这种直觉,以便我们更好地了解它可能存在或可能不存在的地方。
从认知学到进化论,详述强化学习两大最新突破
第一波deep RL研究引发了某些警示。首先,deep RL系统的学习方式人类完全不同。有人认为,这种差异表现为人类学习与deep RL的采样效率不同。
采样效率是指学习系统达到任何选定目标性能水平所需的数据量。在这一指标上,第一波deep RL系统确实与人类学习者有着本质区别。例如,为了在Atari视频游戏或国际象棋等任务中获得专业级别的表现,Deep RL系统的训练数据需要比人类专业选手多几个数量级。简而言之,至少在最初的系统中,Deep RL训练速度太慢,无法生成人类学习的合理模型。
但很快,Deep RL研究中发生了重大创新,这些创新减少了对训练数据量的要求,使得deep RL的采样效率得到了显著提升,因此可以生成人类学习模型,这为心理学和神经科学的研究找到新的出发点。
我们主要考虑两种提升样本效率的关键方法:episodic deep RL(情景式deep RL)和meta-RL(元强化学习)。我们研究了这些技术如何实现快速deep RL,及其对心理学和神经科学的潜在影响。
快速RL技术关键出发点是搞清楚为什么初始的deep RL方法速度如此慢,样本效率如此低下。在这里,我们讲两个主要原因。在本文的最后,我们将回过头来研究这两个原因之间的联系。
第一个原因是增量参数调整,也可以被理解为梯度下降算法所带来的局限性。早期deep RL方法(在人工智能研究中仍然被广泛使用)采用梯度下降来描述从感知输入到动作输出的深度神经网络曲线。这种形式的学习过程中所做的调整必须很小,以便最大限度地泛化并避免覆盖之前的学习效果(有时被称为“灾难性干扰”)。这种对小步长调整的需求是早期deep RL方法速度慢的原因之一。
第二个原因是弱感应偏差。学习理论的一个基本信条是“偏差-方差权衡”,这在任何学习过程中都存在。归纳偏置(inductive bias)是指机器学习算法在学习过程中对某种类型假设的偏好。学习过程对学习模式的初始假设越强(即学习过程的初始归纳偏置越强),完成学习所需的数据就越少(假设初始归纳偏置与数据中的相符)。弱归纳偏置的学习过程可以掌握更广泛的模式(更大的方差),但样本效率通常会降低。实际上,强归纳偏置(对输入数据仅考虑范围窄的假设)才是可以快速学习的原因。更重要的是,通用神经网络是极低偏置的学习系统:它们有许多参数(不同权重),需要适应各种类型的数据。这意味着早期deep RL模型中采用的通用神经网络往往是样本效率奇低的,需要大量数据来学习。
以上两个因素 - 增量参数调整和弱感应偏差 - 共同造成了早期deep RL模型速度慢的事实。然而,随后的研究表明,这两个因素都可以减轻,从而允许deep RL以更加样本有效的方式进行学习。在下文中,我们考虑两种特定技术,一种解决增量参数调整问题,另一种解决弱感应偏差问题。除了它们在AI领域的影响之外,这两种AI技术都与心理学和神经科学有着明显的联系,我们将详细说明。
如果增量参数调整是deep RL速度慢的一个原因,那么一种解决方法可能是避免这种增量更新。单纯靠控制梯度下降来优化学习率会导致灾难性干扰问题。
最近的研究表明,另一种方法也可以实现相同的目标,即保留过去事件的明确记录,并直接将此记录用作制定新决策的参考点。这种方法称为episodic RL,与机器学习中的“非参数”(不对目标函数的形式作出强烈假设)方法相似,如K近邻算法,也类似于心理学中学习理论的“实例”或“范例”教学。
当遇到新情况且必须决定采取何种行动时,程序将当前情况的内部表示与过去情况的存储表示进行比较。根据与当前最相似的过去情况,选择相关联的动作。当使用多层神经网络计算内部状态表示时,我们将得到的算法称为“episodic deep RL”。
episodic RL的成功取决于用于计算状态相似度的状态表示。后来的研究表明,通过使用梯度下降学习来形成这些状态表示可以改善性能。这些结果解释了episodic RL在Atari学习环境57项游戏中的强大性能和高数据效率,展示了结合慢(表示)学习和快速(估算)学习的好处。
在episodic deep RL中,与标准增量方法不同,可以立即利用每个经验事件获得的信息来指导行为。然而,episodic deep RL能够消除早期deep RL慢的因素,进行快速学习,主要取决于其减缓了增量学习。这种增量学习是对连接权重的渐进学习,允许系统对每个新观察到的情况形成有用的内部表示或嵌入(embeddings)。这些表示的格式通过经验学习获得,使用相同类型的增量参数更新(即标准deep RL的根基)。最终,通过这种较慢的学习形式提升了episodic deep RL的速度。也就是说,通过慢学习实现了快速学习。
主要是这个博客
样本效率是指学习系统达到任何选定的目标性能水平所需的数据量。
Sample efficiency refers to the amount of data required for a learning system to attain any chosen target level of performance.
这个是关于model-based RL的介绍,里面提到Planning。
这个讲的比较详细了。
在强化学习中有一种划分方式可以将算法大体分成两大类,一类是需要模型来刻画环境的算法(model-based),如动态编程和启发等;另一类算法则不需要环境模型(model-free),如MC与TD等。
model-based 依赖计划(planning),而model-free则主要依靠学习(learning)。尽管如此,二者还是有许多相似之处,比如强化学习的大多数情况是要计算动作的价值函数的,二者也是如此,再比如几乎所有的方法都基于对未来态势的变化的预测,计算反向传播值。于是,有必要用一种统一的视角来讨论二两类方法。
所谓环境模型指的是一切被用于agent预测环境对其动作的反应的信息。已知某一状态与动作,模型可以产生对下一状态动作与奖励的预测。如果模型是随机的(stochastic),即下一状态以不同概率的几种不同可能的分布,这样的模型称为分布模型(distribution models),如果下一状态以某概率产生一种可能,则称为抽样模型(sample models)。模型可用来模拟经验。
在强化学习中,所谓计划planning指的是任何计算过程,只要这个过程是以模型作为输入,输出策略(或更好的策略):
计划planning主要可划分为两种:一种称为状态空间计划,即在企图在状态空间找到最优策略;另一种为计划空间计划,即在计划的空间中找到最佳策略。现主要考虑第一种。所有的状态空间计划方法在优化策略时,都会将计算价值函数作为关键的中间步骤,且计算方式是应用在模拟经验上的反向更新操作:
无论学习还是计划都是要估计价值函数的,而学习与计划的主要区别在于:学习learning使用产生于环境的真实的经验,而计划planning则是使用由环境模型产生的模拟数据。上述的通用框架也表明了学习与计划可以互相转化。下面的算法即是一个实例:
这个博客讲的通俗易懂。
摘抄一句,
在强化学习中,环境初始时是未知的,agent 不知道环境如何工作,agent 通过不断地与环境交互,逐渐改进策略。(learning过程)
在 plannning 中,环境是已知的,我们被告知了整个环境的运作规则的详细信息。
Agent 能够计算出一个完美的模型,并且在不需要与环境进行任何交互的时候进行计算。
Agent 不需要实时地与环境交互就能知道未来环境,只需要知道当前的状态,就能够开始思考,来寻找最优解。
强化学习的标准交互过程如下:每个时刻,智能体根据根据其 策略(policy),在当前所处 状态(state) 选择一个 动作(action),环境(environment) 对这些动作做出相应的相应的响应,转移到新状态,同时产生一个 奖励信号 (reward),这通常是一个数值,奖励的折扣累加和称为 收益/回报 (return),是智能体在动作选择过程中想要最大化的目标
在这个过程中,“奖励 & 收益” 其实是智能体目标的一种形式化、数值化的表征。可以把这种想法非正式地表述为 “收益假设”
智能体所有的 “目标” 或 “目的” 都可以归结为:最大化智能体收到的标量奖励信号的累计和(称之为“收益”)的概率期望值 —— Richard S.Sutton
使用收益来形式化目标是强化学习最显著的特征之一
某种程度上,奖励函数设计可以看作 “面向强化学习的编程”,算法工程师根据特殊 “语法”,将期望的任务和目标 “翻译” 成奖励函数,由强化学习算法进行 “编译”,最后在 agent 与 environment 的交互过程中 “运行”(指导算法训练)。“编译器”(RL算法)的性能和 “编程质量”(奖励函数质量)共同决定了策略的性能。
主线奖励
这是所有强化学习任务的 根本目标,可以把上述定性目标的达成和定量目标的改善成为 主线事件
主线回报相对于任务目标而言往往是无偏的,因此只包含主线回报的奖励函数往往是最简单也最理想(从指向性来看)的形式
稀疏奖励问题
由于仅有一个定性任务完成奖励,在早期通过随机探索获取有效转移的概率很低;由于大部分状态下反馈信号的缺失,agent 难以发现应该向右下方向移动,也就无从通过主动增加右下移动动作来触发更多的主线事件
任务简单,状态动作空间较小时:如上例所示,agent 容易通过 ε \varepsilon ε-greedy 随机探索的方法探索到主线事件,从而保证有效转移至少占据一定的比例,使得 RL 算法最终能够收敛
随着任务复杂度提升、状态动作空间增大,通过随机方式探索到主线事件的概率变得很小,稀缺的反馈信号无法为 agent 指明探索方向,难以形成局部知识,而盲目探索又导致有效转移无法出现或数量极少,二者相互作用导致样本效率极低,RL算法难以收敛
反馈信号稀疏,训练早期难以形成局部知识,难以给出局部指导,导致盲目探索;训练晚期只能给出片面指导,导致片面利用,样本效率低下甚至无法收敛,学习困难,这就是 稀疏奖励问题
稀疏奖励会影响强化学习样本效率。
针对稀疏奖励问题,学界提出了很多方法,可以概括为以下三类
下面对第三种方法加以说明
要从奖励函数设置角度克服稀疏奖励问题,直观的想法就是在主线回报的基础上增加其他的奖励项或惩罚项,使得奖励函数变得稠密,给与Agent足够强的指导,从而加快 DRL 算法收敛速度并提升性能。这些主线奖励以外的奖励称为 辅助奖励,通常有三类
用一张图来表示这些奖励函数,上侧图代表对 “鼓励型” 子目标施加正向奖励,对 “回避型” 子目标施加惩罚;下侧图代表对两类子目标都施加负奖励,通过减少惩罚的形式激励 “鼓励型” 子目标,这种方法可以避免 Reward Hacking,但是可能导致 “懦弱” 行为
主线奖励针对性地地鼓励主线事件发生,只有在定性目标达成或定量目标得到优化时才会得到奖励,因此优化收益就等价于促进定性目标达成、定量目标极值化,这通常是无偏的,但是奖励比较稀疏
随着辅助奖励的加入,虽然 agent 得到了更多指导,但也导致最大化收益时连带实现的目标发生偏移,使得 agent 出现异常行为。这些异常行为主要可以分三类
总的来看,设计奖励函数的过程,就是在主线奖励的基础上加入辅助奖励的过程,这一方面可以加强对agent的指导,促进算法收敛;另一方面也会引入目标偏差,如果想减少偏差,就要面对高昂的成本
这要参考这个博客,
强化学习可以分成off-policy(离线)和on-policy(在线)两种学习方法,按照个人理解,判断一个强化学习是off-policy还是on-policy的依据在于生成样本的policy(value-funciton)和网络参数更新时的policy(value-funciton)是否相同。
off-policy的经典算法有Q-learning,而on-policy的经典算法有SARSA算法,两者的算法流程如下所示。
(off-policy的代表算法)Q-learning算法:
initialize Q(s,a) randomly
for each episode:
initialize state s;
while s is not terminal:
choose action a from s using ε-greedy strategy;
observe reward r and next state s';
Q(s,a) <- Q(s,a) + α[r + γ*maxQ(s',a') - Q(s,a);
s <- s';]
(on-policy的代表算法)SARAS算法:
initialize Q(s,a) randomly
for each episode:
initialize state s;
choose action a from s using ε-greedy strategy;
while s is not terminal:
observe reward r and next state s';
choose a' from s' using ε-greedy strategy;
Q(s,a) <- Q(s,a) + α[r + γ*Q(s',a') - Q(s,a);
s <- s', a <- a';]
这两个算法的流程基本一致,唯一不同在于Q函数的更新:
Q-learning在计算下一状态的预期收益时使用了max操作,直接选择最优动作,而当前policy并不一定能选择到最优动作,因此这里生成样本的policy和学习时的policy不同,为off-policy算法;
而SARAS则是基于当前的policy直接执行一次动作选择,然后用这个样本更新当前的policy,因此生成样本的policy和学习时的policy相同,算法为on-policy算法。
从这两张图可以看出,判断离线策略还是在线策略,主要看下一个状态的动作
A
’
A’
A’是由谁提供的。如果是policy自己给自己预测动作
A
’
A’
A’,那么就是在线策略,比如SARSA。如果是有另一个policy给Q提供
A
’
A’
A’,那么就是离线策略。
而最近深度强化学里中使用的experience-replay机制将生成的样本与训练的样本独立开来,使用某一policy生成的样本拿来训练的时候,很可能当前policy已经和之前有所差别,因此使用experience-replay机制的DRL算法基本上是off-policy算法
这个博客讲的也还可以。
下面还有一些主要参考的博客。
这个博客简述了一些强化学习中常用又容易忘记或者混淆的知识点。
什么是优势函数
优势函数表达在状态
s
s
s下,某动作
a
a
a相对于平均而言的优势。
从数量关系来看,就是随机变量相对均值的偏差。
使用优势函数是深度强化学习极其重要的一种策略,尤其对于基于policy的学习。
定义如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。