强化学习:浅析DDPG

强化学习:浅析DDPG

强化学习:浅析DDPG

强化学习:浅析DDPG

写在文章开头

DDPG作为Actor-Critic方法的典型代表,是强化学习中众多前沿算法的根基,像TD3、MADDPG等等。

本文作为个人的学习笔记,对于一些个人已经理解的要点便不会再过多阐述,因此文章的知识体系可能会显得不够系统。文末会附上DDPG的实现代码。欢迎大家指出文章中的错误,共同学习。

DDPG之前

在谈DDPG之前,我们首先来回顾一下强化学习的目标,这有利于我们去理解deterministic policy gradient(注意,这里说的确定性策略梯度不是DPG本身这个算法,而是指数学上DPG这一梯度表达式)。

目标

简单来讲,强化学习的目标就是要为智能体找到一个策略 π \pi π,使得奖励 R t R_t Rt​(需要满足 t = 1 t=1 t=1也即从智能体与环境交互之初就开始计算)的期望值最大,也就是下式最大:
J = E r i , s i ∼ E , a i ∼ π [ R 1 ] J=\Epsilon_{r_i,s_i \sim E,a_i\sim\pi}[R_1] J=Eri​,si​∼E,ai​∼π​[R1​]
式中, E E E代表环境。

基本要素

强化学习中对状态价值函数的定义是
V π ( s ) = E π [ R t ∣ S t = s ] V^{\pi}(s)=\Epsilon_{\pi}[R_t|S_{t}=s] Vπ(s)=Eπ​[Rt​∣St​=s]对动作价值函数的定义则是
Q π ( s , a ) = E π [ R t ∣ S t = s , A t = a ] Q^{\pi}(s,a)=\Epsilon_{\pi}[R_{t}|S_{t}=s,A_t=a] Qπ(s,a)=Eπ​[Rt​∣St​=s,At​=a]所以实际上, V π V^{\pi} Vπ就是对 Q π Q^{\pi} Qπ中动作 A t A_t At​积分后的结果,也就是有如下的关系式:
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) V^{\pi}(s)=\sum_{a∈A}\pi(a|s)Q^{\pi}(s,a) Vπ(s)=a∈A∑​π(a∣s)Qπ(s,a)

贝尔曼方程

许多value-based的强化学习算法都基于下面这个递归式也即贝尔曼方程:
Q π ( s t , a t ) = E r t , s t + 1 ∼ E [ r ( s t , a t ) + γ E a t + 1 ∼ π [ Q π ( s t + 1 , a t + 1 ) ] ] Q^{\pi}(s_t,a_t)=\Epsilon_{r_t,s_{t+1}\sim E}\Big[r(s_t,a_t)+\gamma\Epsilon_{a_{t+1}\sim\pi}[Q^{\pi}(s_{t+1},a_{t+1})]\Big] Qπ(st​,at​)=Ert​,st+1​∼E​[r(st​,at​)+γEat+1​∼π​[Qπ(st+1​,at+1​)]]这个式子其实可以通过 Q π Q^{\pi} Qπ和 V π V^{\pi} Vπ的关系推导出来,这里就不再赘述。

深度确定性策略

我们观察上面的贝尔曼方程,如果目标策略 π \pi π(target policy)是确定性的,那么就可以避免内部的期望项。为什么这样说呢?我们首先把这一确定性策略描述为一个映射函数 μ : S → A \mu:S→A μ:S→A,也就是说这一确定性策略抹去了概率,那么就不存在采样的动作 a t + 1 ∼ π a_{t+1}\sim \pi at+1​∼π。

其实这种确定性策略的定义非常常见,其实Q-learning也使用过:
μ ( s ) = arg ⁡ max ⁡ a Q ( s , a ) \mu(s)=\arg \max_{a}Q(s,a) μ(s)=argamax​Q(s,a)
从上面这个式子就可以知道Q-learning based的强化学习算法其都是某种意义上的确定性策略,并且这些确定性策略的计算方法便是取那些能够使 Q Q Q值最大的动作。不过,正是因为这一点,Q-learning based的强化学习算法,哪怕是DQN,Double DQN,Dueling DQN,也无法解决这样的一个问题:当动作空间 A A A是离散的时候,求最大值就像是在极少的数值内作比较,找最大值;但当动作空间是连续的时候,求最大值变成了求导的问题,我们会对 Q Q Q关于 a a a求偏导,去寻找极值点,这样的话,在算法迭代的每一轮都要求导,训练周期明显加大,算法效率极低。所以,才有Policy-based的方法诞生,而DDPG是它们中最闪耀的算法之一。

尽管Q-learning based的方法有局限性,但DDPG却集百家之长。简单来讲,DDPG的组成可以这样来说明:

DDPG = DPG + DQN + (BatchNormalization)

对这个公式我分两方面理解。

DDPG继承了DPG的衣钵,它们都有所谓的“ 确定性策略 ”。这个词在强化学习中非常常见,那么到底是什么意思呢?

对这个问题我们这样来讲:DDPG恰好又继承了Q-learning的策略形式(只是继承了思想,但不是上面这个式子),不过它加入了这样的一种确定性策略: μ ( s ∣ θ μ ) \mu(s|\theta^{\mu}) μ(s∣θμ)。其中的 θ μ \theta^{\mu} θμ是确定性策略 μ \mu μ的参数。看到一个函数带有参数,我们很快就能想到用一个神经网络来拟合。 μ ( s ∣ θ μ ) \mu(s|\theta^{\mu}) μ(s∣θμ)的输出是一个动作的确定之,而不是概率(这与Policy Gradient算法恰恰相反)。注意,这个确定性策略也被称为actor,而critic则是 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a)(critic通过贝尔曼迭代方程来学习,这是Q-learning的思想,但实际采用了DQN的网络)。actor通过下式进行学习
强化学习:浅析DDPG
这个公式来源于DDPG的原论文。对于这个式子原论文是这样说的:

Silver et al. (2014) proved that this is the policy gradient, the gradient of the policy’s performance

总结来讲有两点,DDPG驱动的整个智能体,包含了四个神经网络。

PS

先写到这里,吃午饭。

上一篇:LOJ#6076. 「2017 山东一轮集训 Day6」三元组


下一篇:P3327 [SDOI2015]约数个数和(莫比乌斯反演)