解读continuous control with deep reinforcement learning(DDPG)

论坛 期权论坛 脚本     
匿名网站用户   2020-12-19 13:52   11   0

本文为博主“声时刻”原创文章,未经博主允许不得转载。
联系方式:shenshikexmu@163.com

缘起

DDPG,是Google Deepmind第一篇关于连续动作的深度加强学习论文(是否第一篇存疑)。DQN(Deep Q Network)生成的策略执行的动作是离散或者低维的,虽然在状态输入上可以是高维的观察状态。如在DQN2014中,有效的动作在4到18个之间,而输入的状态是84×84×4的图片。相对于连续动作,DQN的动作空间太小了,原文的to to simply,使得DQN瞬间沦为香港记者,呵呵。文中举的例子,是7个自由度(DOF)的机械臂,只是粗糙的控制,每一个DOF只有三种动作状态ai{k,0,k}a_i\in\{-k,0,k\},那么整个机械臂的运动状态就有37=21873^7=2187。这样的动作空间,DQN在学习中很难一一搜索,更何况一个DOF很难只有三种动作状态。再加上,简单离散的动作空间中的动作是不需要根据运动空间的结构进行动作取舍,而在复杂动作操作时这样的取舍是基本的(Additionally, naive discretization of action spaces needlessly throws away information about the structure of the action domain, which may be essential for solving many problems)。发现这句话理解起来有点难,我的理解是(不保证对),由于DQN运动状态空间比较少,所有的运动状态在策略学习时都可以遍历,取舍的问题直接由策略决定,但连续动作的控制就不行了,不可能每个动作都遍历,形成策略,策略决定动作取舍。
于是需要新的深度强化学习方法,来解决连续动作空间的策略问题。

背景知识

st=(x1,a1,...,at1,xt)s_t=(x_1,a_1,...,a_{t-1},x_t)
状态动作轨迹

π:SP(A)\pi: S \rightarrow P(A)
策略概率π\piπ\pi首先是概率分布,这对理解强化学习很重要。不同的状态,所对应的不同动作出现的概率。也就是对于特定的SiS_i状态,P(Ai)P(A_i)是个概率分布,如在SiS_i状态下,选择A1A_1的动作概率是P(A1)P(A_1),选择A2A_2的动作概率是P(A2)P(A_2)

p(st+1st,at)p(s_{t+1}\mid s_t,a_t)
状态转移概率,当前状态是sts_t,在此状态下完成ata_t动作,下一个状态变成st+1s_{t+1}的概率。

r(st,at)r(s_t,a_t)
回报函数,这里给出的rr值,可不是单独在sts_t状态下,完成ata_t的回报(算法要求出的Q(st,at)Q(s_t,a_t)是单独在sts_t状态下,完成ata_t的回报),而是之前所有动作在当时特定状态下的回报的累加。也就是之前的动作对当前的rr值也是有贡献的。

Rt=i=tTγitr(si,ai)R_t=\sum_{i=t}^{T}\gamma^{i-t}r(s_i,a_i)
Rt=γ0r(st,at)+γ1r(st+1,at+1)+...γTtr(sT,aT)R_t=\gamma^{0}r(s_t,a_t)+\gamma^{1}r(s_{t+1},a_{t+1})+...\gamma^{T-t}r(s_T,a_T)
折扣累计奖赏,这是在sts_t状态下,完成ata_t后,在接下来的TtT-t步后,sts_t状态和动作ata_t,累加的奖赏。RtR_t更接近算法求出的Q(st,at)Q(s_t,a_t)。说是接近,在于Q(st,at)Q(s_t,a_t)更像是量子力学中的叠加态,它是概率分布的,RtR_t更像是坍缩态,也就是你已经知道薛定谔的猫是死是活的结果。

J=Eri,siE,aiπ[R1]J=E_{r_i,s_i\sim{E},a_i\sim{\pi}}[R_1]
首先这是个期望值,这是全篇论文理解的一个眼,这个公式理解了,论文思想理解80%了。里面包含siEs_i\sim{E},用周志华《机器学习》中p378中(16.8)的表示方式为Psisi+1aiP_{s_i \rightarrow s_{i+1}}^{a_i},在状态sis_i下,动作aia_i产生下一个状态为si+1s_{i+1}的概率。aiπa_i\sim{\pi}为上面讲的策略概率。在DPG2014第一个公式写得更容易理解:
J(πθ)=Sρπ(s)Aπθ(s,a)r(s,a)dads=Esρπ,aπθ[r(s,a)]J(\pi_\theta)=\int_{S}\rho^{\pi}(s)\int_A\pi_\theta(s,a)r(s,a)dads\\ \qquad =E_{s\sim{\rho^{\pi}},a\sim{\pi_{\theta}}}[r(s,a)]
两个公式是一样的,在概率策略πθ\pi_\theta下,所有的状态对应动作概率下回报的期望,这么说也很难理解吧,通俗一点,有点像原子核周围的电子云,原子核周围的电子并不像地球、火星之类有明确的轨道,其状态也是呈概率分布,JJ相当于电子云带的能量。

$ Q^{\pi}(s_t,a_t)=E_{r_{i \ge t},s_i>t\sim{E},a_i>t\sim{\pi}}[R_t\mid s_t,a_t]\qquad(1) $
文中第一个标号的公式,也是期望值,类似前面的解释,再说一点,π\piEE都是很多动作或者状态的叠加,叠加的权值是概率。打符号开始差点打错了,是iti \ge t,而不是ritr_i \ge t。也就是说ii是一个长的序列。在下面的公式中ii就只是下一步了。

$ Q^{\pi}(s_t,a_t)=E_{r_t ,s_{t+1}\sim{E}}[r(s_t,a_t)+\gamma E_{a_{t+1}\sim {\pi}}[Q^{\pi}(s_{t+1},a_{t+1})]]\qquad(2)$
Bellman等式,由上面的公式变形来的,也是期望值。有点像信号处理的Z变换(傅立叶变换是Z变换的特殊形式),把时域的信号转化成频域的信号。Qπ(st,at)Q^{\pi}(s_t,a_t)脱掉了长长的ii,只对应t+1t+1的时刻,注意这里是Qπ(st,at)Q^{\pi}(s_t,a_t)Qπ(st+1,at+1)Q^{\pi}(s_{t+1},a_{t+1})都是期望值

$ Q^{\mu}(s_t,a_t)=E_{r_t ,s_{t+1}\sim{E}}[r(s_t,a_t)+\gamma Q^{\mu}(s_{t+1},\mu(s_{t+1}))]\qquad(3)$
当策略概率π\pi,坍缩成目标策略μ\mu时,2(2)中的中括号期望变成了确定μ(st+1\mu(s_{t+1})对应的动作。但Qμ(st,at)Q^{\mu}(s_t,a_t)仍旧是个期望值,因为这样的式子Psisi+1aiP_{s_i \rightarrow s_{i+1}}^{a_i},同样状态sis_i下同样动作aia_i产生的结果并不是固定的。同样Qπ(st+1,at+1)Q^{\pi}(s_{t+1},a_{t+1})也都是期望值。

L(θQ)=Estρβ,atβ,rtE[(Q(st,atθQ)yt)2](4)L(\theta^Q)=E_{s_t\sim{\rho^\beta},a_t\sim{\beta},r_t\sim{E}}[(Q(s_t,a_t\mid\theta^Q)-y_t)^2]\qquad(4)
其中
yt=r(st,at)+γQ(st+1,μ(st+1)θQ)(5)y_t=r(s_t,a_t)+\gamma Q(s_{t+1},\mu(s_{t+1})\mid \theta^Q) \qquad(5)
其中
μ(s)=argmaxaQ(s,a)\mu(s)=arg max_aQ(s,a)是贪心算法,选择期望最大回报的执行动作。由于算法采用“异策略“(off-policy),也就是被评估与被改进的不是同一个策略,被评估的策略是随机动作策略β\beta

算法

算法利用了DQN2014中的”行为-评价”方法(actor-critic),建立两个神经网络,一个行为函数网络(actor function)μ(sθμ)\mu(s\mid\theta^{\mu}),其中θμ\theta^\mu是其神经网络的参数;一个评价函数网络(critic)Q(s,aθQ)Q(s,a\mid \theta^Q),其中θQ\theta^Q是其神经网络参数。

算法在迭代的过程中,评价函数网络Q(s,aθQ)Q(s,a\mid \theta^Q)通过bellman等式,也就是(4)(5),使得L(θQ)L(\theta^Q)越来越小,这样Q(s,aθQ)Q(s,a\mid \theta^Q)越来越接近实际值(对场景的建模越来越精准);与此同时,提供一种优化μ(sθμ)\mu(s\mid\theta^{\mu})方法,使得回报期望JJ变得越来越大。而JJ的梯度函数,在θQ\theta^Q固定的情况下,只与μ(sθμ)\mu(s\mid\theta^{\mu})有关。

θμJEstρβ[θμQ(s,aθQ)s=st,a=μ(stθμ)]=Estρβ[θμQ(s,aθQ)s=st,a=μ(st)θμμ(sθμ)s=st](6)\nabla_{\theta^\mu}J\approx E_{s_t\sim{\rho^\beta}}[\nabla_{\theta^\mu}Q(s,a\mid \theta^Q)\mid _{s=s_t,a=\mu(s_t\mid {\theta^\mu})}]\\ \qquad =E_{s_t\sim{\rho^\beta}}[\nabla_{\theta^\mu}Q(s,a\mid \theta^Q)\mid _{s=s_t,a=\mu(s_t)}\nabla_{\theta^\mu}\mu(s\mid\theta^\mu)\mid _{s=s_t}] \qquad(6)

一次迭代后的产生的新的μ(sθμ)\mu(s\mid\theta^{\mu}),将在探索过程发挥作用。

算法框架图
这里写图片描述

算法中JJ函数只给了梯度,博主推测如下:
J(θμ)1NiQ(si,aθQ)a=μ(si)J(\theta^\mu)\approx\frac{1}{N}\sum\limits_{i}Q(s_i,a\mid \theta^Q)\mid_{a=\mu(s_i)}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP