强化学习-最前沿系列

深度强化学习作为当前发展最快的方向,可以说是百家争鸣的时代。针对特定问题,针对特定环境的文章也层出不穷。对于这么多的文章和方向,如果能撇一隅,往往也能够带来较多的启发。
本系列文章,主要是针对当前较新的深度强化学习算法和Trick,浅析其思路和方法,可以帮助你找出新的思路。希望对大家有多帮助。
另外,我会将所有的文章及所做的一些简单项目,放在我的个人网页上。
此系列传送门
水平有限,可能有理解不到位的地方,希望大家主动沟通交流。
邮箱:zachary2wave@163.com

强化学习 最前沿之Hierarchical reinforcement learning(一)

分层的思想在今年已经延伸到机器学习的各个领域中去,包括NLP 以及很多representataion learning。

近些年,分层强化学习被看作更加复杂环境下的强化学习算法,其主要思想非常简单,就是一个大的问题进行分解。比如说我们需要完成一个课题,首先要应付写立项报告,去申请,然后再写中期答辩,最后再结题报告。那么分层强化学习也是一样的一个过程,其主要思路是依靠一个上层的policy去将整个任务进行分解,然后利用下层的policy去逐步执行。

目前已经有多篇文章在这个方面进行了卓有成效的研究:

这里已经有总结比较好的博文

英文版

中文版 题目名为 强化学习遭遇瓶颈!分层RL将成为突破的希望。因为 都标明是原创,我也不知道到底是谁翻译的,大家可以直接去搜索 在这里就不给出地址了。

这里主要推荐三片文章:

2017年 ICML文章 提出封建网络FeUdal networks FeUdal networks for hierarchical reinforcement learning

这篇文章也已经在CSDN上,有了解读 传送门

2018年NIPS文章 HIRO Data-efficient hierarchical reinforcement learning

2018 AAAI 的文章 Learning Representations in Model-Free Hierarchical Reinforcement Learning

这篇博文主要来分析一下 2018年的NIPS的文章,HIRO

分层强化学习

与前面的文章当中提出的结构是一样的,提出分层强化学习(HRL)利用多层策略,多层策略去训练和决策更高维度的行为和抽象决策,从而解决困难任务难以学习的问题。在多数文章中,任务被分成了2层,高层策略是去计划长时间的收益,而低层策略是为了直接与环境交互,达到高层策略所指定的目标。

分层强化学习也存在着3个重要的难点:

  • 怎么训练低层策略来感应语义存在不同的行为。

  • 怎么定义高层策略的动作

  • 怎么训练多个策略,在不过度收集数据的情况下。

HIRO

HIRO从两个方面回答了这些问题:

general:构建一个两层框架,上级策略学习宏观策略,而下层策略只是做一个监督学习,学习上层所给出的目标。

efficient:将之前所有的HIRO从on-policy 转换为off-policy 。但是转化为off-policy的时候,存在一个问题就是,上层策略和下层策略都在发生变化,上层策略训练之后,对于相同的场景会产生与经验不一样目标,这样下层的动作也就发生变化。所以off-policy的问题在这里。

所以这个地方提出了off-policy correction 来解决上面的问题。

学习训练算法 文章使用的是DDPG ,对于DDPG不熟悉的同学来说,可以去看看莫烦的视频。

off-policy corrections

为什么要有off-policy 矫正,off-policy存在一个问题,之前的经验拿到现在来进行训练,那么当时高层策略给出的目标,和现在高层策略给出的目标往往可能是不相同的。同样,对于相同的高层策略,假设其能给出同样的目标,过去的低层策略往往会做出和现在低层策略不一样的动作,这样就导致了环境给出的reward的变化,那么用这个reward去训练高层策略 往往是不准的。但是reward是改变不了的。
也就是说,当从过去的下层策略 和 当前的下层策略使用相同的目标时会发生的动作所导致的状态转移(以及reward)是不一样的,所以必须修正数据使其能恰好反应当前状态。

所以能改变的就是高层的动作,如果我们选择一个高层的动作,能够使得经验池中的已经得到低层动作的概率最大,就可以了
log ⁡ μ l o ( a t : t + c − 1 ∣ s t : t + c − 1 , g ~ t : t + c − 1 ) ∝ − 1 2 ∑ i = t t + c − 1 ∥ a i − μ l o ( s i , g ~ i ) ∥ 2 2 + const.  \log \mu^{l o}\left(a_{t: t+c-1} | s_{t: t+c-1}, \tilde{g}_{t: t+c-1}\right) \propto-\frac{1}{2} \sum_{i=t}^{t+c-1}\left\|a_{i}-\mu^{l o}\left(s_{i}, \tilde{g}_{i}\right)\right\|_{2}^{2}+\text { const. } logμlo(at:t+c−1​∣st:t+c−1​,g~​t:t+c−1​)∝−21​i=t∑t+c−1​∥∥​ai​−μlo(si​,g~​i​)∥∥​22​+ const. 
所以我们计算所有低层动作的概率,最后选择出来最大的来满足当前的结果。

正向传播

第一步 : 环境给出state

第二步: 更高层的策略观察状态产生一个动作或者目标,这个动作或者目标 可以通过自身策略产生 也可以通过转移方程产生。这一步主要是为了产生一个暂时的抽象目标,因为高层决策是没C步产生一次。

这里要明确的一点是,并不是每一步都产生一个高节目标,高阶目标每隔c步产生一次。在这C步之间的动作都是通过一个函数h产生。
h ( s t , g t , s t + 1 ) = s t + g t − s t + 1 h\left(s_{t}, g_{t}, s_{t+1}\right)=s_{t}+g_{t}-s_{t+1} h(st​,gt​,st+1​)=st​+gt​−st+1​
第三步:低等级策略观察状态和目标产生一个动作,作用于环境。

第四步:环境根据低等级的动作 产生一个奖励,并转移到新的状态。 记录所有的数据。

反向传播

第一步: 从经验池收集数据

第二步:根据经验池的数据来生成每一步的奖励:
r ( s t , g t , a t , s t + 1 ) = − ∥ s t + g t − s t + 1 ∥ 2 r\left(s_{t}, g_{t}, a_{t}, s_{t+1}\right)=-\left\|s_{t}+g_{t}-s_{t+1}\right\|_{2} r(st​,gt​,at​,st+1​)=−∥st​+gt​−st+1​∥2​
​ 并训练低层的网络。

第三步:off-policy 的动作矫正,改变高层的动作。

第四步:训练高层 利用 ( s t , g ~ t , ∑ R t : t + c − 1 , s t + c ) \left(s_{t}, \tilde{g}_{t}, \sum R_{t: t+c-1}, s_{t+c}\right) (st​,g~​t​,∑Rt:t+c−1​,st+c​), 这里也就是将从 s t s_t st​到 s t + c s_{t+c} st+c​ 这一部分当作一条状态来进行学习。

总结

作者在Ant Gather、Ant Maze、Ant Push、Ant Fall 几个环境中验证了HIRO与Feudal Network和VIME,最后得到了算法效果远好于其他几个算法。

其实分层强化学习是不仅仅是解决复杂问题的,而且对于稀疏问题也是非常有帮助的,是非常好的发展方向,之后还会出关于这个方向的第二篇文章。

强化学习 最前沿之Hierarchical reinforcement learning(一)相关推荐

  1. 分层强化学习综述:Hierarchical reinforcement learning: A comprehensive survey

    论文名称:Hierarchical reinforcement learning: A comprehensive survey 论文发表期刊:ACM Computing Surveys 期刊影响因子 ...

  2. 【论文笔记】分层强化学习鼻祖:Feudal Reinforcement Learning 1993

    1993年的分层强化学习:Feudal Reinforcement Learning 概括 1992年没有深度学习,人们研究RL的思路与现在并不相同.但不可否认,提出"分层强化学习" ...

  3. 深度强化学习:入门(Deep Reinforcement Learning: Scratching the surface)

    原文链接:https://blog.csdn.net/qq_32690999/article/details/78594220 本博客是对学习李宏毅教授在youtube上传的课程视频<Deep ...

  4. 【强化学习-14】Multi-agent reinforcement learning: centralized vs. decentralized

    Multi-agent reinforcement learning 第3种架构 本笔记整理自 (作者: Shusen Wang): https://www.bilibili.com/video/BV ...

  5. 论文笔记 Hierarchical Reinforcement Learning for Scarce Medical Resource Allocation

    KDD 2021 0 摘要 面对COVID-19的爆发,医疗资源紧缺问题日益突出.因此,迫切需要有效的医疗资源配置策略. 强化学习(RL)对于决策制定很强大,但通过强化学习解决这个问题存在三个关键挑战 ...

  6. 论文代码解读 Hierarchical Reinforcement Learning for Scarce Medical Resource Allocation

    论文解读 论文笔记 Hierarchical Reinforcement Learning for Scarce Medical Resource Allocation_UQI-LIUWJ的博客-CS ...

  7. FeUdal Networks for Hierarchical Reinforcement Learning 阅读笔记

    FeUdal Networks for Hierarchical Reinforcement Learning 标签(空格分隔): 论文笔记 增强学习算法 FeUdal Networks for Hi ...

  8. 深度强化学习之模仿学习(Imitation Learning)

      上一部分研究的是奖励稀疏的情况,本节的问题在于如果连奖励都没有应该怎么办,没有奖励的原因是,一方面在某些任务中很难定量的评价动作的好坏,如自动驾驶,撞死人和撞死动物的奖励肯定不同,但分别为多少却并 ...

  9. 强化学习入门 : 一文入门强化学习 (Sarsa、Q learning、Monte-carlo learning、Deep-Q-Network等)

    最近博主在看强化学习的资料,找到这两个觉得特别适合入门,一个是"一文入门深度学习",一个是"莫烦PYTHON". 建议:看资料的时候可以多种资料一起参考,一边调 ...

最新文章

  1. Python 获取图片文件大小并转换为base64编码
  2. SQLServer中ISNULL、NULLIF和CONVERT函数
  3. python-tkinter模块图形分布移动(可键盘操作)
  4. 利用Visual Studio 2005的自动化测试工具来做数据导入
  5. Spring 中的 LocalSessionFactoryBean和LocalContainerEntityManagerFactoryBean
  6. LDAP命令介绍---ldappasswordmodify口令修改操作
  7. atcoder 2643 切比雪夫最小生成树
  8. ASP.NET MVC 重点教程一周年版 第八回 Helper之演化
  9. 关于NSOperation的几个常见问题
  10. 如何在没有域的环境中搭建AlwaysOn(二)
  11. 有序数组中的h引用 H-Index II
  12. junit 生成html报告,gradle – 如何为JUnit 5测试创建HTML报告?
  13. 【高并发】高并发环境下如何防止 Tomcat 内存溢出?一文让你看懂!!
  14. c语言实现ftp客户端,下载ftp的文件内容信息
  15. U盘数据恢复软件推荐
  16. 姿态估计1-10:FSA-Net(头部姿态估算)-源码无死角讲解(5)-Feature aggregation
  17. 数据分析神经网络模型图,神经网络模型数据处理
  18. 计算机学院院徽设计,信息工程学院院徽设计
  19. 【沐风老师】3dMax Gyroid Minimal Surface 极小曲面建模详细教程
  20. 正交匹配追踪算法OMP(Orthogonal Matching Pursuit)

热门文章

  1. 毕业总结:工欲善其事 必先利其器(公开版)(更新中)
  2. NDK RTMP直播客户端二
  3. [渝粤教育] 昆明理工大学 微机原理与接口技术(付丽霞) 参考 资料
  4. android wifi aware,WifiAware实现及协议模型
  5. python 安装Hugging Face
  6. educoder实训平台python基础综合测试答案_云课堂-智慧职教Python编程基础答案第一章单元测试答案...
  7. 一句代码设置 android 手机桌面视频壁纸
  8. anaconda 安装pytorch_安装PyTorch后,报错no module named #x27;conda#x27;的原因及解决办法
  9. 大带宽、高速率接口对比---USB、PCIE、SATA、HDMI和以太网等接口
  10. 教你如何在电脑上换IP