ERL(evolutionary reinforcement learning)

本文探讨了如何将进化算法与强化学习(如DDPG)相结合,以解决传统强化学习在稀疏奖励、探索效率和超参数敏感性上的挑战。通过引入进化算法的多样经验来增强探索,同时利用DDPG的梯度信息,实现了两者的互补。代码实现中,每个个体神经网络的权重参与交叉和变异操作。这种结合方法在实践中表现出更快更好的学习效果。
摘要由CSDN通过智能技术生成

论文: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是变异的过程,对权重矩阵当中的元素以小概率进行突变。
在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值