强化学习之multi-step DQN

参考链接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数据,然后依次累加

猜你喜欢

转载自blog.csdn.net/qq_45889056/article/details/130621187