dqn系列梳理_强化学习--从DQN到PPO, 流程详解

本文详细梳理了强化学习中常见的几种算法,包括Nature DQN、Double DQN、Prioritized Replay DQN、Dueling DQN、Policy Gradient、Actor-Critic、DDPG和PPO的实现流程。通过流程图和文字描述,帮助读者理解每个算法的关键步骤,如DQN的Q值更新、双DQN的选择策略、优先重播的采样和更新、DDPG的actor-critic网络以及PPO的策略梯度更新等。
摘要由CSDN通过智能技术生成

说在前面

本文只讲述强化学习常见算法的实现流程, 不涉及原理推倒, 原理上的东西, 推荐看李宏毅老师的强化学习课程。

本文包括:

Nature DQN, Double DQN, Prioritized Replay DQN, Dueling DQN, Policy Gradient, Actor-Critic, DDPG, PPO算法的流程。

本文流程是基于莫凡的RL代码进行梳理。

(建议同时打开两个页面,一边看流程图, 一边看流程说明)

Nature DQN

1、将环境信息s输入到eval网络, 输出为action的Q值,选择最大Q值对应的action, 或者随机生成一个action(所谓的探索),将action输入环境, 得到奖励r和下一个环境信息s_, 存储当前环境s, 选择的action, 得到的奖励r这4个信息, 然后再将s_输入到eval网络, 循环步骤1, 直到存储了一定量的[(s, a, r, s_), …], 注意这个过程中eval网络没有更新。

2、从存储的[(s, a, r, s_), …]中sample出一部分(s, a, r, s_) ,将sample出来的多个s做为batch输入到eval 网络, 得到batch的action的Q值q_eval, 然后根据sample出来的action选出其在q_eval中对应的Q值q_action_eval(对应gather过程)。

3、将sample出来的多个s_做为batch输入到target网络(eval与target有相同的网络结构), 得到batch的action的Q值q_next, 取q_next中最大的Q值(dim=1)并乘以一个系数gamma, 然后再加上sample出来的奖励r, 得到q_target。

4、计算loss:loss 为第2步的结果q_action_eval与第3步的结果q_target的MSE, 然后根据loss反向传播更新eval网络。

5、循环1到4步骤, 每过一定的步数后,将eval网络的权重更新到target网络上。

Double DQN

Double DQN 大部分和Nature DQN是一样的, 只是在计算q_target的时候不一样:

Nature DQN计算q_target时, 直接将sample的s_输入到target网络, 得到动作的Q值, 选出最大Q值。

而Double DQN 计算q_target,是先将sample的s_输入到target网络, 得到动作的Q值q_next, 同时将sample的s_输入到eval网络,得到动作的Q值q_eval`, 选出其最大Q值对应的动作, 再通过这个动作找到对应q_next

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值