ERL(evolutionary reinforcement learning)
论文: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)相关推荐
- 深度强化学习(Deep Reinforcement Learning)的资源
深度强化学习(Deep Reinforcement Learning)的资源 2015-04-08 11:21:00| 分类: Torch | 标签:深度强化学习 |举报 |字号 订阅 Goo ...
- Proximal Distilled Evolutionary Reinforcement Learning
论文链接:论文传送门 官方pytorch的代码实现:代码传送门 介绍 上一篇讲的进化强化学习ERL(evolutionary reinforcement learning)是简单的将进化算法和强化学习 ...
- 强化学习(Reinforcement Learning)是什么?强化学习(Reinforcement Learning)和常规的监督学习以及无监督学习有哪些不同?
强化学习(Reinforcement Learning)是什么?强化学习(Reinforcement Learning)和常规的监督学习以及无监督学习有哪些不同? 目录
- 图机器学习(Graph Machine Learning)- 第二章 图机器学习简介 Graph Machine Learning
第二章 图机器学习简介 Graph Machine Learning 文章目录 第二章 图机器学习简介 Graph Machine Learning 前言 1. 环境要求Technical requi ...
- 几何深度学习(Geometric Deep Learning)技术
几何深度学习(Geometric Deep Learning)技术 几何深度学习综述 从论文Geometric Deep Learning: Grids, Groups, Graphs, Geodes ...
- 域对抗自适应算法的设计、不足与改进(Domain Adversarial Learning)
©作者 | 江俊广 单位 | 清华大学 研究方向 | 迁移学习 本文主要介绍域自适应(Domain Adaptation)中的对抗域自适应方法(Domain Adversarial Learning) ...
- 对抗机器学习(Adversarial Machine Learning)发展现状
目录 1. 了解对手 1. 1 攻击目标(Goal) 1. 2 知识储备(Knowledge) 1.3 能力限制(Capability) 1.4 攻击策略(Strategy) 2. 学会主动 2.1 ...
- 多模态学习(Multimodal Deep Learning)研究进展综述(转载)
转载: AI综述专栏--多模态学习研究进展综述 https://zhuanlan.zhihu.com/p/39878607 文章目录 一.引言 二.主要研究方向及研究进展 (一)多模态表示学习 (二) ...
- 基于深度强化学习的车道线检测和定位(Deep reinforcement learning based lane detection and localization) 论文解读+代码复现
之前读过这篇论文,导师说要复现,这里记录一下.废话不多说,再重读一下论文. 注:非一字一句翻译.个人理解,一定偏颇. 基于深度强化学习的车道检测和定位 官方源码下载:https://github.co ...
- 强化学习(Reinforcement Learning)背景介绍
强化学习前世今生 如今机器学习发展的如此迅猛,各类算法层出不群,特别是深度神经网络的发展,为非常经典的强化学习带来了新的思路,虽然强化学习一直在发展中,但在2013年这个关键点,DeepMind大神D ...
最新文章
- Guava Cache缓存的移除与读取
- android-轻松监听来电和去电
- 面试官:你来谈谈数据库优化的几个阶段?
- sql怎么把小数变百分比_云计算基本技能有哪些 怎么监控Linux系统内存
- FZU1969(最大公约数之和)
- Chrome 如何让光标快速定位到地址栏-进行搜索
- Codeforces Round #627 (Div. 3) E. Sleeping Schedule dp
- 因子分析——python
- android怎么刷新活动,Android 如何刷新当前activity的显示数据?
- mac下java环境变量配置
- delphi 发送网络消息_分布式系统与消息的投递
- eclipse写代码比jcreator好用多了
- poi word 删除表格
- python sphinx_Python Sphinx 生成简洁大方的文档
- Ubuntu 永久修改DNS
- 使用粒子效果动画组成模型[自定义shader实现]
- 2020年02月编程语言排行榜
- 网络协议系列一 - 基本认识
- 在阿里我是如何当面试官的
- 高效生成6位数字验证码代码
热门文章
- 读书记录|《所罗门王的指环》
- dzz云桌面1.2演示,及部分功能详细介绍
- 基于Python的搜索引擎检索日志数据分析
- 番茄todo服务器维护,番茄ToDo:克服“拖延症”必备高效神器!
- Android Studio 必备技巧:TODO 用法及自定义 TODO
- ODI 12C 数据元表主资料库67个表 工作资料库153个表
- 计算机中开方的符号,开方符号-平方根符号怎么打?平方根符号在word和Excel中怎么打?上面 爱问知识人...
- 搜题接口API使用 授权使用
- 《EfficientDet:Scalable and Efficient Object Detection》论文笔记
- 用metasploit(msf)复现MS17-010(经典的永恒之蓝)SMB漏洞