有模型和无模型的区别1.有了模型,我们可以干哪些事呢? 第一, 利用模型和基于模型的优化算法,我们可以得到回报高的数据,也就是好的数据。有了好的数据,我们就可以对策略网络进行稳定的训练了。 第二, 有了模型,我们可以充分地利用示例(demonstration)学习。人的示例可以当成模型的初值 第三,提高数据利用率,在真实环境中采集到的数据不白白扔掉,而是用来构建模型 第四,利用已有的数据学到系统的模型后,利用这个模型你就可以预测其他未知状态处的值了。无模型的强化学习只能依靠尝试,与环境交互得到其他未知状态的值,而基于模型的强化学习方法则可以利用学到的模型来预测未知状态的值。 2.有模型方法和无模型方法的优缺点 无模型 优点: 1.通用 2.简单,不需要构建模型,适合解决难以建模的问题 3.可以保证获得最优解 缺点 1.采样效率低 2.泛化能力差 有模型 优点 1.泛化能力强 2.采样效率高 缺点 1.不具有通用性 2.有些情况无法建模 3.误差更大 注:采样效率低并不是指的采的慢而是说花费相同的算力,所采样本的质量较差 将MBRL与MFRL对比来看,MBRL存在如下特点:
而MFRL,则存在如下特点:
有模型方法1.有模型方法分类 黑盒模型[1]其实就是将原来在真实环境中采样得到的数据进行二次利用,而不是白白扔掉,以此来提高了样本效率。 关于MBRL的进一步分类,其主要包括黑盒模型与白盒模型两类: 黑盒模型中,环境模型的构造是未知的,仅作为数据的采样来源。由于采样数据来自于黑盒模型,而不是和真实环境交互得到,因此这些来自模型的采样数据不计入数据采样效率的计算中。虽然从计算结果来看MFBL的数据采样效率较高,但由于训练过程中使用了大量基于模型采样的数据,因此从采样数据总量上来看,实际采样了更多的数据。常用的基于黑盒模型的MBRL算法包括Dyna-Q、MPC、MBPO等。 图1:基于黑盒模型的MBRL算法 白盒模型中,环境模型的构造是已知的,可以将模型中状态的价值函数直接对策略的参数进行求导,从而实现对策略的更新。常用的基于白盒模型的MBRL算法包括MAAC、SVG、PILCO等。 图2:基于白盒模型的MBRL算法 another分类[2] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BtkGK7wR-1619416769914)(C:\Users\liuyi\AppData\Roaming\Typora\typora-user-images\image-20210421164236322.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jHvxHkbJ-1619416769921)(C:\Users\liuyi\AppData\Roaming\Typora\typora-user-images\image-20210421165141079.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JnN13HEa-1619416769925)(C:\Users\liuyi\AppData\Roaming\Typora\typora-user-images\image-20210421165158900.png)] 2.基于黑盒模型的算法 接下来,张伟楠主要介绍了基于黑盒模型的MBRL算法。这里环境模型的构造未知,通过采集更多数据的方法来进行策略训练。这样处理的一大优势在于算法具有更好的普适性,可以和几乎所有无模型强化学习方法结合。 MBRL算法[1]主要流程如下图所示: 图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,智能体可以沿上下左右四个方向任意行动,期间不能穿过迷宫的四周墙壁以及深色方块所示的障碍物。 下图分别对比了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步数,所使用的步数越低,则当前策略的性能越好。 从图中可以看到,当n值越大,环境模型推演越多时,所需的Episode任务数量越少,Policy达到最优的时间点越靠前,数据采样效率越高。 张伟楠指出,MBRL算法的发展面临着三个关键问题,同时这也是发展的三个思路:
基于随机采样的MPC (Model Predictive Control)算法 张伟楠介绍,在已经获得一个有效的环境模型p(s’, r | s, a ) 后,人们可以从初始状态出发,基于当前模型对后续动作进行序列采样 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aTz9fJFC-1619416769937)(https://pic2./v2-a9d221882d912b873362584d29ca316d_b.png)] 的方式,来获得一个采样序列 ,其中动作序列 通过完全随机采样的方式获得,与智能体的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算法,从而可以得到有效的行动策略。 优先采样方法 对所选择的动作状态对进行优先级排序,按照优先级对其进行选择 3.模型构建方法 4.planning[3] DP方法需要使用一个环境的模型,而MC和TD方法则不需要环境的模型,我们称前者为基于模型(model-based)的方法,它们利用环境的模型进行规划(planning),而后者为不基于模型(model-free)的方法,它们通过与环境直接交互的经验来学习(learning)。尽管他们有许多不同,但是由于所有方法的核心都在于计算价值函数,所以我们可以用一种更加统一的眼光来看待这两类方法。 规划是指利用模型来提升策略的过程,如下图所示: 具体如果利用模型提升策略如下所示,模型的引入最大的好处在于能够更好地利用先验知识,提升学习效率: 本质上就是利用模型模拟出的经验去代替学习方法中的实际经历,为了便于理解,下面附上一段简单的规划的算法,可以将它与Q学习比较: 路径采样与实时动态规划 传统DP方法在更新价值函数是会对所有状态空间不加选择的遍历一遍,这在现实中往往是不现实的,而且大多数状态也跟目前的策略是无关的。一种更有效的方法是根据当前的策略进行采样直至终止状态,这被称作路径采样(trajectory sampling)。 而在DP中使用路径采样的方法便被称为实时动态规划(real-time dynamic programming) 5.期望更新和采样更新 期望更新会考虑所有可能会发生的转移(DP),而采样更新仅仅考虑到采样到的单个样本(TD),期望更新往往会得到更好的更准确的结果,因为他们没有受采样误差的影响,但是他也将需要更多的计算。 6.状态更新过程中的算力分配 第一种是基于动态规划的分配办法(遍历),第二种是根据模型进行采样的办法。 轨迹采样的概念:借助模拟生辰的经验进行回溯更新的办法 7.总结[4] 参考资料 [2]CS285 Model-based Reinforcement Learning [3]Sutton Reinforcement Learning:An introduction 2 [4]Model-based Reinforcement Learning: A Survey |
|