在此之前,我们介绍的策略梯度算法均基于随机策略。但是在连续动作空间问题中,以动作概率分布为输出的随机策略梯度具有一些核心问题:
- 动作采样和对数概率计算占用大量计算开销。
- 只要涉及对动作空间的采样,就无法根除方差问题。
- 策略的探索性由其方差控制,但策略网络会学会降低方差来减少风险。
- 对数操作使得概率较小的动作会获得较大的梯度,容易使网络参数剧烈变化。
DPG(Deterministic Policy Gradient,确定性策略梯度)系列算法以确定性策略μ(s)=a\mu(s)=aμ(s)=a为输出,将上述问题悉数解决,在确定性连续控制任务上超越了A2C等随机Actor Critic方法。
DPG
在随机策略梯度中,目标函数需要对状态和动作的概率分布均进行积分,即
J(πθ)=∫Sρ(s)∫Aπθ(a∣s)Qπθ(s,a)dads J(\pi_\theta)=\int_\mathcal S\rho(s)\int_\mathcal A\pi_\theta(a|s)Q^{\pi_\theta}(s,a)\mathrm da\mathrm ds J(πθ)=∫Sρ(s)∫Aπθ(a∣s)Qπθ(s,a)dads
其中ρ\rhoρ为状态的概率分布,通常是初始状态概率分布ρ0\rho_0ρ0,因为我们更关心智能体从开始到结束的整个表现。
但是在确定性策略的情况下,目标函数得到了简化,Vμθ(s)V^{\mu_\theta}(s)Vμθ(s)与Qμθ(s,μθ(s))Q^{\mu_\theta}(s,\mu_\theta(s))Qμθ(s,μθ(s))等价,只需对状态空间进行积分
J(μθ)=∫Sρ0(s)Qμθ(s,μθ(s))ds=Es∼ρ0[Qμθ(s,μθ(s))] \begin{split} J(\mu_\theta)&=\int_\mathcal S\rho_0(s)Q^{\mu_\theta}(s,\mu_\theta(s))\mathrm ds\\ &=\mathbb E_{s\sim\rho_0}[Q^{\mu_\theta}(s,\mu_\theta(s))] \end{split} J(μθ)=∫Sρ0(s)Qμθ(s,μθ(s))ds=Es∼ρ0[Qμθ(s,μθ(s))]
确定性策略梯度定理
现在来证明确定性策略梯度定理。首先计算Qμθ(s,μθ(s))Q^{\mu_\theta}(s,\mu_\theta(s))Qμθ(s,μθ(s))关于θ\thetaθ的梯度,θ\thetaθ会通过两条路径影响到Qμθ(s,μθ(s))Q^{\mu_\theta}(s,\mu_\theta(s))Qμθ(s,μθ(s))的值:
- 在状态sss下,μθ\mu_\thetaμθ选择的动作aaa不同,对应的QQQ值不同,即θ→μθ→a→Q\theta\rightarrow\mu_\theta\rightarrow a\rightarrow Qθ→μθ→a→Q。
- 即使在状态sss下μθ\mu_\thetaμθ选择动作aaa不受影响,后续状态μθ\mu_\thetaμθ的决策有所改变,对应的QQQ值也不同,即θ→μθ→Q\theta\rightarrow\mu_\theta\rightarrow Qθ→μθ→Q。
因而Qμθ(s,a)∣a=μθ(s)Q^{\mu_\theta}(s,a)|_{a=\mu_\theta(s)}Qμθ(s,a)∣a=μθ(s)的梯度也是改变μθ\mu_\thetaμθ以改变aaa(第一项)和在固定aaa不变的条件下改变μθ\mu_\thetaμθ(第二项)这两种情况所带来的梯度之和
∇θQμθ(s,μθ(s))=∇θμθ(s)∇aQμθ(s,a)∣a=μθ(s)+∇θQμθ(s,a)∣a=μθ(s) \nabla_\theta Q^{\mu_\theta}(s,\mu_\theta(s))=\nabla_\theta\mu_\theta(s)\nabla_aQ^{\mu_\theta}(s,a)|_{a=\mu_\theta(s)}+\nabla_\theta Q^{\mu_\theta}(s,a)|_{a=\mu_\theta(s)} ∇θQμθ(s,μθ(s))=∇θμθ(s)∇aQμθ(s,a)∣a=μθ(s)+∇θQμθ(s,a)∣a=μθ(s)
数学记法表意有限,容易让人混淆,将其与语言描述对应上即可。
现在,我们有目标函数的梯度如下
∇θJ(μθ)=Es∼ρ0[∇θQμθ(s,μθ(s))]=Es∼ρ0[∇θμθ(s)∇aQμθ(s,a)∣a=μθ(s)⏟A(s)]+Es∼ρ0[∇θQμθ(s,a)∣a=μθ(s)⏟B(s)] \begin{split} \nabla_\theta J(\mu_\theta)&=\mathbb E_{s\sim\rho_0}[\nabla_\theta Q^{\mu_\theta}(s,\mu_\theta(s))]\\ &=\mathbb E_{s\sim\rho_0}[\underset{A(s)}{\underbrace{\nabla_\theta\mu_\theta(s)\nabla_aQ^{\mu_\theta}(s,a)|_{a=\mu_\theta(s)}}}]+\mathbb E_{s\sim\rho_0}[\underset{B(s)}{\underbrace{\nabla_\theta Q^{\mu_\theta}(s,a)|_{a=\mu_\theta(s)}}}] \end{split} ∇θJ(μθ)=Es∼ρ0[∇θQμθ(s,μθ(s))]=Es∼ρ0[A(s)∇θμθ(s)∇aQμθ(s,a)∣a=μθ(s)]+Es∼ρ0[B(s)∇θQμθ(s,a)∣a=μθ(s)]
针对第二项,我们有
Es∼ρ0[B(s)]=Es∼ρ0[∇θQμθ(s,a)∣a=μθ(s)](s,a固定,梯度只作用于后继状态价值)=Es∼ρ0[γEs′∼p(⋅∣s,μθ(s))∇θVμθ(s′)](合并初始状态与后继状态的概率分布)=γEs′∼p(s1=s′∣ρ0,μθ)[∇θVμθ(s′)](建立递归关系)=γ(Es∼p(s1=s∣ρ0,μθ)[A(s)]+Es∼p(s1=s∣ρ0,μθ)[B(s)]⏟C1) \begin{split} \mathbb E_{s\sim\rho_0}[B(s)]&=\mathbb E_{s\sim\rho_0}[\nabla_\theta Q^{\mu_\theta}(s,a)|_{a=\mu_\theta(s)}]\\ (s,a固定,梯度只作用于后继状态价值)&=\mathbb E_{s\sim\rho_0}[\gamma\mathbb E_{s'\sim p(\cdot|s,\mu_\theta(s))}\nabla_\theta V^{\mu_\theta}(s')]\\ (合并初始状态与后继状态的概率分布)&=\gamma\mathbb E_{s'\sim p(s_1=s'|\rho_0,\mu_\theta)}[\nabla_\theta V^{\mu_\theta}(s')]\\ (建立递归关系)&=\gamma(\mathbb E_{s\sim p(s_1=s|\rho_0,\mu_\theta)}[A(s)]+\underset{C_1}{\underbrace{\mathbb E_{s\sim p(s_1=s|\rho_0,\mu_\theta)}[B(s)]}}) \end{split} Es∼ρ0[B(s)](s,a固定,梯度只作用于后继状态价值)(合并初始状态与后继状态的概率分布)(建立递归关系)=Es∼ρ0[∇θQμθ(s,a)∣a=μθ(s)]=Es∼ρ0[γEs′∼p(⋅∣s,μθ(s))∇θVμθ(s′)]=γEs′∼p(s1=s′∣ρ0,μθ)[∇θVμθ(s′)]=γ(Es∼p(s1=s∣ρ0,μθ)[A(s)]+C1Es∼p(s1=s∣ρ0,μθ)[B(s)])
设Ct=Es∼p(st=s∣ρ0,μθ)[B(s)]C_t=\mathbb E_{s\sim p(s_t=s|\rho_0,\mu_\theta)}[B(s)]Ct=Es∼p(st=s∣ρ0,μθ)[B(s)],则C0=Es∼ρ0[B(s)]C_0=\mathbb E_{s\sim\rho_0}[B(s)]C0=Es∼ρ0[B(s)],进而有
C0=γ(Es∼p(s1=s∣ρ0,μθ)[A(s)]+C1)=γ[Es∼p(s1=s∣ρ0,μθ)[A(s)]+γ(Es∼p(s2=s∣ρ0,μθ)[A(s)]+C2)]=γEs∼p(s1=s∣ρ0,μθ)[A(s)]+γ2Es∼p(s2=s∣ρ0,μθ)[A(s)]+γ2C2=∑t=1∞γtEs∼p(st=s∣ρ0,μθ)[A(s)]+limT→∞γTCT⏟=0 \begin{split} C_0&=\gamma(\mathbb E_{s\sim p(s_1=s|\rho_0,\mu_\theta)}[A(s)]+C_1)\\ &=\gamma[\mathbb E_{s\sim p(s_1=s|\rho_0,\mu_\theta)}[A(s)]+\gamma(\mathbb E_{s\sim p(s_2=s|\rho_0,\mu_\theta)}[A(s)]+C_2)]\\ &=\gamma\mathbb E_{s\sim p(s_1=s|\rho_0,\mu_\theta)}[A(s)]+\gamma^2\mathbb E_{s\sim p(s_2=s|\rho_0,\mu_\theta)}[A(s)]+\gamma^2C_2\\ &=\sum^\infty_{t=1}\gamma^t\mathbb E_{s\sim p(s_t=s|\rho_0,\mu_\theta)}[A(s)]+\underset{=0}{\underbrace{\lim_{T\rightarrow\infty}\gamma^TC^T}} \end{split} C0=γ(Es∼p(s1=s∣ρ0,μθ)[A(s)]+C1)=γ[Es∼p(s1=s∣ρ0,μθ)[A(s)]+γ(Es∼p(s2=s∣ρ0,μθ)[A(s)]+C2)]=γEs∼p(s1=s∣ρ0,μθ)[A(s)]+γ2Es∼p(s2=s∣ρ0,μθ)[A(s)]+γ2C2=t=1∑∞γtEs∼p(st=s∣ρ0,μθ)[A(s)]+=0T→∞limγTCT
代回目标函数的梯度可得
∇θJ(μθ)=Es∼ρ0[A(s)]+∑t=1∞γtEs∼p(st=s∣ρ0,μθ)[A(s)]=γ0Es∼p(s0=s∣ρ0,μθ)[A(s)]+∑t=1∞γtEs∼p(st=s∣ρ0,μθ)[A(s)]=∑t=0∞γtEs∼p(st=s∣ρ0,μθ)[A(s)]=Es∼ρμθ[A(s)] \begin{split} \nabla_\theta J(\mu_\theta)&=\mathbb E_{s\sim\rho_0}[A(s)]+\sum^\infty_{t=1}\gamma^t\mathbb E_{s\sim p(s_t=s|\rho_0,\mu_\theta)}[A(s)]\\ &=\gamma^0\mathbb E_{s\sim p(s_0=s|\rho_0,\mu_\theta)}[A(s)]+\sum^\infty_{t=1}\gamma^t\mathbb E_{s\sim p(s_t=s|\rho_0,\mu_\theta)}[A(s)]\\ &=\sum^\infty_{t=0}\gamma^t\mathbb E_{s\sim p(s_t=s|\rho_0,\mu_\theta)}[A(s)]\\ &=\mathbb E_{s\sim\rho^{\mu_\theta}}[A(s)] \end{split} ∇θJ(μθ)=Es∼ρ0[A(s)]+t=1∑∞γtEs∼p(st=s∣ρ0,μθ)[A(s)]=γ0Es∼p(s0=s∣ρ0,μθ)[A(s)]+t=1∑∞γtEs∼p(st=s∣ρ0,μθ)[A(s)]=t=0∑∞γtEs∼p(st=s∣ρ0,μθ)[A(s)]=Es∼ρμθ[A(s)]
其中ρμθ\rho^{\mu_\theta}ρμθ为折扣状态概率分布
ρμθ(s)=∑t=0∞γtp(st=s∣ρ0,μθ) \rho^{\mu_\theta}(s)=\sum^\infty_{t=0}\gamma^tp(s_t=s|\rho_0,\mu_\theta) ρμθ(s)=t=0∑∞γtp(st=s∣ρ0,μθ)
这表明,Qμθ(s,μθ(s))Q^{\mu_\theta}(s,\mu_\theta(s))Qμθ(s,μθ(s))的梯度在初始状态分布的期望意义下,第二项B(s)B(s)B(s)对梯度的影响可以被合并到第一项A(s)A(s)A(s)的折扣状态分布期望中。由此我们得到一个简洁优美的确定性策略梯度定理
∇θJ(μθ)=Es∼ρμθ[∇θμθ(s)∇aQμθ(s,a)∣a=μθ(s)] \nabla_\theta J(\mu_\theta)=\mathbb E_{s\sim\rho^{\mu_\theta}}[\nabla_\theta\mu_\theta(s)\nabla_aQ^{\mu_\theta}(s,a)|_{a=\mu_\theta(s)}] ∇θJ(μθ)=Es∼ρμθ[∇θμθ(s)∇aQμθ(s,a)∣a=μθ(s)]
离轨策略
学习一个确定性策略很容易让我们考虑到探索的问题。在DPG中,出于其独特的策略更新与评估方式,我们不需要太担心动作的探索能力,因为评估动作的QQQ函数由神经网络近似,是动作aaa的平滑函数,具有一定的泛化能力,而策略也根据QQQ函数在aaa处的局部梯度进行更新,不依赖其他动作的采样也能产生改进与探索。
但是动作的探索不能保证状态的探索,尤其是当动作依赖梯度发生小步长的改进时,这样微小的动作变化很可能不会带来显著的状态转移差异,在稀疏奖励、极易失败终止、层次化结构这样的环境中将会失效。如果想进一步提升动作的探索度,就要向动作加入探索噪声,但这会导致QQQ函数收到极其嘈杂的学习信号,策略网络将无法区分某个状态的好坏是由于策略本身的质量还是由于探索噪声的随机影响。
于是DPG选择只提升状态空间的探索性,由向目标策略μ(s)\mu(s)μ(s)添加噪声N\mathcal NN得到的行为策略β(s)=μ(s)+N\beta(s)=\mu(s)+\mathcal Nβ(s)=μ(s)+N来实现。但是在智能体根据行为策略产生的轨迹中,我们不采样动作序列,只采样状态转移序列。由行为策略来探索状态,而由目标策略在行为策略经历的状态中分别选择动作。
那么,万一有一个状态,对于所有其他状态,执行a=μθ(s)a=\mu_\theta(s)a=μθ(s)所在的局部梯度更新范围内的任何动作都无法到达,对该状态的探索不就没有意义了吗?这是包括DPG在内的大多数基于动作扰动的探索方法的一个根本局限,只能用更高级的探索策略来解决。
除此之外,DPG通过理想假设回避了行为策略状态采样带来的分布偏差问题,因为在连续状态空间中,状态重要度采样比的估计难度极大。这一问题将在DDPG中通过工程技巧来在一定程度上缓解。
网络框架
DPG使用Actor Critic方法的网络框架,其中
- Actor网络
- 输入:状态sss
- 输出:确定动作a=μθ(s)a=\mu_\theta(s)a=μθ(s)
- 参数更新:θt+1=θt+αθ∇θμθ(s)∇aQμθ(s,a)∣a=μθ(s)\theta_{t+1}=\theta_t+\alpha_\theta\nabla_\theta\mu_\theta(s)\nabla_aQ^{\mu_\theta}(s,a)|_{a=\mu_\theta(s)}θt+1=θt+αθ∇θμθ(s)∇aQμθ(s,a)∣a=μθ(s)
- Critic网络
- 输入:状态sss,动作aaa
- 输出:动作价值Qw(s,a)Q_w(s,a)Qw(s,a)
- 参数更新(TD方法):wt+1=wt−αwδt∇wQw(st,at)w_{t+1}=w_t-\alpha_w\delta_t\nabla_wQ_w(s_t,a_t)wt+1=wt−αwδt∇wQw(st,at)
DPG算法的主循环如下:
- 从初始状态s0∼ρ0s_0\sim\rho_0s0∼ρ0开始,智能体根据行为策略β(s)=μθ(s)+N\beta(s)=\mu_\theta(s)+\mathcal Nβ(s)=μθ(s)+N生成一段轨迹,并记录状态转移序列(s0,s1,⋯ )(s_0,s_1,\cdots)(s0,s1,⋯);
- 对于行为策略经历的每个状态sts_tst,目标策略执行动作at=μθ(st)a_t=\mu_\theta(s_t)at=μθ(st),得到奖励rtr_trt和后继状态st′s'_tst′(与行为策略的状态转移序列区分开),再由目标策略采样动作at′=μθ(st′)a_t'=\mu_\theta(s_t')at′=μθ(st′);
- Critic计算Qw(st,at)Q_w(s_t,a_t)Qw(st,at)和Qw(st′,at′)Q_w(s'_t,a'_t)Qw(st′,at′);
- Actor用Critic的评价更新目标策略θt+1=θt+αθ∇θμθ(s)∇aQμθ(s,a)∣a=μθ(s)\theta_{t+1}=\theta_t+\alpha_\theta\nabla_\theta\mu_\theta(s)\nabla_aQ^{\mu_\theta}(s,a)|_{a=\mu_\theta(s)}θt+1=θt+αθ∇θμθ(s)∇aQμθ(s,a)∣a=μθ(s)(行为策略被动跟随);
- Critic用TD误差更新估计wt+1=wt−αwδt∇wQw(st,at)w_{t+1}=w_t-\alpha_w\delta_t\nabla_wQ_w(s_t,a_t)wt+1=wt−αwδt∇wQw(st,at);
- 重复上述步骤直至策略和价值估计收敛。
下一篇将介绍DPG的两个改进算法:DDPG和TD3。
1305

被折叠的 条评论
为什么被折叠?



