ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Data-Efficient Hierarchical Reinforcement Learning

2022-05-31 00:02:44  阅读:162  来源: 互联网

标签:下层 goal 状态 Efficient Hierarchical policy reward Data 上层



发表时间:2018(NIPS 2018)
文章要点:这篇文章提出了一个分层强化的算法HIRO: Hierarchical Reinforcement learning with Off-policy correction。主要的点在于不用人工设计具体的上层goal,同时用off-policy的方式提高样本效率。
具体的,通常的分层强化需要人为确定上层输出什么goal,然后下层通过训练去实现这个goal。这篇文章的上层策略的输出直接定义为状态空间,也就是说,上层策略每隔c个step就输出一个状态,这个状态就是goal,下层的目标就是去接近这个状态。这个goal的状态可以用policy直接给出,也可以用一个transition function来给出。

同时设置一个下层的reward function,下层的目标就是最大化这个reward。而上层的reward就是环境给的这c个step的reward,然后上层的目标就是最大化这个环境给的reward。

因为作者做的是robotics的任务,所以上层的动作空间也就是goal其实就是要去哪里,也就是整个任务的状态空间了,所以相当于上层的动作空间就确定了。然后上层给出一个goal之后,作者用一个transition function还实时输出每一步的goal

相当于说,除了goal,我还可以告诉下层policy每一步走了之后,离goal还有多远。然后下层reward function也是根据这个思路设计的

这样的话,下层的reward其实就是dense的了,即使整个任务的reward是sparse的,也不影响。上层的训练样本就是从下层的一段轨迹的样本中

合成一个transition样本

然后上下层的训练就套TD3算法就完了。
这里还有一个需要注意的是Off-Policy Corrections。因为buffer里存的都是之前的下层policy的动作序列以及对应的上层输出的goal,而每次更新policy之后,样本里面的goal和动作序列就对不上了,所以需要修正一下。作者的做法就是重新给一个更靠谱的goal来使得这段动作可以最大化到达这个新goal的概率

具体的做法就是,采样一些新的goal,然后直接用新的下层policy跑一下,哪个概率大,就换成哪个goal。

总结:感觉是make sense的。不过这个上层的goal就是状态空间,那么就需要状态空间是给定的,而且可以直接采样,这在robotics里面是行得通的,但是如果是Atari这种,状态空间太大,而且很多都是无效信息的,那采样一个goal估计不容易work。同理,下层的reward也是比较state的差异来算的,估计还是在robotics上面更work。
疑问:感觉每次更新都要重新relabel,这个计算量不小啊,估计这也是为啥每次就选10个candidates吧?

标签:下层,goal,状态,Efficient,Hierarchical,policy,reward,Data,上层
来源: https://www.cnblogs.com/initial-h/p/16328839.html

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

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

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

ICode9版权所有