算法学习(十一)—— Prioritized Experience Replay

基本思想:

使用包含更多信息的样本训练网络,如何快速的选出这些样本以及如何消除样本选择不均匀导致的参数更新错误是重点。

使用条件:

在算法设计足够好的情况,使用该方法不一定有效,如果奖励密度不够高、可以尝试。使用pr,算法效率可能降低,所以不一定好用。

关键点:

TD-error、sumtree和isweights

TD-error:

其目的在于不用样本赋予的权重,

 

sumtree:用于对不同TD-error的数据提供一个选择上的优先级。

抽样时, 我们会将 p 的总和除以 batch size, 分成 batch size 那么多区间, (n=sum(p)/batch_size). 如果将所有 node 的 priority 加起来是42的话, 我们如果抽6个样本, 这时的区间拥有的 priority 可能是这样. [0-7], [7-14], [14-21], [21-28], [28-35], [35-42] 然后在每个区间里随机选取一个数. 比如在第区间 [21-28] 里选到了24, 就按照这个 24 从最顶上的42开始向下搜索. 首先看到最顶上 42 下面有两个 child nodes, 拿着手中的24对比左边的 child 29, 如果 左边的 child 比自己手中的值大, 那我们就走左边这条路, 接着再对比 29 下面的左边那个点 13, 这时, 手中的 24 比 13 大, 那我们就走右边的路, 并且将手中的值根据 13 修改一下, 变成 24-13 = 11. 接着拿着 11 和 13 左下角的 12 比, 结果 12 比 11 大, 那我们就选 12 当做这次选到的 priority, 并且也选择 12 对应的数据。

 

isweights:用于修正数据有偏选择造成的偏差。

 

基本流程:

 

参考文章:

强化学习模型-Priority Replay Buffer

强化学习的学习之路(二十)_2021-01-20:Priority Replay Buffer

RL 7.Prioritized Experience Replay经验回放

【一文弄懂】优先经验回放(PER)论文-算法-代码

 

代码:

https://github.com/rlcode/per

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值