Files
easy-rl/docs/chapter12/chapter12_questions&keywords.md
2021-02-07 23:28:23 +08:00

4.3 KiB
Raw Blame History

Chapter12 DDPG

1 Keywords

  • DDPG(Deep Deterministic Policy Gradient) 在连续控制领域经典的RL算法是DQN在处理连续动作空间的一个扩充。具体地从命名就可以看出Deep是使用了神经网络Deterministic 表示 DDPG 输出的是一个确定性的动作可以用于连续动作的一个环境Policy Gradient 代表的是它用到的是策略网络,并且每个 step 都会更新一次 policy 网络,也就是说它是一个单步更新的 policy 网络。其与DQN都有目标网络和经验回放的技巧在经验回放部分是一致的在目标网络的更新有些许不同。

2 Questions

  • 请解释随机性策略和确定性策略。

    答:

    • 对于随机性的策略 \pi_\theta(a_t|s_t) ,我们输入某一个状态 s采取某一个 action 的可能性并不是百分之百,而是有一个概率 P 的,就好像抽奖一样,根据概率随机抽取一个动作。
    • 对于确定性的策略 \mu_{\theta}(s_t) 其没有概率的影响。当神经网络的参数固定下来了之后输入同样的state必然输出同样的 action这就是确定性的策略。
  • 对于连续动作的控制空间和离散动作的控制空间如果我们都采取使用Policy网络的话分别应该如何操作

    首先需要说明的是对于连续的动作控制空间Q-learning、DQN等算法是没有办法处理的所以我们需要使用神经网络进行处理因为其可以既输出概率值 \pi_\theta(a_t|s_t) ,也可以输出确定的策略 \mu_{\theta}(s_t)

    • 要输出离散动作的话最后的output的激活函数使用 softmax 就可以实现。其可以保证输出是的动作概率,而且所有的动作概率加和为 1。
    • 要输出连续的动作的话,可以在输出层这里加一层 tanh激活函数。其作用可以把输出限制到 [-1,1] 之间。我们拿到这个输出后,就可以根据实际动作的一个范围再做一下缩放,然后再输出给环境。比如神经网络输出一个浮点数是 2.8,然后经过 tanh 之后,它就可以被限制在 [-1,1] 之间,它输出 0.99。然后假设说小车的一个速度的那个动作范围是 [-2,2] 之间,那我们就按比例从 [-1,1] 扩放到 [-2,2]0.99 乘 2最终输出的就是1.98,作为小车的速度或者说推小车的力输出给环境。

3 Something About Interview

  • 高冷的面试官请简述一下DDPG算法

    答:深度确定性策略梯度(Deep Deterministic Policy Gradient简称 DDPG) 使用 Actor Critic 结构,但是输出的不是行为的概率,而是具体的行为用于连续动作的预测。优化的目的是为了将DQN扩展到连续的动作空间。另外其字如其名

    • Deep 是因为用了神经网络;
    • Deterministic 表示 DDPG 输出的是一个确定性的动作,可以用于连续动作的一个环境;
    • Policy Gradient 代表的是它用到的是策略网络。REINFORCE 算法每隔一个 episode 就更新一次,但 DDPG 网络是每个 step 都会更新一次 policy 网络,也就是说它是一个单步更新的 policy 网络。
  • 高冷的面试官你好请问DDPG是on-policy还是off-policy原因是什么呀

    off-policy。解释方法一DDPG是优化的DQN其使用了经验回放所以为off-policy方法解释方法二因为DDPG为了保证一定的探索对于输出动作加了一定的噪音也就是说行为策略不再是优化的策略。

  • 高冷的面试官你是否了解过D4PG算法呢描述一下吧。

    分布的分布式DDPGDistributed Distributional DDPG ,简称 D4PG)相对于DDPG其优化部分为

    • 分布式 critic: 不再只估计Q值的期望值而是去估计期望Q值的分布, 即将期望Q值作为一个随机变量来进行估计。
    • N步累计回报: 当计算TD误差时D4PG计算的是N步的TD目标值而不仅仅只有一步这样就可以考虑未来更多步骤的回报。
    • 多个分布式并行actorD4PG使用K个独立的演员并行收集训练样本并存储到同一个replay buffer中。
    • 优先经验回放Prioritized Experience ReplayPER使用一个非均匀概率 \pi 从replay buffer中采样。