ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

初探强化学习(2)rollout算法

2022-02-24 19:03:28  阅读:344  来源: 互联网

标签:状态 MC 动作 算法 初探 rollout 规划


这个文章是从这个网页搬来的:https://zhuanlan.zhihu.com/p/61062275

说实话,之所以会看这个只是,主要是因为被这篇论文End-to-end training of deep visuomotor policies中的一句话给迷惑了很久。
在这里插入图片描述
一句话带过,大概是大佬完全把这个知识当成基础知识了,所以完全不给解释和参考文献。
于是这段我一直是不明白,只知道是在采样,具体怎么采样,也不明白。

于是搜到了这篇文章。

开始这节之前,我们先说说什么是rollout?

本来想翻译一下这个词,但是确实没找到比较优雅的译法,索性就用英文吧。但是大家也不用担心,等解释完之后你就知道它是什么意思了。

其实之前我们也提过这个词,rollout在字典中的意思是:首次展示,滑跑。不得不说,这两个解释和我们今天介绍的含义还是有些差别。在CS相关论文中,一般rollout表示一次试验,一条轨迹。就比如我们我们用MC仿真出了一个episode,这个episode就是一个rollout。它和我们前面讲的轨迹采样(trajectory sampling)也很像。

什么是rollout算法?

知道了rollout的含义,我们应该大概猜到rollout算法是一类在仿真轨迹层面上进行更新学习的方法。具体的定义如下:rollout算法是一种基于MC控制的决策时规划算法。看到决策时规划,我们知道规划是针对于当前的状态的,基于MC说明了我们是利用MC来估计当前状态或者行为的值,从而进行规划的。具体是怎么做的呢?为了估计一个给定策略的动作值函数,rollout算法利用MC采样得到很多从当前状态开始的仿真轨迹(当前状态下有多个动作,因此对于每个动作都会得到一些仿真的轨迹)。然后分别用这些轨迹回报的均值来估计每个动作的值。当这个估计值足够准确了,规划算法会执行具有最高估计值的动作。这个动作和环境交互,转移到下一个状态,再利用同样的方法规划出下一个状态的动作。重复下去,就得到了一个完整的plan。

Rollout和MC算法的区别?

我们在第5章讲了MC方法,这里rollout算法似乎也是用MC估计值函数,他们有什么区别呢?rollout算法的目标不是估计完整的最优动作值函数 [公式],或者是对于特定策略 [公式] 的动作值函数 [公式] 。相反,rollout算法只估计每一个当前状态的值。和决策时规划算法一样,rollout算法只在当前时刻会利用到这些估计值,然后就丢弃了。我的理解是他们的应用场景不同,导致其侧重不同。MC是用于学习,所以我们要估计出所有状态的值函数,然后才能找到一个最优策略。而rollout算法是用于规划的,而且是决策时规划。对于这种规划,我们只在当前状态下搜索所有可能的plan,然后选择最有利的。因此就只侧重于当前状态周围值函数的值。这个区别,使得rollout算法实现起来很简单。因为我们不需要对所有状态-动作对采样。

Rollout算法的本质

在这里插入图片描述

Rollout算法的效率

在这里插入图片描述

标签:状态,MC,动作,算法,初探,rollout,规划
来源: https://blog.csdn.net/qq_33328642/article/details/123118481

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有