文章目录

  • DDPG(Deep Deterministic Policy Gradient)
  • 离散动作 v.s. 连续动作
  • 随机策略 v.s. 确定性策略
  • DDPG
  • Trick: target network + Replay Memory
  • Exploration v.s. Exploitation
  • Twin Delayed DDPG(TD3) “双”“延迟”深度确定性策略网络


DDPG(Deep Deterministic Policy Gradient)

离散动作 v.s. 连续动作

动作空间的可数性,很好理解。例如,离散:只有上下左右四个动作;连续:方向盘转多少度

随机策略 v.s. 确定性策略

  • 对随机性的策略来说,输入某一个状态 s,采取某一个 action 的可能性并不是百分之百,而是有一个概率 P 的,就好像抽奖一样,根据概率随机 sample 一个动作。
  • 而对于确定性的策略来说,它没有概率的影响。当神经网络的参数固定下来了之后,输入同样的 state,必然输出同样的 action,这就是确定性的策略。

强化学习多个离散动作空间 ddpg 离散动作_神经网络

常见的处理:

  • 随机性策略神经网络的输出会加上 softmax 层,强化学习多个离散动作空间 ddpg 离散动作_强化学习_02 以保证所有的动作概率和为1
  • 确定性策略神经网络的输出先加一层 强化学习多个离散动作空间 ddpg 离散动作_强化学习_03

DDPG

  • Deterministic 直接输出确定性动作
  • 策略更新是单步的
  • 策略网络参数是 强化学习多个离散动作空间 ddpg 离散动作_强化学习多个离散动作空间_04 ,Q 网络参数是 强化学习多个离散动作空间 ddpg 离散动作_强化学习多个离散动作空间_05
  • 称这样的结构为 Actor-Critic 的结构。

强化学习多个离散动作空间 ddpg 离散动作_神经网络_06

优化:

  1. DQN只需优化Q网络,且类似于一个 regression problem强化学习多个离散动作空间 ddpg 离散动作_强化学习多个离散动作空间_07
  2. DDPG需要优化策略网络和Q网络
  1. 策略网络就是为了最大化Q值,所以 强化学习多个离散动作空间 ddpg 离散动作_MSE_08
  2. Q网络的优化和DQN一样

Trick: target network + Replay Memory

强化学习多个离散动作空间 ddpg 离散动作_MSE_09


注意,因为 DDPG 使用了经验回放这个技巧,所以 DDPG 是一个 off-policy 的算法。

Exploration v.s. Exploitation

DDPG 通过 off-policy 的方式来训练一个确定性策略。因为策略是确定的,如果 agent 使用同策略来探索,在一开始的时候,它很可能不会尝试足够多的 action 来找到有用的学习信号。为了让 DDPG 的策略更好地探索,我们在训练的时候给它们的 action 加了噪音(通常是均值为0的 gaussian noise)。但是测试的时候就不会加噪声了

Twin Delayed DDPG(TD3) “双”“延迟”深度确定性策略网络

虽然 DDPG 有时表现很好,但它在超参数和其他类型的调整方面经常很敏感。DDPG 常见的问题是已经学习好的 Q 函数开始显著地高估 Q 值,然后导致策略被破坏了,因为它利用了 Q 函数中的误差。

解决方法:引入三个技巧

  1. “双”:**截断的双Q学习(clipped double Q-learning):**TD3 学习两个 Q-function(因此名字中有 “twin”)。TD3 通过 minimize MSE 来同时学习两个 Q-function:强化学习多个离散动作空间 ddpg 离散动作_Memory_10强化学习多个离散动作空间 ddpg 离散动作_强化学习_11。两个 Q-function 都使用一个 target,两个 Q-function 中给出较小的值会被作为如下的 Q-target:
    强化学习多个离散动作空间 ddpg 离散动作_神经网络_12
  2. “延迟”:延迟的策略更新(“Delayed” Policy Updates):相关实验结果表明,同步训练动作网络和评价网络,却不使用目标网络,会导致训练过程不稳定;但仅固定动作网络时,评价网络往往能够收敛到正确的结果。因此 TD3 算法以较低的频率更新动作网络,较高频率更新评价网络,通常每更新两次评价网络才更新一次策略。
  3. 目标策略平滑(Target Policy smoothing):TD3 引入了 smoothing 的思想。TD3 在目标动作中加入噪音,通过平滑 Q 沿动作的变化,使策略更难利用 Q 函数的误差。工作原理如下:
    强化学习多个离散动作空间 ddpg 离散动作_Memory_13
    其中 ϵ 本质上是一个噪声,是从正态分布中取样得到的,即 强化学习多个离散动作空间 ddpg 离散动作_Memory_14

TD3 的作者给出了对应的实现:TD3 Pytorch implementation