您的位置:首页 > 其它

解读continuous control with deep reinforcement learning(DDPG)

2017-03-13 18:33 1311 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。

博主:shenshikexmu

联系方式: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},那么整个机械臂的运动状态就有37=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,...,at−1,xt)

状态动作轨迹

π:S→P(A)

策略概率π ,π首先是概率分布,这对理解强化学习很重要。不同的状态,所对应的不同动作出现的概率。也就是对于特定的Si状态,P(Ai)是个概率分布,如在Si状态下,选择A1的动作概率是P(A1),选择A2的动作概率是P(A2)。

p(st+1∣st,at)

状态转移概率,当前状态是st,在此状态下完成at动作,下一个状态变成st+1的概率。

r(st,at)

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

Rt=∑Ti=tγi−tr(si,ai)

Rt=γ0r(st,at)+γ1r(st+1,at+1)+...γT−tr(sT,aT)

折扣累计奖赏,这是在st状态下,完成at后,在接下来的T−t步后,st状态和动作at,累加的奖赏。Rt更接近算法求出的Q(st,at)。说是接近,在于Q(st,at)更像是量子力学中的叠加态,它是概率分布的,Rt更像是坍缩态,也就是你已经知道薛定谔的猫是死是活的结果。

J=Eri,si∼E,ai∼π[R1]

首先这是个期望值,这是全篇论文理解的一个眼,这个公式理解了,论文思想理解80%了。里面包含si∼E,用周志华《机器学习》中p378中(16.8)的表示方式为Paisi→si+1,在状态si下,动作ai产生下一个状态为si+1的概率。ai∼π为上面讲的策略概率。在DPG2014第一个公式写得更容易理解:

J(πθ)=∫Sρπ(s)∫Aπθ(s,a)r(s,a)dads=Es∼ρπ,a∼πθ[r(s,a)]

两个公式是一样的,在概率策略πθ下,所有的状态对应动作概率下回报的期望,这么说也很难理解吧,通俗一点,有点像原子核周围的电子云,原子核周围的电子并不像地球、火星之类有明确的轨道,其状态也是呈概率分布,J相当于电子云带的能量。

Qπ(st,at)=Eri≥t,si>t∼E,ai>t∼π[Rt∣st,at](1)

文中第一个标号的公式,也是期望值,类似前面的解释,再说一点,π和E都是很多动作或者状态的叠加,叠加的权值是概率。打符号开始差点打错了,是i≥t,而不是ri≥t。也就是说i是一个长的序列。在下面的公式中i就只是下一步了。

Qπ(st,at)=Ert,st+1∼E[r(st,at)+γEat+1∼π[Qπ(st+1,at+1)]](2)

Bellman等式,由上面的公式变形来的,也是期望值。有点像信号处理的Z变换(傅立叶变换是Z变换的特殊形式),把时域的信号转化成频域的信号。Qπ(st,at)脱掉了长长的i,只对应t+1的时刻,注意这里是Qπ(st,at)和Qπ(st+1,at+1)都是期望值。

Qμ(st,at)=Ert,st+1∼E[r(st,at)+γQμ(st+1,μ(st+1))](3)

当策略概率π,坍缩成目标策略μ时,(2)中的中括号期望变成了确定μ(st+1)对应的动作。但Qμ(st,at)仍旧是个期望值,因为这样的式子Paisi→si+1,同样状态si下同样动作ai产生的结果并不是固定的。同样Qπ(st+1,at+1)也都是期望值。

L(θQ)=Est∼ρβ,at∼β,rt∼E[(Q(st,at∣θQ)−yt)2](4)

其中

yt=r(st,at)+γQ(st+1,μ(st+1)∣θQ)(5)

其中

μ(s)=argmaxaQ(s,a)是贪心算法,选择期望最大回报的执行动作。由于算法采用“异策略“(off-policy),也就是被评估与被改进的不是同一个策略,被评估的策略是随机动作策略β。

算法

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

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

∇θμJ≈Est∼ρβ[∇θμQ(s,a∣θQ)∣s=st,a=μ(st∣θμ)]=Est∼ρβ[∇θμQ(s,a∣θQ)∣s=st,a=μ(st)∇θμμ(s∣θμ)∣s=st](6)

一次迭代后的产生的新的μ(s∣θμ),将在探索过程发挥作用。

算法框架图



算法中J函数只给了梯度,博主推测如下:

J(θμ)≈1N∑iQ(si,a∣θQ)∣a=μ(si)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  强化学习