强化学习之multi-step DQN

多步DQN是经典DQN的扩展,通过考虑未来n步奖励加速学习。它使用n-stepreturn作为目标值,提高样本效率和训练稳定性,尤其适用于延迟奖励环境。算法包括初始化网络和缓冲区,选择动作,存储交互数据,计算多步回报并更新模型,直至达到训练目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接1
参考链接2

在这里插入图片描述
Multi-step DQN(多步DQN)是一种强化学习算法,是在经典的深度Q网络(DQN)的基础上进行扩展的。它通过引入多步回报(multi-step return)来加速学习和提高样本效率。

传统的DQN算法使用一步回报(one-step return),即在每个时间步只考虑当前奖励和下一个状态的Q值。而Multi-step DQN则通过考虑未来多个时间步的奖励来计算回报,从而更充分地利用了环境的延迟奖励信号。

Multi-step DQN的核心思想是使用一个固定的步数n来定义多步回报,记为n-step return。在每个时间步,从当前状态开始,执行n步动作,累积对应的奖励,并以n步后的状态的Q值作为目标值进行训练。

算法步骤如下:

  • 初始化一个深度神经网络作为值函数近似器,用于估计状态动作值函数Q(s, a)。

  • 初始化经验回放缓冲区,用于存储交互数据。

  • 对于每个时间步,执行以下步骤:

    a. 根据当前状态选择动作,可以使用ε-greedy等策略。

    b. 执行选定的动作,观察下一个状态和奖励。

    c. 将当前状态、动作、奖励、下一个状态和终止状态信息存储到经验回放缓冲区中。

    d. 如果经验回放缓冲区中的样本数量达到一定阈值,从缓冲区中随机抽样一批样本用于训练。

    对于每个样本,计算n-step return,即从当前步开始执行n步动作后的累积奖励。
    使用n-step后的状态的Q值作为目标值,计算损失并更新值函数近似器的参数。

    e. 更新当前状态为下一个状态。

  • 重复步骤3直到达到预设的训练轮数或收敛条件。

Multi-step DQN通过引入多步回报来增加了学习的速度和效率,同时更好地利用了环境中的延迟奖励信号。通过在训练过程中使用n-step return作为目标值,可以减少更新的方差,从而提高训练的稳定性和效果。

仿真的时候要倒序写,因为要算n-steps的reward,step越靠前面,乘的$\gamma$的次方就越多,所有先从最后面的step数据,然后依次累加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值