获取更多资讯,赶快关注上面的公众号吧!
【强化学习系列】
- 第一章 强化学习及OpenAI Gym介绍-强化学习理论学习与代码实现(强化学习导论第二版)
- 第二章 马尔科夫决策过程和贝尔曼等式-强化学习理论学习与代码实现(强化学习导论第二版)
- 第三章 动态规划-基于模型的RL-强化学习理论学习与代码实现(强化学习导论第二版)
- 第四章 蒙特卡洛方法-强化学习理论学习与代码实现(强化学习导论第二版)
- 第五章 基于时序差分和Q学习的无模型预测与控制-强化学习理论学习与代码实现(强化学习导论第二版)
- 第六章 函数逼近-强化学习理论学习与代码实现(强化学习导论第二版)
- 第七章 深度强化学习-深度Q网络系列1(Deep Q-Networks,DQN)
- 第八章 深度强化学习-Nature深度Q网络(Nature DQN)
- 第九章 深度强化学习-Double DQN
- 第十章 深度强化学习-Prioritized Replay DQN
- 第十一章 策略梯度(Policy Gradient)-强化学习理论学习与代码实现(强化学习导论第二版)
- 第十二章 演员评论家(Actor-Critic)-强化学习理论学习与代码实现(强化学习导论第二版)
- (本文)第十三章 确定性策略梯度(Deterministic Policy Gradient Algorithms,DPG)-强化学习理论学习与代码实现(强化学习导论第二版)
确定性策略梯度(Deterministic Policy Gradient Algorithms,DPG)
1介绍
策略梯度算法广泛应用于具有连续动作空间的强化学习问题,其基本思想是通过参数化的概率分布 π θ ( a ∣ s ) = P [ a ∣ s ; θ ] \pi_{\theta}(a | s)=\mathbb{P}[a | s ; \theta] πθ(a∣s)=P[a∣s;θ]来表达策略,该策略会根据参数 θ \theta θ随机地选择状态 s s s下的动作 a a a,也就是说随机性策略梯度最终得到的是动作的概率分布,然后通过采样该随机策略,并朝着最大化累积奖励的方向优化策略参数。
而确定性策略梯度会确定性地选择一个动作 a = μ θ ( s ) a=\mu_{\theta}(s) a=μθ(s),之前人们认为确定性策略梯度不存在,或者只能在使用模型时才能得到,然而David Silver证明了确定性策略确实存在,并且它具有简单的无模型的形式——仅仅遵循动作值函数的梯度。实际上,确定性策略梯度是随机策略梯度在策略方差趋于0时的一种极限情况。
在随机情况下,策略梯度需要收集状态空间和动作空间,而确定性情况,却仅仅收集状态空间,所以随机策略梯度可能会需要更多次的采样,特别是当动作空间维度较大时。
为了保证确定性策略梯度能够和随机策略梯度一样,探索整个状态空间和动作空间(确定性策略只输出贪婪动作,导致可能有些动作永远都无法执行),有必要引入离策略学习算法,基本思想就是根据随机行为策略(保证充分的探索)选择动作,但最终学习的是确定性策略(利用确定性策略的效率)。通过确定性策略梯度可以推导出离策略演员-评论家算法(off-policy actorcritic algorithm ),并通过一可微分值函数逼近器估计动作值函数,然后沿着近似动作值函数梯度的方向更新策略参数。还引入了确定性策略梯度的相容函数近似(compatible function approximation)的概念,以确保该近似不会对策略梯度产生偏差。
2背景
2.1基础
MDP(马尔可夫决策过程) ⟨ S , A , P , R , γ ⟩ \langle\mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma\rangle ⟨S,A,P,R,γ⟩
奖励函数(reward function) r : S × A → R r: \mathcal{S} \times \mathcal{A} \rightarrow \mathbb{R} r:S×A→R
策略(policy) π θ : S → P ( A ) \pi_{\theta}: \mathcal{S} \rightarrow \mathcal{P}(\mathcal{A}) πθ:S→P(A)
轨迹(trajectory) s 1 , a 1 , r 1 … , s T , a T , r T s_{1}, a_{1}, r_{1} \dots, s_{T}, a_{T}, r_{T} s1,a1,r1…,sT,aT,rT
回报(return) r t γ = ∑ k = t ∞ γ k − t r ( s k , a k ) r_{t}^{\gamma}=\sum_{k=t}^{\infty} \gamma^{k-t} r\left(s_{k}, a_{k}\right) rtγ=∑k=t∞γk−tr(sk,ak)
状态价值函数(state-value function) V π ( s ) = E [ r 1 γ ∣ S 1 = s ; π ] V^{\pi}(s)=\mathbb{E}\left[r_{1}^{\gamma} | S_{1}=s ; \pi\right] Vπ(s)=E[r1γ∣S1=s;π]
动作价值函数(action-value function) Q π ( s , a ) = E [ r 1 γ ∣ S 1 = s , A 1 = a ; π ] Q^{\pi}(s,a)=\mathbb{E}\left[r_{1}^{\gamma} | S_{1}=s, A_{1}=a ; \pi\right] Qπ(s,a)=E[r1γ∣S1=s,A1=a;π]
转移后的概率分布(density at state s ′ s^{\prime} s′ after transitioning from state s s s ) p ( s → s ′ , t , π ) p\left(s \rightarrow s^{\prime}, t, \pi\right) p(s→s′,t,π)
初始状态分布(an initial state distribution with density) p 1 ( s ) p_{1}(s) p1(s)
折扣状态分布(discounted state distribution) ρ π ( s ′ ) : = \rho^{\pi}\left(s^{\prime}\right):= ρπ(s′):= ∫ S ∑ t = 1 ∞ γ t − 1 p 1 ( s ) p ( s → s ′ , t , π ) d s \int_{\mathcal{S}} \sum_{t=1}^{\infty} \gamma^{t-1} p_{1}(s) p\left(s \rightarrow s^{\prime}, t, \pi\right) \mathrm{d} s ∫S∑t=1∞γt−1p1(s)p(s→s′,t,π)ds
性能目标函数(performance objective)
J ( π θ ) = ∫ S ρ π ( s ) ∫ A π θ ( s , a ) r ( s , a ) d a d s = E s ∼ ρ π , a ∼ π θ [ r ( s , a ) ] (1) \begin{aligned} J\left(\pi_{\theta}\right) &=\int_{\mathcal{S}} \rho^{\pi}(s) \int_{\mathcal{A}} \pi_{\theta}(s, a) r(s, a) \mathrm{d} a \mathrm{d} s \\ &=\mathbb{E}_{s \sim \rho^{\pi}, a \sim \pi_{\theta}}[r(s, a)] \end{aligned}\tag{1} J(πθ)=∫Sρπ(s)∫Aπθ(s,a)r(s,a)dads=Es∼ρπ,a∼πθ[r(s,a)](1)
2.2Stochastic Policy Gradient 理论
策略梯度背后的思想是沿着目标梯度 ∇ θ J ( π θ ) \nabla_{\theta} J\left(\pi_{\theta}\right) ∇θJ(πθ)的方向调整策略参数 θ \theta θ,最基本的策略梯度理论如下:
∇ θ J ( π θ ) = ∫ S ρ π ( s ) ∫ A ∇ θ π θ ( a ∣ s ) Q π ( s , a ) d a d s = E s ∼ ρ π , a ∼ π θ [ ∇ θ log π θ ( a ∣ s ) Q π ( s , a ) ] (2) \begin{aligned} \nabla_{\theta} J\left(\pi_{\theta}\right) &=\int_{\mathcal{S}} \rho^{\pi}(s) \int_{\mathcal{A}} \nabla_{\theta} \pi_{\theta}(a | s) Q^{\pi}(s, a) \mathrm{d} a \mathrm{d} s \\ &=\mathbb{E}_{s \sim \rho^{\pi}, a \sim \pi_{\theta}}\left[\nabla_{\theta} \log \pi_{\theta}(a | s) Q^{\pi}(s, a)\right] \end{aligned}\tag{2} ∇θJ(πθ)=∫Sρπ(s)∫A∇θπθ(a∣s)Qπ(s,a)dads=Es∼ρπ,a∼πθ[∇θlogπθ(a∣s)Qπ(s,a)](2)
策略梯度理论的重要价值在于,其将目标梯度的计算简化为一个期望值的计算,通过构造对该期望的基于样本的估计,可以推导出各种不同的策略梯度算法(详见 第十一章 策略梯度(Policy Gradient)-强化学习理论学习与代码实现(强化学习导论第二版))。但是这些算法必须要解决的问题是如何估计动作值函数 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a),这其中最简单的形式就是使用采样回报 r t γ r^{\gamma}_t rtγ来估计 Q π ( s t , a t ) Q^{\pi}(s_t,a_t) Qπ(st,at),这就是REINFORCE算法,具体的细节在之前的文章中都有所介绍。
2.3随机演员-评论家算法
actor-critic是在策略梯度中广泛使用的架构,其包括两个组件:演员通过随机梯度下降(式2)调整随机策略 π θ ( s ) \pi_\theta(s) πθ(s)的参数 θ \theta θ,由于真实动作值函数 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a)未知,所以使用带参数 w w w的 Q w ( s , a ) Q^{w}(s,a) Qw(s,a)替代;评论家则是使用适当的策略评估算法估计动作值函数 Q w ( s , a ) ≈ Q π ( s , a ) Q^{w}(s, a) \approx Q^{\pi}(s, a) Qw(s,a)≈Qπ(s,a),如时间差分学习。具体的关于AC算法的细节,可以看这篇文章(第十二章 演员评论家(Actor-Critic)-强化学习理论学习与代码实现(强化学习导论第二版))。
通常情况下,使用 Q w ( s , a ) Q^{w}(s,a) Qw(s,a)代替真实的 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a)可能会引入偏差,为了消除误差, Q w ( s , a ) Q^{w}(s,a) Qw(s,a)应满足以下两个条件:
- Q w ( s , a ) = ∇ θ log π θ ( a ∣ s ) ⊤ w Q^{w}(s, a)=\nabla_{\theta} \log \pi_{\theta}(a | s)^{\top} w Qw(s,a)=∇θlogπθ(a∣s)⊤w
- w w w需要最小化均方误差 ϵ 2 ( w ) = E s ∼ ρ π , a ∼ π θ [ ( Q w ( s , a ) − Q π ( s , a ) ) 2 ] \epsilon^{2}(w)=\mathbb{E}_{s \sim \rho^{\pi}, a \sim \pi_{\theta}}\left[\left(Q^{w}(s, a)-Q^{\pi}(s, a)\right)^{2}\right] ϵ2(w)=Es∼ρπ,a∼πθ[(Qw(s,a)−Qπ(s,a))2]
条件1是说兼容函数逼近器是随机策略“特征” ∇ θ log π θ ( a ∣ s ) \nabla_{\theta} \log \pi_{\theta}(a | s) ∇θlogπθ(a∣s)的线性函数,条件2是说需要保证参数 w w w为线性回归问题(根据特征估计 Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a))的解。在实际中,条件2通常可以放宽,以支持通过时间差分学习来更有效地估计值函数地策略评估算法。因此如果条件1和条件2都满足,那就等价于根本没有使用评论家,即更像是REINFORCE算法。
2.4离策略演员-评论家(Off-Policy Actor-Critic,OffPAC)
通常根据从另一个完全不同的行为策略 β ( a ∣ s ) ≠ π θ ( a ∣ s ) \beta(a | s) \neq \pi_{\theta}(a | s) β(a∣s)=πθ(a∣s)中采样的轨迹,来离策略地估计策略梯度是非常有用的,在离策略情况下,需要将目标函数重新定义为目标策略的值函数在行为策略的状态分布上的平均值:
J β ( π θ ) = ∫ S ρ β ( s ) V π ( s ) d s = ∫ S ∫ A ρ β ( s ) π θ ( a ∣ s ) Q π ( s , a ) d a d s \begin{aligned} J_{\beta}\left(\pi_{\theta}\right) &=\int_{\mathcal{S}} \rho^{\beta}(s) V^{\pi}(s) \mathrm{d} s \\ &=\int_{\mathcal{S}} \int_{\mathcal{A}} \rho^{\beta}(s) \pi_{\theta}(a | s) Q^{\pi}(s, a) \mathrm{d} a \mathrm{d} s \end{aligned} Jβ(πθ)=∫Sρβ(s)Vπ(s)ds=∫S∫Aρβ(s)πθ(a∣s)Qπ(s,a)dads
同归对其进行微分,可以得到离策略策略梯度的近似:
∇
θ
J
β
(
π
θ
)
≈
∫
S
∫
A
ρ
β
(
s
)
∇
θ
π
θ
(
a
∣
s
)
Q
π
(
s
,
a
)
d
a
d
s
(4)
\begin{aligned} \nabla_{\theta} J_{\beta}\left(\pi_{\theta}\right) & \approx \int_{\mathcal{S}} \int_{\mathcal{A}} \rho^{\beta}(s) \nabla_{\theta} \pi_{\theta}(a | s) Q^{\pi}(s, a) \mathrm{d} a \mathrm{d} s \tag{4} \end{aligned}
∇θJβ(πθ)≈∫S∫Aρβ(s)∇θπθ(a∣s)Qπ(s,a)dads(4)
=
E
s
∼
ρ
β
,
a
∼
β
[
π
θ
(
a
∣
s
)
β
θ
(
a
∣
s
)
∇
θ
log
π
θ
(
a
∣
s
)
Q
π
(
s
,
a
)
]
(5)
\begin{aligned} =\mathbb{E}_{s \sim \rho^{\beta}, a \sim \beta}\left[\frac{\pi_{\theta}(a | s)}{\beta_{\theta}(a | s)} \nabla_{\theta} \log \pi_{\theta}(a | s) Q^{\pi}(s, a)\right]\tag{5} \end{aligned}
=Es∼ρβ,a∼β[βθ(a∣s)πθ(a∣s)∇θlogπθ(a∣s)Qπ(s,a)](5)
这个近似去掉了依赖动作值函数梯度的项:
∇
θ
Q
π
(
s
,
a
)
\nabla_{\theta} Q^{\pi}(s, a)
∇θQπ(s,a)。离策略演员-评论家算法使用行为策略
β
(
a
∣
s
)
\beta(a|s)
β(a∣s)生成轨迹,评论家使用梯度时间差分学习从这些轨迹中离策略地估计状态值函数
V
v
(
s
)
≈
V
π
(
s
)
V^{v}(s) \approx V^{\pi}(s)
Vv(s)≈Vπ(s),演员也是从这些轨迹中,根据随机梯度上升(公式5)更新策略参数
θ
\theta
θ。在公式5中不再使用未知的真实动作值函数
Q
π
(
s
,
a
)
Q^{\pi}(s,a)
Qπ(s,a),而是使用时间差分误差
δ
t
=
r
t
+
1
+
γ
V
v
(
s
t
+
1
)
−
V
v
(
s
t
)
\delta_{t}=r_{t+1}+\gamma V^{v}\left(s_{t+1}\right)-V^{v}\left(s_{t}\right)
δt=rt+1+γVv(st+1)−Vv(st),可以证明其是真实值的近似值。演员和评论家均采用了重要度采样比率
π
θ
(
a
∣
s
)
β
θ
(
a
∣
s
)
\frac{\pi_{\theta}(a | s)}{\beta_{\theta}(a | s)}
βθ(a∣s)πθ(a∣s)进行调整,因为动作是实际上是根据
π
\pi
π而不是
β
\beta
β选择的。
3确定性策略的梯度
下面将讨论如何将策略梯度框架扩展到确定性策略。
3.1动作价值梯度
大部分无模型强化学习算法都是基于广义迭代策略:交叉进行策略评估和改进。但是在连续动作空间中,贪婪策略改进是有问题的,因为需要在每一步都进行全局最大化。一种简单且计算方便的方式是沿着 Q Q Q的梯度方向移动策略,而不是全局最大化 Q Q Q。特别地,对于每一个观察到的状态 s s s,策略参数 θ k + 1 \theta^{k+1} θk+1按照梯度 ∇ θ Q μ k ( s , μ θ ( s ) ) \nabla_{\theta} Q^{\mu^{k}}\left(s, \mu_{\theta}(s)\right) ∇θQμk(s,μθ(s))进行比例更新,每个状态都提出一个策略改进的不同方向,这些可以通过对状态分布的期望 ρ μ ( s ) \rho^{\mu}(s) ρμ(s)求平均值:
θ k + 1 = θ k + α E s ∼ ρ μ k [ ∇ θ Q μ k ( s , μ θ ( s ) ) ] (6) \theta^{k+1}=\theta^{k}+\alpha \mathbb{E}_{s \sim \rho^{\mu^{k}}}\left[\nabla_{\theta} Q^{\mu^{k}}\left(s, \mu_{\theta}(s)\right)\right]\tag{6} θk+1=θk+αEs∼ρμk[∇θQμk(s,μθ(s))](6)
通过应用链式法则,策略改进可以分解成动作价值关于动作的梯度,以及策略关于策略参数的梯度,于是有:
θ
k
+
1
=
θ
k
+
α
E
s
∼
ρ
μ
k
[
∇
θ
μ
θ
(
s
)
∇
a
Q
μ
k
(
s
,
a
)
∣
a
=
μ
θ
(
s
)
]
(7)
\theta^{k+1}=\theta^{k}+\alpha \mathbb{E}_{s \sim \rho^{\mu^{k}}}\left[\left.\nabla_{\theta} \mu_{\theta}(s) \nabla_{a} Q^{\mu^{k}}(s, a)\right|_{a=\mu_{\theta}(s)}\right]\tag{7}
θk+1=θk+αEs∼ρμk[∇θμθ(s)∇aQμk(s,a)∣∣∣a=μθ(s)](7)
按照惯例, ∇ θ μ θ ( s ) \nabla_{\theta} \mu_{\theta}(s) ∇θμθ(s)为一个雅可比矩阵,其中每一列为策略的第 d d d个动作维度关于策略参数 θ \theta θ的梯度 ∇ θ [ μ θ ( s ) ] d \nabla_{\theta}\left[\mu_{\theta}(s)\right]_{d} ∇θ[μθ(s)]d。然而,改变策略的同时,会观察到不同的状态,状态分布 ρ μ \rho^{\mu} ρμ也会发生变化。因此,如果不考虑分布的变化,这种方法是否保证了改进并不是很明显。但是下面的理论表明,无需计算状态分布的梯度。
3.2确定性策略梯度理论
考虑一个确定性策略
μ
θ
:
S
→
\mu_{\theta}: \mathcal{S} \rightarrow
μθ:S→
A
,
θ
∈
R
n
\mathcal{A},\theta \in \mathbb{R}^{n}
A,θ∈Rn ,定义一个目标函数
J
(
μ
θ
)
=
E
[
r
1
γ
∣
μ
]
J\left(\mu_{\theta}\right)=\mathbb{E}\left[r_{1}^{\gamma} | \mu\right]
J(μθ)=E[r1γ∣μ],概率分布
p
(
s
→
s
′
,
t
,
μ
)
p\left(s \rightarrow s^{\prime}, t, \mu\right)
p(s→s′,t,μ)和折扣状态分布
ρ
μ
(
s
)
\rho^{\mu}(s)
ρμ(s),仍然将目标函数写成期望的形式:
J
(
μ
θ
)
=
∫
S
ρ
μ
(
s
)
r
(
s
,
μ
θ
(
s
)
)
d
s
=
E
s
∼
ρ
μ
[
r
(
s
,
μ
θ
(
s
)
)
]
(8)
\begin{aligned} J\left(\mu_{\theta}\right) &=\int_{\mathcal{S}} \rho^{\mu}(s) r\left(s, \mu_{\theta}(s)\right) \mathrm{d} s \\ &=\mathbb{E}_{s \sim \rho^{\mu}}\left[r\left(s, \mu_{\theta}(s)\right)\right] \end{aligned}\tag{8}
J(μθ)=∫Sρμ(s)r(s,μθ(s))ds=Es∼ρμ[r(s,μθ(s))](8)
那么可以推导出确定性策略梯度理论如下:
∇ θ J ( μ θ ) = ∫ S ρ μ ( s ) ∇ θ μ θ ( s ) ∇ a Q μ ( s , a ) ∣ a = μ θ ( s ) d s = E s ∼ ρ μ [ ∇ θ μ θ ( s ) ∇ a Q μ ( s , a ) ∣ a = μ θ ( s ) ] (9) \begin{aligned} \nabla_{\theta} J\left(\mu_{\theta}\right) &=\left.\int_{\mathcal{S}} \rho^{\mu}(s) \nabla_{\theta} \mu_{\theta}(s) \nabla_{a} Q^{\mu}(s, a)\right|_{a=\mu_{\theta}(s)} \mathrm{d} s \\ &=\mathbb{E}_{s \sim \rho^{\mu}}\left[\left.\nabla_{\theta} \mu_{\theta}(s) \nabla_{a} Q^{\mu}(s, a)\right|_{a=\mu_{\theta}(s)}\right] \end{aligned}\tag{9} ∇θJ(μθ)=∫Sρμ(s)∇θμθ(s)∇aQμ(s,a)∣∣∣∣a=μθ(s)ds=Es∼ρμ[∇θμθ(s)∇aQμ(s,a)∣a=μθ(s)](9)
3.3随机策略梯度的极限
乍一看,确定性策略梯度理论并不太像随机策略梯度理论(式2),然而,对于一类广泛的随机策略,包括许多凹凸函数,确定性策略梯度确实是随机策略梯度的一种特殊(极限)情况。现在通过一个确定性策略 μ θ : S → A \mu_{\theta}: \mathcal{S} \rightarrow \mathcal{A} μθ:S→A和方差参数 σ \sigma σ来参数化随机策略 π μ θ , σ \pi_{\mu_{\theta},\sigma} πμθ,σ,当 σ = 0 \sigma=0 σ=0,随机策略就等价于确定性策略 π μ θ , 0 ≡ μ θ \pi_{\mu_{\theta}, 0} \equiv \mu_{\theta} πμθ,0≡μθ。
4确定性演员-评论家算法
现在根据确定性策略梯度理论来推导在策略和离策略演员-评论家算法,首先使用简单的Sarsa评论家介绍在策略更新的思想,然后借助Q学习评论家说明离策略的更新思想。
4.1在策略确定性演员-评论家
和 随机梯度下降一样,critic 评估动作价值函数,actor 根据式(9)调整
μ
θ
(
s
)
\mu_{\theta}\left(s\right)
μθ(s)的参数
θ
\theta
θ ,并且用
Q
w
(
s
,
a
)
≈
Q
μ
(
s
,
a
)
Q^{w}(s, a) \approx Q^{\mu}(s, a)
Qw(s,a)≈Qμ(s,a)来逼近真实值。例如,critic 使用Sarsa 更新来评估动作价值函数:
δ
t
=
r
t
+
γ
Q
w
(
s
t
+
1
,
a
t
+
1
)
−
Q
w
(
s
t
,
a
t
)
(11)
\delta_{t} =r_{t}+\gamma Q^{w}\left(s_{t+1}, a_{t+1}\right)-Q^{w}\left(s_{t}, a_{t}\right)\tag{11}
δt=rt+γQw(st+1,at+1)−Qw(st,at)(11)
w t + 1 = w t + α w δ t ∇ w Q w ( s t , a t ) (12) w_{t+1} =w_{t}+\alpha_{w} \delta_{t} \nabla_{w} Q^{w}\left(s_{t}, a_{t}\right)\tag{12} wt+1=wt+αwδt∇wQw(st,at)(12)
θ t + 1 = θ t + α θ ∇ θ μ θ ( s t ) ∇ a Q w ( s t , a t ) ∣ a = μ θ ( s ) (13) \theta_{t+1} =\theta_{t}+\left.\alpha_{\theta} \nabla_{\theta} \mu_{\theta}\left(s_{t}\right) \nabla_{a} Q^{w}\left(s_{t}, a_{t}\right)\right|_{a=\mu_{\theta}(s)}\tag{13} θt+1=θt+αθ∇θμθ(st)∇aQw(st,at)∣a=μθ(s)(13)
4.2离策略确定性演员-评论家(off-policy deterministic actorcritic,OPDAC)
现在考虑使用离策略的方法,根据任意一个随机行为策略
π
(
s
,
a
)
\pi(s,a)
π(s,a)生成的轨迹学习确定性目标策略
μ
θ
(
s
)
\mu_{\theta}\left(s\right)
μθ(s),采用和之前一样方式定义目标函数和策略梯度:
J
β
(
μ
θ
)
=
∫
S
ρ
β
(
s
)
V
μ
(
s
)
d
s
=
∫
S
ρ
β
(
s
)
Q
μ
(
s
,
μ
θ
(
s
)
)
d
s
(14)
\begin{aligned} J_{\beta}\left(\mu_{\theta}\right) &=\int_{\mathcal{S}} \rho^{\beta}(s) V^{\mu}(s) \mathrm{d} s \\ &=\int_{\mathcal{S}} \rho^{\beta}(s) Q^{\mu}\left(s, \mu_{\theta}(s)\right) \mathrm{d} s \end{aligned}\tag{14}
Jβ(μθ)=∫Sρβ(s)Vμ(s)ds=∫Sρβ(s)Qμ(s,μθ(s))ds(14)
∇
θ
J
β
(
μ
θ
)
≈
∫
S
ρ
β
(
s
)
∇
θ
μ
θ
(
a
∣
s
)
Q
μ
(
s
,
a
)
d
s
=
E
s
∼
ρ
β
[
∇
θ
μ
θ
(
s
)
∇
a
Q
μ
(
s
,
a
)
∣
a
=
μ
θ
(
s
)
]
(15)
\begin{aligned} \nabla_{\theta} J_{\beta}\left(\mu_{\theta}\right) & \approx \int_{\mathcal{S}} \rho^{\beta}(s) \nabla_{\theta} \mu_{\theta}(a | s) Q^{\mu}(s, a) \mathrm{d} s \\ &=\mathbb{E}_{s \sim \rho^{\beta}}\left[\left.\nabla_{\theta} \mu_{\theta}(s) \nabla_{a} Q^{\mu}(s, a)\right|_{a=\mu_{\theta}(s)}\right] \end{aligned}\tag{15}
∇θJβ(μθ)≈∫Sρβ(s)∇θμθ(a∣s)Qμ(s,a)ds=Es∼ρβ[∇θμθ(s)∇aQμ(s,a)∣a=μθ(s)](15)
和之前一样,这个近似去掉了依赖动作值函数梯度的项:
∇
θ
Q
π
(
s
,
a
)
\nabla_{\theta} Q^{\pi}(s, a)
∇θQπ(s,a)。
同样,用一个可微的动作价值函数$Q^{w}(s, a)
来
代
替
真
实
的
动
作
价
值
函
数
来代替真实的动作价值函数
来代替真实的动作价值函数Q^{w}(s, a) \approx Q^{\mu}(s, a)$ ,并且让critic 通过已知策略生成的轨迹来评估它。比如使用 Q-learning:
δ
t
=
r
t
+
γ
Q
w
(
s
t
+
1
,
μ
θ
(
s
t
+
1
)
)
−
Q
w
(
s
t
,
a
t
)
(16)
\delta_{t} =r_{t}+\gamma Q^{w}\left(s_{t+1}, \mu_{\theta}\left(s_{t+1}\right)\right)-Q^{w}\left(s_{t}, a_{t}\right)\tag{16}
δt=rt+γQw(st+1,μθ(st+1))−Qw(st,at)(16)
w t + 1 = w t + α w δ t ∇ w Q w ( s t , a t ) (17) w_{t+1} =w_{t}+\alpha_{w} \delta_{t} \nabla_{w} Q^{w}\left(s_{t}, a_{t}\right)\tag{17} wt+1=wt+αwδt∇wQw(st,at)(17)
θ t + 1 = θ t + α θ ∇ θ μ θ ( s t ) ∇ a Q w ( s t , a t ) ∣ a = μ θ ( s ) (18) \theta_{t+1} =\theta_{t}+\left.\alpha_{\theta} \nabla_{\theta} \mu_{\theta}\left(s_{t}\right) \nabla_{a} Q^{w}\left(s_{t}, a_{t}\right)\right|_{a=\mu_{\theta}(s)}\tag{18} θt+1=θt+αθ∇θμθ(st)∇aQw(st,at)∣a=μθ(s)(18)
4.3兼容函数近似
这部分重点关于为什么可以用一个可微的函数近似器 Q w ( s , a ) Q^{w}(s, a) Qw(s,a)来代替真实的动作价值函数 Q μ ( s , a ) Q^{\mu}(s, a) Qμ(s,a)。和前面"Stochastic Actor-Critic算法"部分类似,如果近似器 Q w ( s , a ) Q^{w}(s, a) Qw(s,a)与 μ θ ( s ) \mu_{\theta}\left(s\right) μθ(s)和 ∇ θ J β ( θ ) = E [ ∇ θ μ θ ( s ) ∇ a Q w ( s , a ) ∣ a = μ θ ( s ) ] \nabla_{\theta} J_{\beta}(\theta)=\mathbb{E}\left[\left.\nabla_{\theta} \mu_{\theta}(s) \nabla_{a} Q^{w}(s, a)\right|_{a=\mu_{\theta}(s)}\right] ∇θJβ(θ)=E[∇θμθ(s)∇aQw(s,a)∣a=μθ(s)]是兼容的,应满足如下两个条件:
- ∇ a Q w ( s , a ) ∣ a = μ θ ( s ) = ∇ θ μ θ ( s ) ⊤ w \left.\nabla_{a} Q^{w}(s, a)\right|_{a=\mu_{\theta}(s)}=\nabla_{\theta} \mu_{\theta}(s)^{\top} w ∇aQw(s,a)∣a=μθ(s)=∇θμθ(s)⊤w
- w w w最小化均方误差 M S E ( θ , w ) = MSE(\theta, w)= MSE(θ,w)= E [ ϵ ( s ; θ , w ) ⊤ ϵ ( s ; θ , w ) ] \mathbb{E}\left[\epsilon(s ; \theta, w)^{\top} \epsilon(s ; \theta, w)\right] \quad E[ϵ(s;θ,w)⊤ϵ(s;θ,w)],其中 ϵ ( s ; θ , w ) = ∇ a Q w ( s , a ) ∣ a = μ θ ( s ) − ∇ a Q μ ( s , a ) ∣ a = μ θ ( s ) \epsilon(s ; \theta, w)=\left.\nabla_{a} Q^{w}(s, a)\right|_{a=\mu_{\theta}(s)}-\left.\nabla_{a} Q^{\mu}(s, a)\right|_{a=\mu_{\theta}(s)} ϵ(s;θ,w)=∇aQw(s,a)∣a=μθ(s)−∇aQμ(s,a)∣a=μθ(s)
一个compatible off-policy deterministic actor-critic (COPDAC) 算法有两部分组成:Critic 是一个线性函数近似器,通过特征
ϕ
(
s
,
a
)
=
a
⊤
∇
θ
μ
θ
(
s
)
\phi(s, a)=a^{\top} \nabla_{\theta} \mu_{\theta}(s)
ϕ(s,a)=a⊤∇θμθ(s)来评估动作价值函数。这个可以通过离线地学习已知策略的样本得到,比如用 Q-learning 或者 gradient Q-learning。Actor 则朝着 critic 的动作价值函数的梯度方向更新参数。例如,下列COPDAC-Q 算法中 critic 使用了简单 Q-learning:
δ
t
=
r
t
+
γ
Q
w
(
s
t
+
1
,
μ
θ
(
s
t
+
1
)
)
−
Q
w
(
s
t
,
a
t
)
(19)
\delta_{t} =r_{t}+\gamma Q^{w}\left(s_{t+1}, \mu_{\theta}\left(s_{t+1}\right)\right)-Q^{w}\left(s_{t}, a_{t}\right)\tag{19}
δt=rt+γQw(st+1,μθ(st+1))−Qw(st,at)(19)
θ t + 1 = θ t + α θ ∇ θ μ θ ( s t ) ( ∇ θ μ θ ( s t ) ⊤ w t ) (20) \theta_{t+1} =\theta_{t}+\alpha_{\theta} \nabla_{\theta} \mu_{\theta}\left(s_{t}\right)\left(\nabla_{\theta} \mu_{\theta}\left(s_{t}\right)^{\top} w_{t}\right)\tag{20} θt+1=θt+αθ∇θμθ(st)(∇θμθ(st)⊤wt)(20)
w
t
+
1
=
w
t
+
α
w
δ
t
ϕ
(
s
t
,
a
t
)
(21)
w_{t+1} =w_{t}+\alpha_{w} \delta_{t} \phi\left(s_{t}, a_{t}\right)\tag{21}
wt+1=wt+αwδtϕ(st,at)(21)
v
t
+
1
=
v
t
+
α
v
δ
t
ϕ
(
s
t
)
(22)
v_{t+1} =v_{t}+\alpha_{v} \delta_{t} \phi\left(s_{t}\right)\tag{22}
vt+1=vt+αvδtϕ(st)(22)
或者 gradient Q-learning critic:
δ
t
=
r
t
+
γ
Q
w
(
s
t
+
1
,
μ
θ
(
s
t
+
1
)
)
−
Q
w
(
s
t
,
a
t
)
(23)
\delta_{t} =r_{t}+\gamma Q^{w}\left(s_{t+1}, \mu_{\theta}\left(s_{t+1}\right)\right)-Q^{w}\left(s_{t}, a_{t}\right) \tag{23}
δt=rt+γQw(st+1,μθ(st+1))−Qw(st,at)(23)
θ
t
+
1
=
θ
t
+
α
θ
∇
θ
μ
θ
(
s
t
)
(
∇
θ
μ
θ
(
s
t
)
⊤
w
t
)
(24)
\theta_{t+1} =\theta_{t}+\alpha_{\theta} \nabla_{\theta} \mu_{\theta}\left(s_{t}\right)\left(\nabla_{\theta} \mu_{\theta}\left(s_{t}\right)^{\top} w_{t}\right)\tag{24}
θt+1=θt+αθ∇θμθ(st)(∇θμθ(st)⊤wt)(24)
w
t
+
1
=
w
t
+
α
w
δ
t
ϕ
(
s
t
,
a
t
)
−
α
w
γ
ϕ
(
s
t
+
1
,
μ
θ
(
s
t
+
1
)
)
(
ϕ
(
s
t
,
a
t
)
⊤
u
t
)
(25)
w_{t+1} =w_{t}+\alpha_{w} \delta_{t} \phi\left(s_{t}, a_{t}\right) \\ -\alpha_{w} \gamma \phi\left(s_{t+1}, \mu_{\theta}\left(s_{t+1}\right)\right)\left(\phi\left(s_{t}, a_{t}\right)^{\top} u_{t}\right) \tag{25}
wt+1=wt+αwδtϕ(st,at)−αwγϕ(st+1,μθ(st+1))(ϕ(st,at)⊤ut)(25)
v
t
+
1
=
v
t
+
α
v
δ
t
ϕ
(
s
t
)
−
α
v
γ
ϕ
(
s
t
+
1
)
(
ϕ
(
s
t
,
a
t
)
⊤
u
t
)
(26)
v_{t+1} =v_{t}+\alpha_{v} \delta_{t} \phi\left(s_{t}\right) \\ -\alpha_{v} \gamma \phi\left(s_{t+1}\right)\left(\phi\left(s_{t}, a_{t}\right)^{\top} u_{t}\right)\tag{26}
vt+1=vt+αvδtϕ(st)−αvγϕ(st+1)(ϕ(st,at)⊤ut)(26)
u
t
+
1
=
u
t
+
α
u
(
δ
t
−
ϕ
(
s
t
,
a
t
)
⊤
u
t
)
ϕ
(
s
t
,
a
t
)
(27)
u_{t+1} =u_{t}+\alpha_{u}\left(\delta_{t}-\phi\left(s_{t}, a_{t}\right)^{\top} u_{t}\right) \phi\left(s_{t}, a_{t}\right)\tag{27}
ut+1=ut+αu(δt−ϕ(st,at)⊤ut)ϕ(st,at)(27)