【无标题】

关于experience rplay

1.大体介绍

经验回放(Experience Replay)是一种用于增强深度强化学习(Deep Reinforcement Learning)稳定性的技术。在经验回放中,智能体将之前的transition存储在一个经验池(Experience Pool)中,然后从中随机采样一小批transition,用于训练神经网络。这种做法有以下几个优点:

  1. 提高数据利用率:经验回放可以使智能体重复使用之前收集到的transition,从而提高数据利用率。

  2. 减少样本相关性:随机采样可以减少训练数据之间的相关性,从而提高神经网络的泛化能力。

  3. 平滑训练分布:经验回放可以平滑训练分布,从而减少训练过程中的方差,提高训练的稳定性。

通过经验回放技术,智能体可以更加稳定地学习到值函数或策略,并在复杂的环境中取得更好的表现。

2.重要参数

在经验回放技术中,比较重要的参数包括经验池的大小、采样批次的大小和采样策略。经验池的大小决定了可以存储多少transition,一般来说,经验池的大小应该足够大,以便智能体能够从中学习到足够多的信息。采样批次的大小决定了每次从经验池中随机采样多少transition进行训练,一般来说,采样批次的大小应该足够小,以充分利用之前收集到的transition。采样策略决定了智能体从经验池中随机采样transition的方式,一般来说,采样策略应该是均匀随机或优先级随机,以充分利用之前收集到的transition并减少训练数据之间的相关性。

3.简单实现

class ExperienceReplay:
    def __init__(self, capacity):
        self.capacity = capacity
        self.memory = []
    def push(self, transition):
        if len(self.memory) < self.capacity:
            self.memory.append(transition)
        else:
            self.memory.pop(0)
            self.memory.append(transition)
    
    def sample(self, batch_size):
        return random.sample(self.memory, batch_size)

其中,ExperienceReplay类表示一个经验回放器,capacity表示经验池的容量大小,memory表示存储transition的列表。push方法用于将新的transition加入经验池中,如果经验池已满,则删除最早加入的transition;sample方法用于从经验池中随机采样一小批transition。

标题:10. 经验回放+Experience+Replay+(价值学习高级技巧+1_3)_哔哩哔哩_bilibili

网址:https://www.bilibili.com/video/BV1FM411L7QW/?p=9&vd_source=e12a6226d70520482a77d7878d59f665

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值