本文是强化学习入门系列的第八篇,前面我们讲Actor-Critic时提到了DDPG。DDPG是google DeepMind团队提出的一种用于输出确定性动作的算法,它解决了Actor-Critic 神经网络每次参数更新前后都存在相关性,导致神经网络只能片面的看待问题这一缺点。同时也解决了DQN不能用于连续性动作的缺点。
Deep Deterministic Policy Gradient
简介
DDPG即深度确定性策略梯度算法。也是一种可以解决连续性控制问题的方法。属于model-free、off-policy、policy-based的方法。原文传送:
- Silver, David, et al. “Deterministic policy gradient algorithms.” ICML. 2014.(前序工作)
- Lillicrap, Timothy P., et al. “Continuous control with deep reinforcement learning.” arXiv preprint arXiv:1509.02971 (2015).
DDPG我们可以拆开来看,Deep,是说明需要神经网络。Deterministic的意思就是最终确定地只输出一个动作。Policy Gradient我们已经知道是策略梯度算法。DDPG可以看成是DQN的扩展版,不同的是,以往的DQN在最终输出的是一个动作向量,对于DDPG是最终确定地只输出一个动作。而且,DDPG让 DQN 可以扩展到连续的动作空间。
网络结构
DDPG的结构形式类似Actor-Critic。DDPG可以分为策略网络和价值网络两个大网络。DDPG延续DQN了固定目标网络的思想,每个网络再细分为目标网络和现实网络。不过目标网络的更新上有些不同。下面详细分析。
先来看策略网络,也就是Actor。Actor输出的是一个确定性的动作,产生这个确定性动作的网络定义为 a = μ θ ( s ) a=\mu_{\theta}(s) a=μθ(s)。以往的policy gradient采取的是随机策略,每一次获取动作都需要对当前的最优策略的分布进行采样,而DDPG采取的则是确定性策略,直接通过函数 μ \mu μ 确定。Actor的估计网络就是 μ θ ( s ) \mu_{\theta}(s) μθ(s),