HER,让“她”明白失败是成功之母

  • 提出缘由
  • 核心思想
  • 怎样实现
    • 事后经验回放
  • 如何选取新的目标做经验回放
  • 单目标RL和多目标RL
  • HER伪代码
  • DDPG-HER代码

提出缘由

在许多强化学习环境中都存在稀疏奖励的问题,例如机械臂抓取物体,当抓到物体时给予一个正奖励,其余时候为零。再比如由n个硬币组成的环境,每个硬币都有正反两面记为{0,1}\{0,1\}{0,1},动作为选择其中一个硬币翻面,存在一个目标硬币状态组合(eg. {0,1,1,1,0...}\{0,1,1,1,0...\}{0,1,1,1,0...}),当抵达这个状态时才给予一个奖励。以上述这些环境为解决对象的RL算法程序中,经验池buffer会存储大量相同奖励reward的transition,这对于网络学习是极具挑战性的。一种解决方案是reward shaping,举个例子就是在写贪食蛇环境时,将原来吃到食物给予一个奖励不吃食物不给奖励改为不吃食物给予一个绝对值大小和蛇与食物距离呈负相关的负奖励,这样可以引导蛇向食物靠近,便于训练。

核心思想

HER为了解决上述问题采用了一种巧妙的思路。用简单的语言来描述这个问题:

  1. 足球运动员射点球;
  2. 第i脚射偏了,没进,在球门右侧;
    1. 对于不使用HER技术的RL算法来说这个奖励的意义不大,能学到的信息少;
    2. 对于使用HER技术的RL算法来说,它从这次错误中学到了自己当前踢球的角度和力量能把球射到偏离球门的这个位置;

也就是当Agent没有达到预期的目标状态时,而是达到另一个状态s时,它会明白:如果这个环境的目标是自己当前所在的状态,那么自己之前的一连串transition是正确的。如果还是用上面射门的例子就是:如果球门往右一些,自己当前踢球的角度和力量就是比较合适的。

怎样实现

HER针对off-policy算法,与PER不同,HER需要你对环境有一定的了解:

  1. 你得知道从状态S到目标goal的映射关系(以机械臂为例,状态可能是多个关节的角度,目标是三维空间一个点的坐标,如果知道状态,那么也能推算出机械臂末端在空间中的坐标);
  2. 你得建立一个新的reward计算机制,它取决于目标goal和状态S,一般当状态S映射的goal’与goal相近时给予奖励;
  3. 你得创建一个记录每个episode transition的列表,它的作用是在每个episode结束后进行事后经验回放,具体回放方法之后讲;
  4. RL算法接受的状态维度相较于原始的维度增加了目标goal的维度,也就是RL接受:
    obs={state∣∣goal}obs = \{state || goal\}obs={state∣∣goal}

事后经验回放

这一部分代码如下:

for i, transition in enumerate(episode_cache):new_goals = generate_goals(i, episode_cache, HER_SAMPLE_NUM)for new_goal in new_goals:o, a = transition[0], transition[1]r = calcu_reward(new_goal, o, a)o, a, o2 = gene_new_sas(new_goal, transition)ddpg.replay_buffer.store(o, a, r, o2)

这里episode_cache为存储transition的列表((s1,a1,r1,s1’),(s2,a2,r2,s2’)…),枚举这个列表的元素。在第二句根据每个transition产生HER_SAMPLE_NUM个新的目标点new_goals,这些目标点时根据之后的transition的state推算得到的,当然一种简单的情况就是state。之后对这些new_goals做遍历,对每一个new_goal都重新计算reward,并将transition中s和s’的goal部分替换为new_goal,之后将这个新的transition存储入经验池buffer。这里之所以可以这么做是因为在动作a不变的情况下,改变goal是不会改变从原来的s转移到s’的转移概率的。

如何选取新的目标做经验回放

论文给出了四种方式:final,random,episode,future

  • final:只取每个episode所获得的最后一个transition中state推算而得的goal来回放经验。
  • random:从迄今为止所有transition中取k个推算出goals来回放经验。
  • episode:从当前episode中所有transition中取k个推算出goals来回放经验。
  • future:对于episode中transition_i所使用的回放goals,其为trainsition_i之后的k个transition(随机取)推算出来的goals。

future和episode的区别就在于一个是取之后的k个一个是取所有的k个。
这四种产生新goals的方式效果如下:

从图中可以看出,红线对应的future方式有更好的成功率。

单目标RL和多目标RL

单目标RL:机械臂抓固定位置的目标。
多目标RL:机械臂抓任意位置的目标。
HER主要是针对多目标RL的,但是在单目标RL上也有很好的表现,那么在处理单目标RL时每一个episode需要随机一个合力的goal吗?原论文认为每个episode用不同的goal效果更好:

More importantly, comparing Fig. 2 and Fig. 3 we can also notice that HER learns faster if training episodes contain multiple goals, so in practice it is advisable to train on multiple goals even if we care only about one of them.

HER伪代码


HER的核心在第三个for循环,其过程在前面已有讲述。

DDPG-HER代码

实现了DDPG-HER的简单代码:
Github: DDPG-HER (DDPG部分参考spinningup,仅供学习)

Hindsight Experience Replay(HER)技术相关推荐

  1. Hindsight Experience Replay

    https://arxiv.org/pdf/1707.01495.pdf OpenAI在利用增强学习训练人工智能系统任务上不断地取得进步.他们发布的新平台显示,可以允许人工智能系统从错误中吸取教训,并 ...

  2. 深度强化学习系列(8): Prioritized Experience Replay(PER-DQN)原理及实现

    论文地址: https://arxiv.org/abs/1511.05952 本论文是由DeepMind操刀,Schaul主导完成的文章,发表于顶会ICLR2016上,主要解决经验回放中的" ...

  3. RL策略梯度方法之(十二): actor-critic with experience replay(ACER)

    本专栏按照 https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html 顺序进行总结 . 文章目录 ...

  4. RECURRENT EXPERIENCE REPLAY IN DISTRIBUTED REINFORCEMENT LEARNING (R2D2)

    R2D2采用了分布式框架和LSTM,作为model-free方法在Atari上实现了SOTA的效果.文章的主要贡献在于两个点:一是讨论了一下加入RNN之后对于强化学习的MDP时间序列训练方法的问题:另 ...

  5. pytorch 笔记: DQN(experience replay)

    1 理论知识 DQN 笔记 State-action Value Function(Q-function)_UQI-LIUWJ的博客-CSDN博客 强化学习笔记 experience replay 经 ...

  6. 强化学习笔记 experience replay 经验回放

    1 回顾 :DQN DQN 笔记 State-action Value Function(Q-function)_UQI-LIUWJ的博客-CSDN博客 DQN是希望通过神经网络来学习Q(s,a)的结 ...

  7. 强化学习—— 经验回放(Experience Replay)

    强化学习-- 经验回放(Experience Replay) 1.DQN的缺点 1.1 DQN 1.2 DQN的不足 1.2.1 经验浪费 1.2.2 相关更新(correlated update) ...

  8. Prioritized Experience Replay

    论文链接:https://arxiv.org/pdf/1511.05952v2.pdf 论文题目:PRIORITIZED EXPERIENCE REPLAY Prioritized Experienc ...

  9. DQL: Dueling Double DQN, Prioritized Experience Replay, and fixed Q-targets(三下)

    https://www.freecodecamp.org/news/improvements-in-deep-q-learning-dueling-double-dqn-prioritized-exp ...

  10. 论文理解【RL - Exp Replay】—— 【LFIW】Experience Replay with Likelihood-free Importance Weights

    标题:Experience Replay with Likelihood-free Importance Weights 文章链接:An Equivalence between Loss Functi ...

最新文章

  1. 从摩尔定律到人工智能,指数定律释放人类潜能
  2. SpringBoot之配置嵌入式Servlet容器
  3. pytorch实现手写数字识别_Paddle和Pytorch实现MNIST手写数字集识别对比
  4. 【EventBus】EventBus 源码解析 ( 事件发送 | 线程池中执行订阅方法 )
  5. word List 34
  6. [Matlab] PDETool 的 Set Formula 的元素排列顺序会影响 Boundary 的判定
  7. 脚本方式添加全文索引
  8. 我奋斗了18年,不是为了和你一起喝咖啡。
  9. android下最强的3款pdf阅读器测评
  10. dcs world f15c教学_DCS小百科,工控人必须知道的一些小知识
  11. Chrome 扩展程序 CrxMouse Techzero优化版 更新至 v3.0.4
  12. mysql区间左开右闭_左开右闭区间怎么写
  13. android高仿ios11系统,仿ios11状态栏安卓版-2020最新安卓仿iOS11状态栏apk3.0免费版下载_飞翔下载...
  14. PPT文件不能编辑怎么办?
  15. window7调用计算机,教你查看win7系统电脑使用记录的具体方法
  16. 防火墙一个系统加固的例子
  17. Java基础练习项目【飞机大战】
  18. 恒生电子实习记录-12
  19. 几个离散混沌映射系统(混沌函数)
  20. 20221222英语学习

热门文章

  1. ubuntu16.04连接android手机蓝牙共享网络热点
  2. 工业级交换机级联介绍
  3. 使用 teredo 穿透NAT访问 ipv6
  4. 查询微信被谁投诉方法技巧
  5. android最新版本下载vivo,vivo应用商店下载安卓版
  6. sql自定义报表软件_SQL Server中的报表–自定义报表的外观
  7. XMU毕业生总结写paper常用网站
  8. 创新工场投资经理:创业就是九死一生
  9. 权益证明,私钥攻击与无法伪造的奢侈
  10. Python 支付宝红包二维码制作步骤分享