论文链接:论文传送门
官方pytorch代码实现:代码传送门

介绍

这篇论文是我之前发的ERL论文的改进版本(ERL介绍链接)这篇文章提出的核心要点可以总结为两个:
1.不同的策略都共享同一经验池的经验,提高采样效率
2.多个未来折扣率不同的Critic对Actor策略进行指导,从而提供更多样化探索,能更好的在策略空间进行探索

原理

1.概念介绍
为了更好的理解CERL框架,我们可以回想一下当初讲ERL的时候,ERL是进化算法和强化学习的结合,其中强化学习部分采用的是DDPG,也就是一对actor网络和一对critic网络。而现在CERL就是对ERL中强化学习部分进行了改进,把DDPG这部分只由一对actor和critic网络给换成了多对。每一对的未来收益折扣率不相等。这就是这个方法的改进。可以结合下面这张图来理解上面这段文字

接下来,用上面画的CERL示意图,来说明论文当中的一些名词和概念。
1.先看那一对对的critic和actor,每一对critic和actor称为Learner,上面有critic1到criticn的n对,因此有n个Leaner。
2.这n个Learner的集合作者称为Portfolio(中文叫文件夹,老外奇特的命名方式)。
3.每一个Learner只有奖励折扣因子这个超参数不同(当然,我们也可以设置其它超参数不同,使得每个critic的评价标准存在差异)。这里稍微说一下,奖励折扣因此不同,意味着critic关注的视野不同,即折扣因子越大,可以关注更长远的未来,这是强化学习的基础知识,就不多解释了。
4.每个Learner采用的算法是TD3算法。
2. 原理
好了,知道了上面这些概念,剩下的就是一些技巧了。
1.让好的Learner多采集样本,坏的Learner少采样
我们知道每一个Learner都不同(折扣因子不同),既然不同,那就存在好的Learner和坏的Learner。我们当然希望好的Learner多进行采用。因此,这就涉及到如何合理的分配每个Learner的采样数。我们记每个Learner当前回合采样的回合数为A,从过去到现在累计的采样回合数为y(y值在后面计算置信上界时会用到),该Learner的价值尺度为v(v的越大,Learner就越好)。初始化时,所有Learner都采样相同的回合数,即A相同,价值尺度初始化为0。然后记录这些回合,环境提供的奖励return。我们用以下公式计算新的v值:

接着引入一个置信上界值,计算如下:(先说这个公式当中的vi就算第i个Learner的v值,Ui就算第i个Learner的置信上界值,Ui的大小决定了第i个Learner采样的回合数。从该等式右边有两项,第一项vi越大,Ui就越大,由于vi代表了Learner的好坏,这也就是说Learner越好,Ui越大,采样回合数越多。第二项是为了做一个权衡,好的Learner采样多没问题,但是坏的也不能没有。因此好的Leaner后一项值会更低(因为好的Learner分母yi大),而坏的Learner后一项会更高。从而保证坏的也会有采样。

接着,对这个置信上界分数进行归一化,得到一个概率分布,然后对概率分布进行采样得到的值就是采样回合数。很明显,由于Learner越大,置信上界就越大,这个概率分布就能采样到更大的值,这个值就是下一轮Learning执行的回合数A。最终效果就是Learner的v越大,下一轮采样的回合数就越大**(要是不明白可以看后面的伪代码的解释,给出了有关于A值得使用和更新的说明)**

2.共享经验
所有的Learner和种群当中的个体都共享同一个经验池,即,它们收集的样本放到这个经验池中,它们训练时,也都从这个经验池中采集样本。这就保证每个Learner或个体在采样时,不仅可以采集自己收集的样本,还可以采集到其它Learner或种群个体采集的样本,以此来提高采样效率。

3.把Learner全部复制一份到种群当中充当个体
最后,我们定期的将把所有Learner的actor丢到种群当中,让种群进化。好的Leaner的actor在进化时,会被选为精英,从而保留。而坏的Leaner的actor在进化时,会被淘汰。

算法实现

第1-6行初始化
第7行开始循环,每一次循环,就是一次进化。
第8-17行是种群进化的过程,代码和ERL完全一样,在ERL已经讲过了。
第18-22行就是计算每一个Leaner的v值,注意第19行这个循环,这个循环的次数A就是该Learner采样A个回合,A越大的Learner采样的样本就越多了。
第23-31行是每个Leaner的学习过程(上面说了Learner采用的是TD3算法, 因此也就是和TD3算法的学习过程一样)
第32-35行是计算每个Learner的置信上界,得到每个Learner的执行次数的分布,然后通过每个分布采用,得到每个Learner的新的A值,这个A值在下一次循环的第19行代码决定下一轮的采用次数。
第36-38行是将Learner定期的放入到种群当中。

Collaborative Evolutionary Reinforcement Learning相关推荐

  1. Proximal Distilled Evolutionary Reinforcement Learning

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

  2. 深度强化学习综述论文 A Brief Survey of Deep Reinforcement Learning

    A Brief Survey of Deep Reinforcement Learning 深度强化学习的简要概述 作者: Kai Arulkumaran, Marc Peter Deisenroth ...

  3. Reinforcement learning book 学习笔记 第一章

    RL学习 写在前面: 本专栏是学习由Richard S. Sutton and Andrew G. Barto 所著 <Reinforcement learning>的学习笔记,如有指正请 ...

  4. DDPG:CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING

    CONTINOUS CONTROL WITH DEEP REINFORCEMENT LEARNING 论文地址 https://arxiv.org/abs/1509.02971 个人翻译,并不权威 T ...

  5. 【论文笔记】A Reinforcement Learning Method for Multi-AGV Scheduling in Manufacturing

    目录 Abstract Keywords 1 INTRODUCTION 2 REINFORCEMENT LEARNING 3 PROBLEM FORMULATION A. Problem Statem ...

  6. Drones Chasing Drones: Reinforcement Learning and Deep Search Area Proposal(无人机追逐无人机:强化学习和深度搜索区域建议)

    Drones Chasing Drones: Reinforcement Learning and Deep Search Area Proposal Abstract: 1.Introduction ...

  7. POMO: Policy Optimization with Multiple Optima for Reinforcement Learning学习笔记

    文章目录 摘要 零.一些基础 1.梯度近似 2.策略梯度定理 3.REINFORCE 4.REINFORCE with Baseline 5.REINFORCE Actor-Critic 6.多解旅行 ...

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

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

  9. 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning

    论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning  2017-06-06  21: ...

  10. Deep Reinforcement Learning 深度增强学习资源

    http://blog.csdn.net/songrotek/article/details/50572935 1 学习资料 增强学习课程 David Silver (有视频和ppt): http:/ ...

最新文章

  1. 10 分钟入门 AST 代码优化与修改
  2. 学Python10大理由:功能多、资源多、挣钱多!
  3. 第5周实践项目2 链栈的算法库建立
  4. spring的aop准备工作-导包定义通知
  5. 使用代码获得Netweaver里某个software component和C4C的版本
  6. 上采样,下采样,过采样,欠采样的区别
  7. mybatis 2 -常用数据操作
  8. 工作篇-佛山三水恒大-2020.10.23
  9. 网络爬虫中X-CSRF-Token和Status 403问题解决方案(Java或Python)
  10. 统计xml文件中的标签出现框数及出现过的图片数
  11. element ui下拉框实现
  12. bldc 原理 方波控制_正弦波驱动BLDC原理
  13. 微PE启动盘重装Windows 系统
  14. matlab多项式运算开方,matlab多项式运算【技术材料】
  15. 谷歌不会退出中国市场的八大理由
  16. 静默安装oracle11,Oracle11g静默安装
  17. 【studio】整理了下studio中make Project、clean Project、Rebuild Project的区别
  18. 关于nomogram核心函数的time.inc函数的设定
  19. 在1705年第一个电灯泡是如何被发明的?
  20. TextView设置SpannableString 添加图片和点击事件(仿微信点赞列表)

热门文章

  1. 【操作系统-Windows】杀毒软件工作原理 及 现在主要杀毒技术
  2. 小程序的宿主环境-宿主环境简介
  3. Finclip小程序宿主环境与微信小程序宿主环境
  4. 按键精灵 获取网页flash游戏 句柄 以360浏览器为例
  5. php ubb类,一个用PHP实现的UBB类!-PHP教程,PHP应用
  6. 李飞飞计算机视觉笔记(1)--数据驱动的图像分类方式:K最近邻与线性分类器
  7. 【NOIP2006】【Luogu1063】能量项链
  8. 如何快速下载720云高清全景图片
  9. 5分钟学会用代码发送邮件
  10. 信号与系统奥本海姆_魏小石 “奥本海姆、电子信息系统与20世纪民间传统音乐”讲座预告...