2020 北京智源大会

本文属于2020北京智源大会嘉宾演讲的整理报道系列。北京智源大会是北京智源人工智能研究院主办的年度国际性人工智能高端学术交流活动,以国际性、权威性、专业性和前瞻性的“内行AI大会”为宗旨。2020年6月21日-24日,为期四天的2020北京智源大会在线上圆满举办。来自20多个国家和地区的150多位演讲嘉宾,和来自50多个国家、超过50万名国内外专业观众共襄盛会。

6月24日上午,在第二届北京智源大会“强化学习专题论坛”上,上海交通大学张伟楠副教授做了主题为《Model-based Reinforcement Learning: Fundamentals and Advances》的演讲。

张伟楠,上海交通大学副教授,主要研究领域为强化学习、深度学习、数据科学、知识图谱等,2017年获得上海ACM新星奖,2018年获得首届达摩院青橙奖。

在本次报告中,张伟楠从无模型强化学习与有模型强化学习的对比开始,结合基于黑盒的有模型强化学习的发展历史,深入浅出地讲解了有模型强化学习诸多算法的基本概念、算法起源、实现原理、理论分析以及实验结果等,详细介绍了所在课题组在这一领域的最新工作进展,并对这一领域今后的发展方向进行了前瞻性的总结概述。

整理:智源社区  张文圣

一、基于模型的深度强化学习算法研究背景

张伟楠介绍,深度强化学习算法自提出以来,常用于Atari Game、围棋、DOTA、星际等虚拟场景中。人们通常将这种不建立环境模型,仅依靠实际环境的采样数据进行训练学习的强化学习算法称为无模型强化学习(Model-Free Reinforcement Learning,MFRL)算法,也即是不依赖于环境模型的强化学习算法。这种方法适合应用于深度神经网络的框架,人们将大量数据以Mini-Batch的形式传入神经网络,可以对价值网络或者策略网络进行非常高效的训练。

然而,MFRL发展中遇到的一个困境:数据采集效率(Sample Efficiency)太低。在有监督或无监督学习中,人们构建一个目标函数,通过梯度下降(或上升)的方式,不断趋近理想结果。与有监督/无监督学习不同的是,强化学习属于一种试错的学习范式,当前策略的采样结果如果无法有效帮助当前策略进行提升,则可以认为当前试错的采样结果是无效采样。在MFRL训练过程中,智能体有大量的交互采样属于无效采样,这些采样没有对行动策略的改进产生明显的影响。为了解决无模型强化学习中的这一数据效率低下的问题,人们开始转向基于模型强化学习(Model-Based Reinforcement Learning,MBRL)的方法。

MBRL的基本思想在于首先建立一个环境的动态模型,然后在建立的环境模型中训练智能体的行动策略,通过这种方式,实现数据效率的提升。

将MBRL与MFRL对比来看,MBRL存在如下特点:

1. 环境模型一旦建立起来,便可以采用on-policy的训练方法,利用当前采样得到的数据训练当前的策略,在这种情形下,采样效率是最高的。

2. 建立环境模型后,便可以选择性地不再与实际场景交互,在模型中进行训练学习,完成训练后再在实际场景中投入使用(off-line RL,也称为batch RL)。

3. 相比于MFRL,MBRL数据采样效率会往往有较大的提升。

4. 存在模型与实际环境之间的复合误差问题(Compounding Error),模型向后推演的幅度越长,推演误差就会越大,直至模型完全失去作用。

而MFRL,则存在如下特点:

1. 相比于MBRL,MFRL拥有最好的渐进性能(Asymptotic Performance),当策略与环境交互达到收敛状态时,相比于MBRL,MFRL下训练所得策略所最终达到的性能会更好,能够避免出现复合误差的问题,因而在实际环境中表现会更为优异。

2. MFRL非常适合使用深度学习框架去采样超大规模的数据,并进行网络训练。

3. MFRL经常采用Off-Policy训练方法,这种情况下会有偏差(Bias)导致的训练效果不稳定(instability)的问题。

4. MFRL需要进行超大量的数据采样,因而需要超高的算力要求,这种算力要求是很多科研院所或者企业所无法负担的。

关于MBRL的进一步分类,其主要包括黑盒模型与白盒模型两类:

黑盒模型中,环境模型的构造是未知的,仅作为数据的采样来源。由于采样数据来自于黑盒模型,而不是和真实环境交互得到,因此这些来自模型的采样数据不计入数据采样效率的计算中。虽然从计算结果来看MFBL的数据采样效率较高,但由于训练过程中使用了大量基于模型采样的数据,因此从采样数据总量上来看,实际采样了更多的数据。常用的基于黑盒模型的MBRL算法包括Dyna-Q、MPC、MBPO等。

图1:基于黑盒模型的MBRL算法

白盒模型中,环境模型的构造是已知的,可以将模型中状态的价值函数直接对策略的参数进行求导,从而实现对策略的更新。常用的基于白盒模型的MBRL算法包括MAAC、SVG、PILCO等。

图2:基于白盒模型的MBRL算法

二、基于黑盒模型的Dyna算法

接下来,张伟楠主要介绍了基于黑盒模型的MBRL算法。这里环境模型的构造未知,通过采集更多数据的方法来进行策略训练。这样处理的一大优势在于算法具有更好的普适性,可以和几乎所有无模型强化学习方法结合。

MBRL算法主要流程如下图所示:

图3:基于黑盒模型的MBRL算法流程示意图

首先,当前的价值函数Q(s, a)以及策略函数π(a | s)与真实环境进行交互,完成交互后采样出环境反馈的数据Experience{(s, a, r, s’)}。然后通过采样出的数据来训练建立的环境模型p(s’, r | s, a ),环境的模型本质上是通过输入的当前状态State以及采取的动作Action,来预测产生的Reward以及下一步的状态State,很多情况下Reward是根据先验规则或领域知识生成,这时模型只预测下一步的状态State即可。接下来在当前模型中进行Plannning,也就是通过当前模型进行数据的采样,通过数据采样的结果去训练新一轮的价值函数Q(s, a)以及策略函数π(a | s)。

Q-Planning是最简单的MBRL算法,它通过与真实环境交互的数据来训练环境模型,然后基于当前的环境模型来进行一步Planning,从而完成Q函数的训练。其步骤是,首先采集智能体与环境交互的State以及采用的Action,将数据传入建立的黑盒模型中,采集并得到模型虚拟出来的Reward以及下一步的Next_State,接着将传入模型的State、Action以及模型虚拟出来的Reward、Next_State进行一步Q-Learning训练,这样就完成了一步Q-Planning算法的更新。期间智能体仅仅通过与环境模型交互来进行数据的采样,得到虚拟的Reward以及下一步的Next_State,并进行策略的训练和更新,智能体未通过与实际环境交互数据来进行策略的更新。

更进一步,我们还可以将Q-Planning与Q-Learning结合在一起,形成 Dyna算法。Dyna算法提出于90年代早期,完整的流程示意图如下所示。可以看到,将中间的direct RL步骤去掉后,就是刚刚讨论的Q-Planning算法。

图4:Dyna算法流程示意图

在Dyna算法中,首先通过智能体与实际环境的交互进行一步正常的Q-Learning操作,然后通过与实际环境交互时使用的State、Action,传入环境模型中进行Q-Planning操作,真实环境中进行一步Q-Learning操作,对应环境模型中进行n步Q-Planning操作。实际环境中的采样与模型中的采样具有1:n的关系,通过这种方式来提升训练过程中的Sample efficiency。

以一个迷宫问题的场景为例,智能体从起始点S出发,前往目标点G,智能体可以沿上下左右四个方向任意行动,期间不能穿过迷宫的四周墙壁以及深色方块所示的障碍物。

图5:迷宫环境及其动作空间

下图分别对比了0 planning-steps(只进行强化学习Q-learning)、5 planning-steps(每做1步Q-learning,做5步Q-Planning)以及50 planning-steps(每做1步Q-learning,做50步Q-Planning)情况下的结果。这里的n planning-steps不代表前向(Forward)推演50步,而是指从头进行一次State、Action的采样,从而进行一步Q-Planning,按照这种方式进行n次Q-Planning操作。如下图所示,横坐标为当前总计完成任务数量,也就是智能体在实际场景中累计从起始点S走到目标点G的次数。纵坐标为完成当前轮次任务时智能体从起始点S走到目标点G所使用的Action步数,所使用的步数越低,则当前策略的性能越好。

图6:不同n值情况下n planning-steps的训练结果

从图中可以看到,当n值越大,环境模型推演越多时,所需的Episode任务数量越少,Policy达到最优的时间点越靠前,数据采样效率越高。

张伟楠指出,MBRL算法的发展面临着三个关键问题,同时这也是发展的三个思路:

1. 环境模型的建立是否真的有助于Sample Efficiency的提高?

2. 所建立的模型基本都是基于神经网络建立,不可避免的会出现泛化性误差的问题,那么人们什么时候可以相信建立的模型并使用模型进行策略的训练与更新?

3. 如何适当地把握模型的使用尺度,来获得最好的或者至少获得正向的策略训练结果?

 

三、Shooting methods:

基于随机采样的MPC (Model Predictive Control)算法

张伟楠介绍,在已经获得一个有效的环境模型p(s’, r | s, a ) 后,人们可以从初始状态出发,基于当前模型对后续动作进行序列采样的方式,来获得一个采样序列 ,其中动作序列通过完全随机采样的方式获得,与智能体的State等无关。对于当前状态为s,a的智能体,可以建立一个动作序列,从当前的状态出发,在模型中连续向后进行T步推演,可以通过计算得到累计奖励。共计采样N次,可以得到N个积累奖励,对这N个积累奖励求取平均值,从而得到了在当前状态s下,采取动作a时,所获得的价值函数的无偏估计。

通过对每一个Action的无偏估计的值的计算,可以选取价值函数的无偏估计值最大的Action,作为当前State下选择Action的策略。

在以上整个过程中,几乎没有进行策略的学习训练,而是在基于环境模型的演绎树上进行搜索。当完成一步Action的选择后,再在新的状态的基础上进行MPC操作即可。

张伟楠指出,模型建立之后可能会出现不确定性(uncertainty)的问题,一个解决思路是建立N个不同模型,每个模型都对下一步状态进行预测,将N个模型的预测结果取平均,作为接下来预测的结果(Probabilistic Ensembles with Trajectory Sampling,PETS)。

这里每一个模型是一个高斯过程,基于当前State、Action来预测下一步的State,通过当前State、Action来得到高斯分布的中心值和方差值,然后通过模型采样接下来的状态。每次采样时,通过Ensemble中的N个高斯里面采集一个高斯出来,做接下来的推演。通过这样的方式,可以capture环境模型中的两部分的Uncertainty。

一是认知不确定性(Epistemic Uncertainty),在某些状态情况下,由于数据缺乏的原因,会导致模型的推演不稳定,方差较大,因此需要通过Ensemble的方式来降低模型的不确定性;

二是固有的随机性(Aleatoric Uncertainty),在每一个模型中,在预测下一步状态时,会有一个自带的随机性,因此通过高斯建模的方式直接将这种随机性刻画出来。

最终,通过Ensemble的高斯过程模型,首先采样出模型,得到一个状态分布,然后采样出接下来的状态,不断往前(Forward)推演。通过这一过程,再结合使用MPC算法,从而可以得到有效的行动策略。

四、MBPO算法理论分析与实现方法

另一方面,建立的环境模型与真实环境之间一定有偏差(Error),这会导致从虚拟的环境模型中训练得到的策略,在虚拟环境中交互得到的Value值与在真实环境中交互得到的Value值有所差距,称为Value Discrepancy Bound(以下简称Bound)。人们将相应的差值定义为如下形式,左侧为真实环境中的Value值,右侧为环境模型中的Value值及其相应Bound差值。是策略自身所导致的偏移(Policy Shift),这是由于采集数据时的策略为,而当前采用策略为,策略的不同会导致与环境交互产生的数据分布不同。为环境模型与真实环境之间的误差。

图7:真实环境η[π]与环境模型η ̂[π]之间的bound差值

张伟楠介绍,基于以上分析,伯克利研究员提出一种新的基于模型的强化学习算法MBPO(Model-based Policy Optimization)。如下所示,灰色模块所在的主干为智能体与真实环境交互时的一条轨迹。中间采样出来一个State后,由该State所在的Branch Point开始,使用模型进行一个k-steps的分支采样,如下面的蓝色模块所在的分支所示,并将采样出来的数据放到一个正常的Model-Free的强化学习算法中进行训练,从而提高数据采样效率,并降低模型与真实环境之间的Bound。

图8:基于模型的k-steps分支采样

在这个过程中,分叉后的推演步数k的取值起着重要的作用,人们推导了一个Bound的计算方式:

左侧为真实环境中的Value值,右侧为环境模型中的Value值及其相应Bound差值,根据上式计算,只有当k=0时Bound最小,对应着不使用模型进行推演的情形。为了解决这一问题,人们重新查验推导过程,发现其中一步的中使用了基于之前时刻的Policy采样得到的数据分布,此时如果换成使用当前时刻的Policy采样得到的数据分布,如下所示:

则可以得到一个非常有意义的结果:

在新的公式中,通过对Bound值的计算会发现,当足够小,也就是当基于环境模型与真实环境之间的误差相比策略自身所导致的偏移(shift)足够小时,则k>0的时候会得到Bound值最小的情形。

以Mujoco等环境为例进行分析会发现,的取值通常在~之间,能够满足相应的要求,从而为环境模型的使用提供了理论上的保证。

图9:基于Mujoco等环境进行的取值分析

这一分析结果为人们处理为什么使用模型、如何使用模型的问题提供了思路。在解决实际问题的时候,可以去寻找一个合适的k值,使得这个k值能够保证Bound达到最小。

如下是MBPO算法的主要流程,通过寻找基于当前模型的最好的Branch Rollout的步数k,使得最后获得最佳的训练策略。这一流程基于黑盒模型,最后通过Model-Free的方法来对Branch Rollout的数据进行训练,比如soft AC等。

下图是MBPO算法在不同环境下与其它算法的对比实验,通过MBPO的对比实验可以看出,MBPO算法在训练效果上比较明显的领先于其它算法。

图10:MBPO算法与其它算法在不同环境下的训练效果对比

五、最新的BMPO算法理论分析与实现方法

张伟楠认为,人们使用环境模型进行前向(Foward)推演的时候,总是基于当前的State去逐步推演后续的State,也就是当前时刻之后的状态。相应的,人们也可以建立环境模型,基于当前的State去逐步推演之前出现的State,也就是当前时刻之前的状态。通过建立环境模型去推演到达当前时刻State之前,智能体所经历的轨迹,这样的模型被称为反向模型(Backward Model)。基于此,张伟楠等人在ICML 2020提出了一个新的算法:BMPO(Bidirectional Model-based Policy Optimization)。

推演过程中如果使用前向模型(Forward Model),从当前State向当前时刻后续进行推演,由于每一步推演都存在复合误差(Compounding Error),随着推演的不断进行,误差不断积累,模型推演出的结果与真实环境实际结果之间的差距将会逐渐增大,直至彻底失去作用。进行反向推演的意义在于,当使用双向模型(Bidirectional Model)同时进行前向与反向推演时,推演出的轨迹的总长度与使用单向模型一样的时候,前向模型与后向模型各自所需推演的步数均少于完全使用单向模型的情形,复合误差的积累要显著小于完全使用单向模型的情形。

图11:前向推演与双向推演对比示意图

张伟楠团队使用PETS方法,利用神经网络结合高斯过程的方式建模,建立反向推演的策略(Backward Policy),根据当前所在的状态,通过MLE(Maximum Likelihood Estimation)的方式学习之前State所采用的Action:

也可以通过GAN的方式,来确定之前State下最可能采用的Action:

通过这两种方式,便可以学习到反向推演的环境模型。

在BMPO的采样环节做MBPO的Branch Rollout时,根据玻尔兹曼分布来对选取具有更高价值函数的状态,以此来保证轨迹中有一个状态具有比较高的价值函数,从而可以通过双向模型来学习如何走到当前价值函数比较高的状态,以及之后选取动作的行动策略,从而最终获得最好的行动策略。

另一方面,我们希望采样到高价值的状态。在策略与真实环境中交互过程中,结合当前模型,使用MPC的方式来采样获得带来更好价值函数的动作。

BMPO的整个流程如上所述,首先通过MPC的方法来进行与环境交互的高价值数据的收集。通过收集到的数据建立模型,根据模型采样价值函数较高的状态作为双向Rollout的初始状态。通过双向模型来进行双向推演,在获得的轨迹上使用Model-Free的方法(Soft Actor-critic)进行策略的训练。

图12:BMPO算法流程示意图

张伟楠团队对BMPO与MBPO的结果进行了理论分析。当使用前向推演的单向模型(Forward Model)时,累积的复合误差为,而使用双向模型时,累积的复合误差为max()。由于max()一定小于,因此双向模型带来的复合误差会更小,训练效果也会更好。

图13:单向模型与双向模型复合误差对比分析

最终基于Mujoco环境的对比实验结果证明了张伟楠团队的分析:提出的BMPO算法能够比之前人们提出的MBPO算法具有更好的数据采样效率以及收敛效果,

图14:BMPO算法与其它算法在不同环境下的训练效果对比

张伟楠团队还对BMPO与MBPO的复合误差进行了量化的对比计算,结果发现在Rollout Length相同时,双向模型具有更小的复合误差,

图15:BMPO算法与MBPO算法的复合误差对比计算结果

六、总结

张伟楠认为,MBRL将会是接下来几年强化学习领域的研究热点,对于真实环境下的问题,我们都需要建立虚拟的环境来进行策略的训练与测试,之后才能应用于真实环境。MBRL主要分为基于黑盒模型的MBRL以及基于白盒模型的MBRL两类,这项研究着重分析了基于黑盒模型的MBRL。基于白盒模型的MBRL近期也出现了许多的成果,比如ICLR 2020的MAAC等算法。

图16:基于黑盒模型与白盒模型的MBRL算法

对于MBRL未来的发展趋势,张伟楠认为有如下几点:

一是当前研究中所使用的环境比较简单,比如Mujoco环境等。对于复杂的现实环境中的问题,比如研究电商中用户购买行为时,所面对的挑战难度非常大,因为这样的问题中具有非常多的不确定性,环境的State本身是离散的。人们所采用的高斯过程更适合连续的机械问题的建模,进行离散问题的建模时,一定会有偏差,这时偏差带来的累计误差就会非常大,面对复杂问题时,如何实现高质量的环境建模将是未来研究的热点。

二是如何将理论中推导出的Bound使用到具体的算法中,MBPO是一个非常好的实践,而未来会有更多的发展前景。

最后一点,MBRL可以应用于多智能体强化学习(Multi-Agent RL,MARL)中,例如当前滴滴公司使用MARL处理车辆派单问题时,也会建立虚拟的环境模型来进行训练和测试,然后再在现实环境中进行部署。

点击阅读原文,进入智源社区参与更多讨论。

上交张伟楠副教授:基于模型的强化学习算法,基本原理以及前沿进展(附视频)相关推荐

  1. 强化学习(十七) 基于模型的强化学习与Dyna算法框架

    在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Policy Based RL),本篇我们讨论最后一种强化学习流派,基于模型的强化学习(Model Base ...

  2. 系统学习深度学习(三十九)--基于模型的强化学习与Dyna算法框架

    转自:https://www.cnblogs.com/pinard/p/10384424.html 在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Poli ...

  3. 初探强化学习(6)到底TMD什么是model-based和model-free(基于模型的强化学习和基于模型的强化学习 TMD的到底是什么)

    0 如何定义无模型和有模型 Model-based和Model-free方法对比 Model-based: 一旦model学好后,就是采用On-Policy的算法: 一旦model学好后,就不需要与真 ...

  4. 基于模型的强化学习比无模型的强化学习更好?错!

    作者 | Carles Gelada and Jacob Buckman 编辑 | DeepRL 来源 | 深度强化学习实验室(ID:Deep-RL) [导读]许多研究人员认为,基于模型的强化学习(M ...

  5. 初探强化学习(7)基于模型的强化学习的应用综述

    本文是直接翻译一篇文章的,我先把原文地址放在这里. 原文名字为:Survey of Model-Based Reinforcement Learning: Applications on Roboti ...

  6. 7. 强化学习之——基于模型的强化学习

    目录 课程大纲 基于模型的强化学习概要 基于环境模型的价值函数优化 model-based value-based RL 基于环境模型的策略优化 model-based policy-based RL ...

  7. 乔治亚理工提出基于GAN的强化学习算法用于推荐系统

    Generative Adversarial User Model for Reinforcement Learning Based Recommendation System Xinshi Chen ...

  8. 17种深度强化学习算法用Pytorch实现(附链接)

    来源:新智元 本文约1300字,建议阅读5分钟. 本文为你介绍一个用PyTorch实现了17种深度强化学习算法的教程和代码库,帮助大家在实践中理解深度RL算法. [ 导读 ]深度强化学习已经在许多领域 ...

  9. 强化学习(五)---基于模型的强化学习实战

    有一个4*4的矩阵,0和15代表出口 结果输出第一个矩阵一共输出16个向量,每个向量里面的位置代表,在当前状态往哪里走比较好,第二个矩阵对第一个矩阵进行统计处理,更加直观,也是表示在16个状态,每个位 ...

最新文章

  1. JSON数据格式介绍
  2. 【深度学习入门到精通系列】图片OCR讲解
  3. 计算机视觉编程——图像分割
  4. 【ruoyi若依】Caused by: java.lang.NoClassDefFoundError: com/sun/jna/platform/win32/VersionHelpers
  5. Visual C#实现HTTP代理服务程序
  6. elastic 修改map_Amazon Elastic Map Reduce使用Apache Mahout计算建议
  7. Apache+Mysql+php+ZenTaoPMS安装配置文档
  8. 《SOA中国路线图》下载
  9. https抓包_浅谈HTTPS抓包原理,为什么Charles能够抓取HTTPS报文?
  10. shell脚本命令(记录)
  11. lisp 设计盘形齿轮铣刀_齿轮是怎么来的——图解6种齿轮加工工艺
  12. frok的一个Demo测试素数
  13. 自制一个H5图片拖拽、裁剪插件(原生JS)
  14. java ZipEntry 压缩 解压缩 在linux下中文乱码问题解决
  15. vue简化技巧之‘hook:生命周期‘
  16. 华为ME909s-821模块电信卡发短信问题
  17. python量化交易第三章
  18. 高级运维工程师打怪升级之路
  19. 所有的美好,都始于遇见
  20. 解决linux系统下U盘变成只读,无法新建文件夹

热门文章

  1. sm4 前后端 加密_这7个开源的Spring Boot前后端分离项目整理给你
  2. php 小数末尾进1,PHP处理浮点数进一、去尾(不进行四舍五入) | 剑花烟雨江南...
  3. python transformer category_Python 生成VOC格式的标签实例
  4. python 模拟键盘_Python 模拟键盘输入 | 学步园
  5. java digester_Digester
  6. spring bean xml 调用方法_Spring通过Xml方式注册Bean的几处关键实现点
  7. oracle怎么打代码,使用DOS打Oracle代码技巧
  8. 傅里叶变换性质证明卷积_傅里叶变换(三) 采样与离散序列
  9. python3的各个版本有什么区别_python不同版本的_new_不同点总结
  10. 营销3.0时代的营销特征