策略梯度方法介绍——确定性策略梯度定理

  • 引言
    • 回顾:策略梯度定理
    • 确定性策略梯度
      • 确定性策略梯度的表示形式
      • 确定性策略梯度算法推导过程

引言

上一节我们介绍了 行动者-评论家(AC)方法,其核心思想是将policy_based与value_based方法相结合,仅需要执行一次状态转移过程,就可立即进行策略改进。本节将继续沿用AC方法框架,介绍 确定性策略梯度定理

回顾:策略梯度定理

在策略梯度方法介绍——蒙特卡洛策略梯度方法(REINFORCE)介绍了策略梯度定理的期望表达形式
∇ J ( θ ) = E S t ∼ ρ π θ ; A t ∼ π θ [ ∇ log ⁡ π ( A t ∣ S t ; θ ) q π θ ( S t , A t ) ] \nabla \mathcal J(\theta) = \mathbb E_{S_t \sim \rho^{\pi_{\theta}};A_t \sim \pi_{\theta}}[\nabla \log \pi(A_t \mid S_t;\theta)q_{\pi_{\theta}}(S_t,A_t)] ∇J(θ)=ESt​∼ρπθ​;At​∼πθ​​[∇logπ(At​∣St​;θ)qπθ​​(St​,At​)]
其中, t t t时刻状态 S t S_t St​服从状态分布 ρ π θ \rho^{\pi_{\theta}} ρπθ​, t t t时刻动作 A t A_t At​服从 S t S_t St​时刻的策略函数 π ( A t ∣ S t ; θ ) \pi(A_t \mid S_t;\theta) π(At​∣St​;θ)。

确定性策略梯度

确定性策略梯度的表示形式

既然有确定型策略梯度,自然也会有随机性策略梯度。在策略梯度定理推导过程中介绍的就是随机性策略梯度的推导过程。两者之间主要的差别是 t t t时刻动作 A t A_t At​服从的策略是确定性策略还是随机性策略

在最早的马尔可夫奖励过程(MRP)中介绍到确定性策略—智能体在某一状态下只能执行唯一一个确定的动作。因此,在策略梯度方法中,策略 π ( A t ∣ S t ; θ ) \pi(A_t \mid S_t;\theta) π(At​∣St​;θ)是一个 常数,而常数自身是不存在梯度的,因此 ∇ π ( A t ∣ S t ; θ ) = 0 \nabla \pi(A_t \mid S_t;\theta) = 0 ∇π(At​∣St​;θ)=0;

为了在算法过程中,继续对参数 θ \theta θ求解梯度,对确定性策略设定一个符号: μ ( S t ; θ ) \mu(S_t;\theta) μ(St​;θ),记为 μ θ \mu_{\theta} μθ​。

  • μ ( S t ; θ ) \mu(S_t;\theta) μ(St​;θ)可看成是关于 S t S_t St​和参数 θ \theta θ的函数,而不是条件概率;
  • μ ( S t ; θ ) \mu(S_t;\theta) μ(St​;θ)本身就可以表示动作 A t A_t At​;

J ( θ ) \mathcal J(\theta) J(θ)仍然表示 μ θ \mu_{\theta} μθ​条件下,初始状态的回报 G 0 G_0 G0​的期望 E μ θ [ G 0 ] \mathbb E_{\mu_{\theta}}[G_0] Eμθ​​[G0​]。因此,对确定性策略梯度 ∇ J ( θ ) \nabla \mathcal J(\theta) ∇J(θ)表示如下:
∇ J ( θ ) = ∇ E μ θ [ G 0 ] = E [ ∑ k = 0 + ∞ γ k ∇ μ ( S t ; θ ) [ ∇ a q μ θ ( S t , a ) ] ∣ a = μ ( S t ; θ ) ] \nabla \mathcal J(\theta) = \nabla \mathbb E_{\mu_{\theta}}[G_0] = \mathbb E \left[\sum_{k=0}^{+\infty}\gamma^k \nabla \mu(S_t;\theta)[\nabla_{a}q_{\mu_{\theta}}(S_t,a)]|_{a=\mu(S_t;\theta)} \right] ∇J(θ)=∇Eμθ​​[G0​]=E[k=0∑+∞​γk∇μ(St​;θ)[∇a​qμθ​​(St​,a)]∣a=μ(St​;θ)​]
更一般的形式表示如下:
∇ J ( θ ) = E S t ∼ ρ μ θ [ ∇ μ ( S t ; θ ) ∇ a q μ θ ( S t , a ) ∣ a = μ ( S t ; θ ) ] \nabla \mathcal J(\theta) = \mathbb E_{S_t \sim \rho^{\mu_{\theta}}} \left[\nabla \mu(S_t;\theta) \nabla_{a}q_{\mu_{\theta}}(S_t,a) |_{a=\mu(S_t;\theta)}\right] ∇J(θ)=ESt​∼ρμθ​​[∇μ(St​;θ)∇a​qμθ​​(St​,a)∣a=μ(St​;θ)​]

和回顾中策略梯度定理中期望的表达形式对比,主要有如下几个区别:

  • 期望结果中,分布只包含状态分布 S t ∼ ρ μ θ S_t \sim \rho^{\mu_{\theta}} St​∼ρμθ​;
  • 期望内部,不仅要对 μ ( S t ; θ ) \mu(S_t;\theta) μ(St​;θ)中的 θ \theta θ求解梯度,还要对状态-动作价值函数 q μ θ ( S t , a ) q_{\mu_{\theta}}(S_t,a) qμθ​​(St​,a)中的 a a a求解梯度;
  • 不存在 log ⁡ \log log项;

带着上述的几个区别,执行确定性策略梯度的算法推导过程

确定性策略梯度算法推导过程

整个推导过程和‘策略梯度定理’推导过程非常相似,大家可以对比查看。
策略函数 π ( a ∣ s ; θ ) \pi(a \mid s;\theta) π(a∣s;θ)成为确定性策略 μ ( s ; θ ) \mu(s;\theta) μ(s;θ)后,最主要的变化状态价值函数 V μ θ ( s ) V_{\mu_{\theta}}(s) Vμθ​​(s)与状态-动作价值函数 q μ θ ( s , μ ( s ; θ ) ) q_{\mu_{\theta}}(s,\mu(s;\theta)) qμθ​​(s,μ(s;θ))相等:
动作被唯一确定了;
V μ θ ( s ) = q μ θ ( s , μ ( s ; θ ) ) , s ∈ S V_{\mu_{\theta}}(s) = q_{\mu_{\theta}}(s,\mu(s;\theta)), s \in \mathcal S Vμθ​​(s)=qμθ​​(s,μ(s;θ)),s∈S

根据贝尔曼期望方程,将 q μ θ ( s , a ) q_{\mu_{\theta}}(s,a) qμθ​​(s,a)展开为如下形式:
r ( s , μ ( s , θ ) ) r(s,\mu(s,\theta)) r(s,μ(s,θ))被称为奖赏函数。
q μ θ ( s , μ ( s ; θ ) ) = r ( s , μ ( s ; θ ) ) + γ ∑ s ′ , r P ( s ′ , r ∣ s , μ ( s ; θ ) ) V μ θ ( s ′ ) , s ∈ S q_{\mu_{\theta}}(s,\mu(s;\theta)) = r(s,\mu(s;\theta)) + \gamma \sum_{s',r}P(s',r \mid s,\mu(s;\theta))V_{\mu_{\theta}}(s'), s \in \mathcal S qμθ​​(s,μ(s;θ))=r(s,μ(s;θ))+γs′,r∑​P(s′,r∣s,μ(s;θ))Vμθ​​(s′),s∈S
继续化简,后一项的 r r r可以使用概率密度积分的方式消掉。整理得:
q μ θ ( s , μ ( s ; θ ) ) = r ( s , μ ( s , θ ) ) + γ ∑ s ′ P ( s ′ ∣ s , μ ( s ; θ ) ) V μ θ ( s ′ ) , s ∈ S q_{\mu_{\theta}}(s,\mu(s;\theta)) = r(s,\mu(s,\theta)) + \gamma \sum_{s'}P(s' \mid s,\mu(s;\theta))V_{\mu_{\theta}}(s'), s \in \mathcal S qμθ​​(s,μ(s;θ))=r(s,μ(s,θ))+γs′∑​P(s′∣s,μ(s;θ))Vμθ​​(s′),s∈S

分别对 V μ θ ( s ) , q μ θ ( s , μ ( s ; θ ) ) V_{\mu_{\theta}}(s),q_{\mu_{\theta}}(s,\mu(s;\theta)) Vμθ​​(s),qμθ​​(s,μ(s;θ))求解梯度:
∇ V μ θ ( s ) = ∇ q μ θ ( s , μ ( s ; θ ) ) \nabla V_{\mu_{\theta}}(s) = \nabla q_{\mu_{\theta}}(s,\mu(s;\theta)) ∇Vμθ​​(s)=∇qμθ​​(s,μ(s;θ))
对 q μ θ ( s , μ ( s ; θ ) ) q_{\mu_{\theta}}(s,\mu(s;\theta)) qμθ​​(s,μ(s;θ))求解梯度过程中,由于对 θ \theta θ求解梯度,因此注意 链式求导法则乘法求导
∇ q μ θ ( s , μ ( s ; θ ) ) = ∇ a r ( s , a ) ∣ a = μ ( s ; θ ) ⋅ ∇ μ ( s ; θ ) + γ ∑ s ′ { ∇ a P ( s ′ ∣ s , a ) ∣ a = μ ( s ; θ ) ⋅ ∇ μ ( s ; θ ) ⋅ V μ θ ( s ′ ) + P ( s ′ ∣ s , μ ( s ; θ ) ) ⋅ ∇ V μ θ ( s ′ ) } \nabla q_{\mu_{\theta}}(s,\mu(s;\theta)) = \nabla_{a} r(s,a)|_{a=\mu(s;\theta)}\cdot\nabla\mu(s;\theta) + \gamma \sum_{s'}\left\{\nabla_{a} P(s' \mid s,a)|_{a = \mu(s;\theta)} \cdot \nabla \mu(s;\theta) \cdot V_{\mu_{\theta}}(s') + P(s' \mid s,\mu(s;\theta)) \cdot \nabla V_{\mu_{\theta}}(s') \right\} ∇qμθ​​(s,μ(s;θ))=∇a​r(s,a)∣a=μ(s;θ)​⋅∇μ(s;θ)+γs′∑​{∇a​P(s′∣s,a)∣a=μ(s;θ)​⋅∇μ(s;θ)⋅Vμθ​​(s′)+P(s′∣s,μ(s;θ))⋅∇Vμθ​​(s′)}
含有 ∇ μ ( s ; θ ) \nabla \mu(s;\theta) ∇μ(s;θ)的项提出来:
∇ μ ( s ; θ ) ⋅ [ ∇ a r ( s , a ) + γ ∑ s ′ ∇ a P ( s ′ ∣ s , a ) ⋅ V μ θ ( s ′ ) ] a = μ ( s ; θ ) + γ ∑ s ′ P ( s ′ ∣ s , μ ( s ; θ ) ) ⋅ ∇ V μ θ ( s ′ ) \nabla\mu(s;\theta) \cdot \left[\nabla_{a}r(s,a) + \gamma\sum_{s'}\nabla_{a}P(s' \mid s,a) \cdot V_{\mu_{\theta}}(s')\right]_{a=\mu(s;\theta)} + \gamma \sum_{s'}P(s'\mid s,\mu(s;\theta)) \cdot \nabla V_{\mu_{\theta}}(s') ∇μ(s;θ)⋅[∇a​r(s,a)+γs′∑​∇a​P(s′∣s,a)⋅Vμθ​​(s′)]a=μ(s;θ)​+γs′∑​P(s′∣s,μ(s;θ))⋅∇Vμθ​​(s′)
又因为:
∇ a r ( s , a ) + γ ∑ s ′ ∇ a P ( s ′ ∣ s , a ) ⋅ V μ θ ( s ′ ) = ∇ a r ( s , a ) + ∇ a γ ∑ s ′ P ( s ′ ∣ s , a ) ⋅ V μ θ ( s ′ ) = ∇ a [ r ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) ⋅ V μ θ ( s ′ ) ] = ∇ a q μ θ ( s , a ) \begin{split} & \nabla_{a}r(s,a) + \gamma\sum_{s'}\nabla_{a}P(s' \mid s,a) \cdot V_{\mu_{\theta}}(s') \\ & = \nabla_{a} r(s,a) + \nabla_{a}\gamma\sum_{s'}P(s' \mid s,a) \cdot V_{\mu_{\theta}}(s') \\ & = \nabla_{a} \left[r(s,a) + \gamma\sum_{s'}P(s' \mid s,a) \cdot V_{\mu_{\theta}}(s')\right] \\ & = \nabla_{a}q_{\mu_{\theta}}(s,a) \\ \end{split} ​∇a​r(s,a)+γs′∑​∇a​P(s′∣s,a)⋅Vμθ​​(s′)=∇a​r(s,a)+∇a​γs′∑​P(s′∣s,a)⋅Vμθ​​(s′)=∇a​[r(s,a)+γs′∑​P(s′∣s,a)⋅Vμθ​​(s′)]=∇a​qμθ​​(s,a)​

则有:
∇ q μ θ ( s , μ ( s ; θ ) ) = ∇ μ ( s ; θ ) ⋅ ∇ a q μ θ ( s , a ) ∣ a = μ ( s ; θ ) + γ ∑ s ′ P ( s ′ ∣ s , μ ( s ; θ ) ) ⋅ ∇ V μ θ ( s ′ ) \nabla q_{\mu_{\theta}}(s,\mu(s;\theta)) = \nabla \mu(s;\theta) \cdot \nabla_{a}q_{\mu_{\theta}}(s,a)|_{a = \mu(s;\theta)} + \gamma \sum_{s'}P(s' \mid s,\mu(s;\theta)) \cdot \nabla V_{\mu_{\theta}}(s') ∇qμθ​​(s,μ(s;θ))=∇μ(s;θ)⋅∇a​qμθ​​(s,a)∣a=μ(s;θ)​+γs′∑​P(s′∣s,μ(s;θ))⋅∇Vμθ​​(s′)

最终有:
∇ V μ θ ( s ) = ∇ μ ( s ; θ ) ⋅ ∇ a q μ θ ( s , a ) ∣ a = μ ( s ; θ ) + γ ∑ s ′ P ( s ′ ∣ s , μ ( s ; θ ) ) ⋅ ∇ V μ θ ( s ′ ) \nabla V_{\mu_{\theta}}(s) = \nabla \mu(s;\theta) \cdot \nabla_{a}q_{\mu_{\theta}}(s,a)|_{a = \mu(s;\theta)} + \gamma \sum_{s'}P(s' \mid s,\mu(s;\theta)) \cdot \nabla V_{\mu_{\theta}}(s') ∇Vμθ​​(s)=∇μ(s;θ)⋅∇a​qμθ​​(s,a)∣a=μ(s;θ)​+γs′∑​P(s′∣s,μ(s;θ))⋅∇Vμθ​​(s′)
至此,我们得到了 ∇ V μ θ ( s ) → ∇ V μ θ ( s ′ ) \nabla V_{\mu_{\theta}}(s) \to \nabla V_{\mu_{\theta}}(s') ∇Vμθ​​(s)→∇Vμθ​​(s′)的 递推关系。我们同样可以得到 ∇ V μ θ ( s ′ ) → ∇ V μ θ ( s ′ ′ ) \nabla V_{\mu_{\theta}}(s') \to \nabla V_{\mu_{\theta}}(s'') ∇Vμθ​​(s′)→∇Vμθ​​(s′′)的递推关系:
∇ V μ θ ( s ′ ) = ∇ μ ( s ′ ; θ ) ⋅ ∇ a ′ q μ θ ( s ′ , a ′ ) ∣ a ′ = μ ( s ′ ; θ ) + γ ∑ s ′ ′ P ( s ′ ′ ∣ s ′ , μ ( s ′ ; θ ) ) ⋅ ∇ V μ θ ( s ′ ′ ) \nabla V_{\mu_{\theta}}(s') = \nabla \mu(s';\theta) \cdot \nabla_{a'}q_{\mu_{\theta}}(s',a')|_{a' = \mu(s';\theta)} + \gamma \sum_{s''}P(s'' \mid s',\mu(s';\theta)) \cdot \nabla V_{\mu_{\theta}}(s'') ∇Vμθ​​(s′)=∇μ(s′;θ)⋅∇a′​qμθ​​(s′,a′)∣a′=μ(s′;θ)​+γs′′∑​P(s′′∣s′,μ(s′;θ))⋅∇Vμθ​​(s′′)

将 ∇ V μ θ ( s ′ ) \nabla V_{\mu_{\theta}}(s') ∇Vμθ​​(s′)带回 ∇ V μ θ ( s ) \nabla V_{\mu_{\theta}}(s) ∇Vμθ​​(s):
∇ V μ θ ( s ) = ∇ μ ( s ; θ ) ⋅ ∇ a q μ θ ( s , a ) ∣ a = μ ( s ; θ ) + γ ∑ s ′ P ( s ′ ∣ s , μ ( s ; θ ) ) ⋅ { ∇ μ ( s ′ ; θ ) ⋅ ∇ a ′ q μ θ ( s ′ , a ′ ) ∣ a ′ = μ ( s ′ ; θ ) + γ ∑ s ′ ′ P ( s ′ ′ ∣ s ′ , μ ( s ′ ; θ ) ) ⋅ ∇ V μ θ ( s ′ ′ ) } \nabla V_{\mu_{\theta}}(s) = \nabla \mu(s;\theta) \cdot \nabla_{a}q_{\mu_{\theta}}(s,a)|_{a = \mu(s;\theta)} + \gamma \sum_{s'}P(s' \mid s,\mu(s;\theta)) \cdot \left\{\nabla \mu(s';\theta) \cdot \nabla_{a'}q_{\mu_{\theta}}(s',a')|_{a' = \mu(s';\theta)} + \gamma \sum_{s''}P(s'' \mid s',\mu(s';\theta)) \cdot \nabla V_{\mu_{\theta}}(s'') \right\} ∇Vμθ​​(s)=∇μ(s;θ)⋅∇a​qμθ​​(s,a)∣a=μ(s;θ)​+γs′∑​P(s′∣s,μ(s;θ))⋅{∇μ(s′;θ)⋅∇a′​qμθ​​(s′,a′)∣a′=μ(s′;θ)​+γs′′∑​P(s′′∣s′,μ(s′;θ))⋅∇Vμθ​​(s′′)}

展开后依然是三项加和的形式:
∇ μ ( s ; θ ) ⋅ ∇ a q μ θ ( s , a ) ∣ a = μ ( s ; θ ) γ ∑ s ′ P ( s ′ ∣ s , μ ( s ; θ ) ) ⋅ ∇ μ ( s ′ ; θ ) ⋅ ∇ a ′ q μ θ ( s ′ , a ′ ) ∣ a ′ = μ ( s ′ ; θ ) γ ∑ s ′ P ( s ′ ∣ s , μ ( s ; θ ) ) ⋅ γ ∑ s ′ ′ P ( s ′ ′ ∣ s ′ , μ ( s ′ ; θ ) ) ⋅ ∇ V μ θ ( s ′ ′ ) \nabla \mu(s;\theta) \cdot \nabla_{a}q_{\mu_{\theta}}(s,a)|_{a = \mu(s;\theta)} \\ \gamma \sum_{s'}P(s' \mid s,\mu(s;\theta)) \cdot \nabla \mu(s';\theta) \cdot \nabla_{a'}q_{\mu_{\theta}}(s',a')|_{a' = \mu(s';\theta)} \\ \gamma \sum_{s'}P(s' \mid s,\mu(s;\theta)) \cdot \gamma \sum_{s''}P(s'' \mid s',\mu(s';\theta)) \cdot \nabla V_{\mu_{\theta}}(s'') ∇μ(s;θ)⋅∇a​qμθ​​(s,a)∣a=μ(s;θ)​γs′∑​P(s′∣s,μ(s;θ))⋅∇μ(s′;θ)⋅∇a′​qμθ​​(s′,a′)∣a′=μ(s′;θ)​γs′∑​P(s′∣s,μ(s;θ))⋅γs′′∑​P(s′′∣s′,μ(s′;θ))⋅∇Vμθ​​(s′′)
由于最后一项依然可以继续展开,因此我们先关注前面两项是否存在某种表达规律
第一个式子,我们可以理解成 使用确定性策略 μ ( s ; θ ) \mu(s;\theta) μ(s;θ) 从状态 s s s经过动作 a = μ ( s ; θ ) a=\mu(s;\theta) a=μ(s;θ)执行0次状态转移至 状态 s s s的价值函数的 梯度
状态 s s s转移至状态 s → s \to s→相当于没有进行状态转移——静止不动 ,因此动态特性函数 P ( s ′ ∣ s , μ ( s ; θ ) ) = 1 P(s' \mid s,\mu(s;\theta))=1 P(s′∣s,μ(s;θ))=1恒成立。并且 转移后的状态结果只有 s s s自身。因此,可以将第一项式子扩展如下:
∇ μ ( s ; θ ) ⋅ ∇ a q μ θ ( s , a ) ∣ a = μ ( s ; θ ) = 1 × ∑ s 1 × ∇ μ ( s ; θ ) ⋅ ∇ a q μ θ ( s , a ) ∣ a = μ ( s ; θ ) = γ 0 ∑ s P ( s ∣ s , μ ( s ; θ ) ) ⋅ ∇ μ ( s ; θ ) ⋅ ∇ a q μ θ ( s , a ) ∣ a = μ ( s ; θ ) \begin{split} & \nabla \mu(s;\theta) \cdot \nabla_{a}q_{\mu_{\theta}}(s,a)|_{a = \mu(s;\theta)} \\ & = 1 \times \sum_{s} 1 \times \nabla \mu(s;\theta) \cdot \nabla_{a}q_{\mu_{\theta}}(s,a)|_{a = \mu(s;\theta)} \\ & = \gamma^0 \sum_{s} P(s \mid s,\mu(s;\theta)) \cdot \nabla \mu(s;\theta) \cdot \nabla_{a}q_{\mu_{\theta}}(s,a)|_{a = \mu(s;\theta)} \end{split} ​∇μ(s;θ)⋅∇a​qμθ​​(s,a)∣a=μ(s;θ)​=1×s∑​1×∇μ(s;θ)⋅∇a​qμθ​​(s,a)∣a=μ(s;θ)​=γ0s∑​P(s∣s,μ(s;θ))⋅∇μ(s;θ)⋅∇a​qμθ​​(s,a)∣a=μ(s;θ)​​
再次将第一项与第二项进行对比:
γ 0 ∑ s P ( s ∣ s , μ ( s ; θ ) ) ⋅ ∇ μ ( s ; θ ) ⋅ ∇ a q μ θ ( s , a ) ∣ a = μ ( s ; θ ) γ ∑ s ′ P ( s ′ ∣ s , μ ( s ; θ ) ) ⋅ ∇ μ ( s ′ ; θ ) ⋅ ∇ a ′ q μ θ ( s ′ , a ′ ) ∣ a ′ = μ ( s ′ ; θ ) \gamma^0 \sum_{s} P(s \mid s,\mu(s;\theta)) \cdot \nabla \mu(s;\theta) \cdot \nabla_{a}q_{\mu_{\theta}}(s,a)|_{a = \mu(s;\theta)}\\ \gamma \sum_{s'}P(s' \mid s,\mu(s;\theta)) \cdot \nabla \mu(s';\theta) \cdot \nabla_{a'}q_{\mu_{\theta}}(s',a')|_{a' = \mu(s';\theta)} γ0s∑​P(s∣s,μ(s;θ))⋅∇μ(s;θ)⋅∇a​qμθ​​(s,a)∣a=μ(s;θ)​γs′∑​P(s′∣s,μ(s;θ))⋅∇μ(s′;θ)⋅∇a′​qμθ​​(s′,a′)∣a′=μ(s′;θ)​
至此,找到规律:
如果状态 s s s执行了 N N N次状态转移后达到状态 s ( N ) s^{(N)} s(N):
γ N ∑ s ( N ) P ( s ( N ) ∣ s , μ ( s ; θ ) ) ⋅ ∇ μ ( s ( N ) ; θ ) ⋅ ∇ a ( N ) q μ θ ( s ( N ) , a ( N ) ) ∣ a ( N ) = μ ( s ( N ) ; θ ) \gamma^N \sum_{s^{(N)}} P(s^{(N)} \mid s,\mu(s;\theta)) \cdot \nabla \mu(s^{(N)};\theta) \cdot \nabla_{a^{(N)}}q_{\mu_{\theta}}(s^{(N)},a^{(N)})|_{a^{(N)} = \mu(s^{(N)};\theta)} γNs(N)∑​P(s(N)∣s,μ(s;θ))⋅∇μ(s(N);θ)⋅∇a(N)​qμθ​​(s(N),a(N))∣a(N)=μ(s(N);θ)​
因此, ∇ J ( θ ) = ∇ V μ θ ( s 0 ) \nabla \mathcal J(\theta) = \nabla V_{\mu_{\theta}}(s_0) ∇J(θ)=∇Vμθ​​(s0​)表示如下:
∇ J ( θ ) = ∇ V μ θ ( s 0 ) = ∇ μ ( s ; θ ) ⋅ ∇ a q μ θ ( s , a ) ∣ a = μ ( s ; θ ) + γ ∑ s ′ P ( s ′ ∣ s , μ ( s ; θ ) ) ⋅ ∇ V μ θ ( s ′ ) = ∇ μ ( s ; θ ) ⋅ ∇ a q μ θ ( s , a ) ∣ a = μ ( s ; θ ) + γ ∑ s ′ P ( s ′ ∣ s , μ ( s ; θ ) ) ⋅ ∇ μ ( s ′ ; θ ) ⋅ ∇ a ′ q μ θ ( s ′ , a ′ ) ∣ a ′ = μ ( s ′ ; θ ) + γ ∑ s ′ P ( s ′ ∣ s , μ ( s ; θ ) ) ⋅ γ ∑ s ′ ′ P ( s ′ ′ ∣ s ′ , μ ( s ′ ; θ ) ) ⋅ ∇ V μ θ ( s ′ ′ ) = ⋯ = ∑ N = 0 + ∞ γ N ∑ s ( N ) P ( s ( N ) ∣ s , μ ( s ; θ ) ) ⋅ ∇ μ ( s ( N ) ; θ ) ⋅ ∇ a ( N ) q μ θ ( s ( N ) , a ( N ) ) ∣ a ( N ) = μ ( s ( N ) ; θ ) \begin{aligned} \nabla \mathcal J(\theta) & = \nabla V_{\mu_{\theta}}(s_0) \\ & = \nabla \mu(s;\theta) \cdot \nabla_{a}q_{\mu_{\theta}}(s,a)|_{a = \mu(s;\theta)} + \gamma \sum_{s'}P(s' \mid s,\mu(s;\theta)) \cdot \nabla V_{\mu_{\theta}}(s') \\ & = \nabla \mu(s;\theta) \cdot \nabla_{a}q_{\mu_{\theta}}(s,a)|_{a = \mu(s;\theta)} + \gamma \sum_{s'}P(s' \mid s,\mu(s;\theta)) \cdot \nabla \mu(s';\theta) \cdot \nabla_{a'}q_{\mu_{\theta}}(s',a')|_{a' = \mu(s';\theta)} + \gamma \sum_{s'}P(s' \mid s,\mu(s;\theta)) \cdot \gamma \sum_{s''}P(s'' \mid s',\mu(s';\theta)) \cdot \nabla V_{\mu_{\theta}}(s'')\\ & = \cdots \\ & = \sum_{N=0}^{+\infty}\gamma^N \sum_{s^{(N)}} P(s^{(N)} \mid s,\mu(s;\theta)) \cdot \nabla \mu(s^{(N)};\theta) \cdot \nabla_{a^{(N)}}q_{\mu_{\theta}}(s^{(N)},a^{(N)})|_{a^{(N)} = \mu(s^{(N)};\theta)} \end{aligned} ∇J(θ)​=∇Vμθ​​(s0​)=∇μ(s;θ)⋅∇a​qμθ​​(s,a)∣a=μ(s;θ)​+γs′∑​P(s′∣s,μ(s;θ))⋅∇Vμθ​​(s′)=∇μ(s;θ)⋅∇a​qμθ​​(s,a)∣a=μ(s;θ)​+γs′∑​P(s′∣s,μ(s;θ))⋅∇μ(s′;θ)⋅∇a′​qμθ​​(s′,a′)∣a′=μ(s′;θ)​+γs′∑​P(s′∣s,μ(s;θ))⋅γs′′∑​P(s′′∣s′,μ(s′;θ))⋅∇Vμθ​​(s′′)=⋯=N=0∑+∞​γNs(N)∑​P(s(N)∣s,μ(s;θ))⋅∇μ(s(N);θ)⋅∇a(N)​qμθ​​(s(N),a(N))∣a(N)=μ(s(N);θ)​​
同样可以引入状态分布,构建一个符号: P r { s 0 → s , k , μ } P_r\{s_0 \to s,k,\mu\} Pr​{s0​→s,k,μ}表示 从初始状态 s 0 s_0 s0​开始,在确定性策略 μ θ \mu_{\theta} μθ​条件下,执行 k k k次状态转移后达到状态 s s s的概率
P r { s 0 → s , k , μ } P_r\{s_0 \to s,k,\mu\} Pr​{s0​→s,k,μ}符号产生过程 -> 传送门
V μ θ ( s ) = ∑ s ∈ S ∑ N = 0 + ∞ γ N × P r { s 0 → s , N , μ } ∇ μ ( s ; θ ) ⋅ ∇ a q μ θ ( s , a ) ∣ a = μ ( s ; θ ) = ∑ s ∈ S γ N × η ( s ) × ∇ μ ( s ; θ ) ⋅ ∇ a q μ θ ( s , a ) ∣ a = μ ( s ; θ ) \begin{aligned} V_{\mu_{\theta}}(s) & = \sum_{s \in \mathcal S}\sum_{N=0}^{+\infty} \gamma^N \times P_r\{s_0 \to s,N,\mu\} \nabla \mu(s;\theta) \cdot \nabla_{a}q_{\mu_{\theta}}(s,a)|_{a = \mu(s;\theta)} \\ & = \sum_{s \in \mathcal S} \gamma^N \times \eta(s) \times \nabla \mu(s;\theta) \cdot \nabla_{a}q_{\mu_{\theta}}(s,a)|_{a = \mu(s;\theta)} \end{aligned} Vμθ​​(s)​=s∈S∑​N=0∑+∞​γN×Pr​{s0​→s,N,μ}∇μ(s;θ)⋅∇a​qμθ​​(s,a)∣a=μ(s;θ)​=s∈S∑​γN×η(s)×∇μ(s;θ)⋅∇a​qμθ​​(s,a)∣a=μ(s;θ)​​

最终同样可以得到和策略梯度定理相似的如下表达:
∇ J ( θ ) ∝ ∑ s ∈ S μ ( s ) × ∇ μ ( s ; θ ) ⋅ ∇ a q μ θ ( s , a ) ∣ a = μ ( s ; θ ) \nabla \mathcal J(\theta) \propto \sum_{s \in \mathcal S}\mu(s) \times \nabla \mu(s;\theta) \cdot \nabla_{a}q_{\mu_{\theta}}(s,a)|_{a = \mu(s;\theta)} ∇J(θ)∝s∈S∑​μ(s)×∇μ(s;θ)⋅∇a​qμθ​​(s,a)∣a=μ(s;θ)​

最终引入状态分布符号 S t ∼ ρ π θ S_t \sim \rho^{\pi_{\theta}} St​∼ρπθ​,将上述公式化简为期望形式:
∇ J ( θ ) = E S t ∼ ρ μ θ [ ∇ μ ( S t ; θ ) ∇ a q μ θ ( S t , a ) ∣ a = μ ( S t ; θ ) ] \nabla \mathcal J(\theta) = \mathbb E_{S_t \sim \rho^{\mu_{\theta}}} \left[\nabla \mu(S_t;\theta) \nabla_{a}q_{\mu_{\theta}}(S_t,a) |_{a=\mu(S_t;\theta)}\right] ∇J(θ)=ESt​∼ρμθ​​[∇μ(St​;θ)∇a​qμθ​​(St​,a)∣a=μ(St​;θ)​]

本质上,确定性策略梯度定理与策略梯度定理推导非常相似,只是推导初始存在差异
由于 μ ( S t ; θ ) \mu(S_t;\theta) μ(St​;θ)是确定性策略,因此不会对动作求解期望,从而不会像策略梯度定理一样通过除以 μ ( S t ; θ ) \mu(S_t;\theta) μ(St​;θ)以获取 log ⁡ \log log项。

相关参考:
深度强化学习原理、算法pytorch实战 —— 刘全,黄志刚编著
深度强化学习-确定性策略梯度算法推导

策略梯度方法介绍——确定性策略梯度定理相关推荐

  1. 策略梯度方法介绍——带基线的REINFORCE

    策略梯度方法介绍--带基线的REINFORCE 引言 回顾:REINFORCE算法 REINFORCE方法在执行过程中的问题 带基线的REINFORCE 基线REINFORCE推导过程 基线 b ( ...

  2. 计算机管理策略设置,windows10系统管理员设置了系统策略解决方法介绍

    有的用户在使用Windows10系统的进行安装软件时,系统会弹出[系统管理员设置了系统策略,禁止进行此安装]的窗口无法进行安装软件,那么该怎么办呢?下面就和小编一起看一下windows10系统中提示系 ...

  3. 梯度下降法和随机梯度下降法

    1. 梯度 在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度.比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y) ...

  4. 强化学习(九)- 策略梯度方法 - 梯度上升,黑箱优化,REINFORCE算法及CartPole实例

    策略梯度方法 引言 9.1 策略近似和其优势 9.2 策略梯度定理 9.2.1 梯度上升和黑箱优化 9.2.2 策略梯度定理的证明 9.3 REINFORCE:蒙特卡洛策略梯度 9.3.1 轨迹上的R ...

  5. triplet loss后面不收敛_Policy Gradient——一种不以loss来反向传播的策略梯度方法...

    目录 1.前言 2.核心算法 3.Add a Baseline 4.总结 1.前言 这次介绍的基于策略梯度的Policy Gradient的算法属实比之前的算法没那么好理解,笔者看完莫烦教程之后还是有 ...

  6. 【论文解读】深度强化学习基石论文:函数近似的策略梯度方法

     导读:这篇是1999 年Richard Sutton 在强化学习领域中的经典论文,论文证明了策略梯度定理和在用函数近似 Q 值时策略梯度定理依然成立,本论文奠定了后续以深度强化学习策略梯度方法的基石 ...

  7. 《强化学习》中的第13章:策略梯度方法

    前言: 本次笔记对<强化学习(第二版)>第十三章进行概括性描述. 以下概括都是基于我个人的理解,可能有误,欢迎交流:piperliu@qq.com. 让时间回到最开始:第二章多臂赌博机.在 ...

  8. 【从RL到DRL】深度强化学习基础(五)离散控制与连续控制——确定策略梯度方法(DPG)、使用随机策略进行连续控制

    目录 确定策略梯度(Deterministic Policy Gradient,DPG) 改进:使用Target Network 随机策略与确定策略网络对比 使用随机策略进行连续控制 策略网络搭建 策 ...

  9. 无人机辅助移动边缘计算的计算卸载优化:一种深度确定性策略梯度方法(2)——模型构建

    无人机辅助移动边缘计算的计算卸载优化:一种深度确定性策略梯度方法(2)--模型构建 参考文献: [1] Wang Y , Fang W , Ding Y , et al. Computation of ...

最新文章

  1. python 同步 事件 event 简介
  2. 转: 学ppt的网址与素材
  3. python的函数的定义与调用
  4. spark常用函数比较
  5. android 本地数据库sqlite的封装
  6. 单线程的Redis为什么却能支撑高并发?
  7. (ヒトコト)一个挺有趣的东西!作为一个动漫宅,游戏宅来说还是一个挺有趣的接口!banner上面就是...
  8. mysql 哨兵_第六课补充01——主从复制原理,哨兵机制
  9. sql 入门经典总结
  10. 两个网卡做映射linux,linux多网卡的路由模式和桥接模式设置方法
  11. 为什么html中使用不了样式,css不起作用是什么原因?
  12. python京东注册账号_玩转京东支付(python)
  13. 小试牛刀:猫狗识别 Cat VS Dog
  14. 卸载软件-Uninstall Tool(无残留)
  15. 拉普拉斯金字塔图像融合原理
  16. 想要搭建个人博客?我调研了 100 来个 Java 开源博客系统,发现这 5 个最好用!...
  17. 使用Hbuilder开发python
  18. iPhone上Siri无法正常回应如何解决?
  19. RabbitMQ内存消耗
  20. 折纸多少次可以达到珠穆朗玛峰的高度

热门文章

  1. 实用工具(锐捷云桌面篇)-Halo工具
  2. 浅谈AI机器学习及实践总结(浅显易懂,特别好)
  3. 靠朋友圈疯狂砍价的拼多多今天上市了,创业3年市值1600亿!
  4. 使用 Hexo 创建 GitHub Page 博客(一)
  5. 【Cocos Creator游戏开发教程】仿微信趣味画赛车小游戏(三)代码实现
  6. 初中学历零基础想转行Python,能否学会?Python难吗?
  7. 秀刻Showlike+
  8. 尚雯婕李宇春粉丝文化从演艺圈扩散至出版界
  9. C# Queue与RabbitMQ的爱恨情仇(文末附源码):Q与MQ消息队列简单应用(一)
  10. ios12控制中心打不开相机和计算机,如何修复iPhone 12相机无法正常工作?