论文:Evolution-Guided Policy Gradient in Reinforcement Learning
原文链接:论文传送门
官方pytorch代码实现:代码传送门

介绍

现在各种方法的结合成为了很好的研究方向。之前我发的“Learning Off-Policy with Online Planning”就是有模型和无模型强化学习方法的结合。本文则是进化算法和强化学习的结合。
值得注意的是,之前已经有人将进化算法作为解决强化学习问题的一种方法了(论文),但是之前并没有与原来的强化学习方法进行结合。打个形象的比方:假如之前解决强化学习的方法称为算法1,进化算法称为算法2。那么之前提出的进化算法是用算法2解决强化学习问题。而本文是将算法1和算法2结合解决强化学习问题。

背景

传统的强化学习存在着三个核心问题:
1.在稀疏环境下的时间信誉分配(我的理解:稀疏环境该如何更好的探索到好的策略)
2. 缺乏探索效率(即探索-利用平衡问题)
3. 收敛性易对超参数非常敏感
本文希望通过进化算法提供多样的经验,提高探索能力。由于进化算法不是基于梯度的,因此DDPG可以定期将梯度信息注入进化算法中,结合两者的优势,达到更快更好的效果。

原理

本文也仅仅是结合,设法找到了进化算法和DDPG(一个强化学习方法,其它off-policy方法也行)的切入点,使得两者进行结合,而并没有进行多余的改进。即,仍然保留了进化算法采用的n点交叉和高斯变异。DDPG也并没有任何变动。
下图将进化算法和DDPG部分分别用红色框和蓝色框给框出来了。
两者的结合点就是,进化算法当中的种群个体actor通过“Evaluation”往DDPG的经验池中添加经验(Experiences),然后DDPG利用经验训练RL-critic和RL-actor,并定期的将训练Actor放入进化算法的个体当中。

代码实现和伪代码

论文作者给出了pytorch的代码实现--------->(github源代码实现)
实现时,稍微注意的是种群当中每一个个体是一个神经网络,因此在进行交叉和变异的时候,我们会把神经网络的权重给提取出来,将权重罗列成权重矩阵,因此交叉和变异只需要对权重矩阵进行操作就行了。
1-4行代码的初始化参数就不必说了。
第5行代码的循环是个无限循环,就是说一直进化下去,实际编写代码的时候进化个几百万次就差不多了。
6-8行代码是对种群当中当中的所有个体进行评估,评估得到个体的适应度。这个Evaluation函数是算法2,可以参考后面的算法2。
9-14行代码是选取种群当中的精英个体以及交叉配对的过程。
15-18行代码是变异的过程,Mutation函数参考后面的算法3。
20-28行代码是DDPG算法训练的过程。


算法2是对策略进行评估。

算法3是变异的过程,对权重矩阵当中的元素以小概率进行突变。

ERL(evolutionary reinforcement learning)相关推荐

  1. 深度强化学习(Deep Reinforcement Learning)的资源

    深度强化学习(Deep Reinforcement Learning)的资源 2015-04-08 11:21:00|  分类: Torch |  标签:深度强化学习   |举报 |字号 订阅 Goo ...

  2. Proximal Distilled Evolutionary Reinforcement Learning

    论文链接:论文传送门 官方pytorch的代码实现:代码传送门 介绍 上一篇讲的进化强化学习ERL(evolutionary reinforcement learning)是简单的将进化算法和强化学习 ...

  3. 强化学习(Reinforcement Learning)是什么?强化学习(Reinforcement Learning)和常规的监督学习以及无监督学习有哪些不同?

    强化学习(Reinforcement Learning)是什么?强化学习(Reinforcement Learning)和常规的监督学习以及无监督学习有哪些不同? 目录

  4. 图机器学习(Graph Machine Learning)- 第二章 图机器学习简介 Graph Machine Learning

    第二章 图机器学习简介 Graph Machine Learning 文章目录 第二章 图机器学习简介 Graph Machine Learning 前言 1. 环境要求Technical requi ...

  5. 几何深度学习(Geometric Deep Learning)技术

    几何深度学习(Geometric Deep Learning)技术 几何深度学习综述 从论文Geometric Deep Learning: Grids, Groups, Graphs, Geodes ...

  6. 域对抗自适应算法的设计、不足与改进(Domain Adversarial Learning)

    ©作者 | 江俊广 单位 | 清华大学 研究方向 | 迁移学习 本文主要介绍域自适应(Domain Adaptation)中的对抗域自适应方法(Domain Adversarial Learning) ...

  7. 对抗机器学习(Adversarial Machine Learning)发展现状

    目录 1. 了解对手 1. 1 攻击目标(Goal) 1. 2 知识储备(Knowledge) 1.3 能力限制(Capability) 1.4 攻击策略(Strategy) 2. 学会主动 2.1 ...

  8. 多模态学习(Multimodal Deep Learning)研究进展综述(转载)

    转载: AI综述专栏--多模态学习研究进展综述 https://zhuanlan.zhihu.com/p/39878607 文章目录 一.引言 二.主要研究方向及研究进展 (一)多模态表示学习 (二) ...

  9. 基于深度强化学习的车道线检测和定位(Deep reinforcement learning based lane detection and localization) 论文解读+代码复现

    之前读过这篇论文,导师说要复现,这里记录一下.废话不多说,再重读一下论文. 注:非一字一句翻译.个人理解,一定偏颇. 基于深度强化学习的车道检测和定位 官方源码下载:https://github.co ...

  10. 强化学习(Reinforcement Learning)背景介绍

    强化学习前世今生 如今机器学习发展的如此迅猛,各类算法层出不群,特别是深度神经网络的发展,为非常经典的强化学习带来了新的思路,虽然强化学习一直在发展中,但在2013年这个关键点,DeepMind大神D ...

最新文章

  1. Guava Cache缓存的移除与读取
  2. android-轻松监听来电和去电
  3. 面试官:你来谈谈数据库优化的几个阶段?
  4. sql怎么把小数变百分比_云计算基本技能有哪些 怎么监控Linux系统内存
  5. FZU1969(最大公约数之和)
  6. Chrome 如何让光标快速定位到地址栏-进行搜索
  7. Codeforces Round #627 (Div. 3) E. Sleeping Schedule dp
  8. 因子分析——python
  9. android怎么刷新活动,Android 如何刷新当前activity的显示数据?
  10. mac下java环境变量配置
  11. delphi 发送网络消息_分布式系统与消息的投递
  12. eclipse写代码比jcreator好用多了
  13. poi word 删除表格
  14. python sphinx_Python Sphinx 生成简洁大方的文档
  15. Ubuntu 永久修改DNS
  16. 使用粒子效果动画组成模型[自定义shader实现]
  17. 2020年02月编程语言排行榜
  18. 网络协议系列一 - 基本认识
  19. 在阿里我是如何当面试官的
  20. 高效生成6位数字验证码代码

热门文章

  1. 读书记录|《所罗门王的指环》
  2. dzz云桌面1.2演示,及部分功能详细介绍
  3. 基于Python的搜索引擎检索日志数据分析
  4. 番茄todo服务器维护,番茄ToDo:克服“拖延症”必备高效神器!
  5. Android Studio 必备技巧:TODO 用法及自定义 TODO
  6. ODI 12C 数据元表主资料库67个表 工作资料库153个表
  7. 计算机中开方的符号,开方符号-平方根符号怎么打?平方根符号在word和Excel中怎么打?上面 爱问知识人...
  8. 搜题接口API使用 授权使用
  9. 《EfficientDet:Scalable and Efficient Object Detection》论文笔记
  10. 用metasploit(msf)复现MS17-010(经典的永恒之蓝)SMB漏洞