之前探索了用于连续动作空间的策略梯度方法-确定性策略梯度DPG。

https://blog.csdn.net/liliang199/article/details/158418509

确定性策略梯度定理的推导核心,在于如何正确地处理目标函数对策略参数的梯度。

一个常见的直观想法是直接应用链式法则,但这会遗漏关键部分,导致结果错误。

这里参考Silver等人2014年的论文,以及网络常见推导过程,尝试重现重新DPG定理推理过程。

1 定义与关系

首先,明确优化的目标。

对于一个确定性策略\mu_\theta: \mathcal{S} \rightarrow \mathcal{A},其性能函数J(\theta)通常定义为起始状态期望回报。

但在推导中,更关注其与状态-动作值函数Q^{\mu}(s, a)的关系。

关键的起点在于,在确定性策略下,状态价值函数V^{\mu}(s)等于在该状态下执行策略输出的动作所得到的Q值。

这是确定性策略的一个核心简化性质:

\displaystyle V^{\mu}(s) = Q^{\mu}(s, \mu_\theta(s))

这个等式源于确定性策略的本质:在状态s下,智能体只会执行一个确定的动作\mu_\theta(s)

2 为何简单链式法则会失效?

一个最直接的想法是,

既然V^{\mu}(s) = Q^{\mu}(s, \mu_\theta(s)),那么对V^{\mu}(s)求关于\theta的梯度,直接应用链式法则不就可以了吗?

\displaystyle \nabla_\theta V^{\mu}(s) \stackrel{?}{=} \nabla_\theta \mu_\theta(s) \cdot \nabla_a Q^{\mu}(s, a) |_{a=\mu_\theta(s)}

这个等式是错误的 。

原因在于,Q^{\mu}(s, \mu_\theta(s))对参数\theta的依赖不仅仅是通过第二个参数,即动作a传递的。

1)直接依赖

如上式所示,动作a = \mu_\theta(s)直接依赖于\theta

2)间接依赖

Q^{\mu}(s, a)函数本身也隐式地依赖于策略参数\theta

因为Q^{\mu}(s, a)的定义是:在状态s采取动作a,此后一直遵循策略\mu_\theta所能获得的期望累积奖励。

因此,“此后一直遵循的策略”本身就是由\theta决定的。这意味着Q^{\mu}的值会随着未来所有状态的策略变化而变化 。简单的链式法则只捕捉到了第一种“直接依赖”,而完全忽略了第二种更复杂的“间接依赖”。因此,必须通过展开Q 函数来显式地处理这种递归的依赖关系,即用贝尔曼方程展开。

3 从贝尔曼方程展开

正确的推导需要利用贝尔曼期望方程将Q^{\mu}展开,从而将这种递归的依赖关系暴露出来 。

从一个初始状态s开始:

第1步:写出V^{\mu}(s)的梯度

\nabla_\theta V^{\mu}(s) = \nabla_\theta Q^{\mu}(s, \mu_\theta(s))

第2步:应用贝尔曼方程展开Q^{\mu}

根据贝尔曼方程,Q^{\mu}(s, \mu_\theta(s))可以写成即时奖励加上未来折扣价值的形式:

\displaystyle Q^{\mu}(s, \mu_\theta(s)) = r(s, \mu_\theta(s)) + \gamma \int_{\mathcal{S}} p(s' | s, \mu_\theta(s)) V^{\mu}(s') ds'

将展开式代入梯度表达式:

\nabla_\theta V^{\mu}(s) = \nabla_\theta \left[ r(s, \mu_\theta(s)) + \gamma \int_{\mathcal{S}} p(s' | s, \mu_\theta(s)) V^{\mu}(s') ds' \right]

第3步:对展开式求梯度

现在对括号内的每一项求关于\theta的梯度。

这里需要谨慎地应用链式法则和乘积法则,

因为 \theta 同时出现在奖励函数r、转移概率p和未来的价值函数V^{\mu}(s')中 。

\displaystyle \begin{aligned} \nabla_\theta V^{\mu}(s) = & \underbrace{\nabla_a r(s, a)|_{a=\mu_\theta(s)} \nabla_\theta \mu_\theta(s)}_{\text{reward term depends on}\theta\text{}} \\ & + \gamma \int_{\mathcal{S}} \big[ \underbrace{\nabla_a p(s'|s, a)|_{a=\mu_\theta(s)} \nabla_\theta \mu_\theta(s) V^{\mu}(s')}_{\text{transition probability depends on }\theta\text{}} \\ & \quad \quad \quad + \underbrace{p(s'|s, \mu_\theta(s)) \nabla_\theta V^{\mu}(s')}_{\text{furture value recursively depends on }\theta} \big] ds' \end{aligned}


 

第4步:递归与整合

观察上式,\nabla_\theta V^{\mu}(s')再次出现,这与我们最初要计算的 \nabla_\theta V^{\mu}(s)形式相同。

这形成了一个递归结构。

通过将这个过程从初始状态开始沿着轨迹无限展开,利用折扣因子\gamma 进行累加,将所有项合并。

第5步:得到最终的梯度形式

经过上述递归和积分顺序的交换(在正则性条件满足下可行) ,所有“直接依赖”项会被整合起来,最终化简为一个非常简洁的形式:从初始状态分布开始,对所有未来可能访问到的状态,求策略梯度与Q函数对动作的梯度的乘积的期望 。

\displaystyle \nabla_\theta J(\mu_\theta) = \mathbb{E}_{s \sim \rho^{\mu}} \left[ \nabla_\theta \mu_\theta(s) \; \nabla_a Q^{\mu}(s, a) |_{a=\mu_\theta(s)} \right]

其中,\rho^{\mu}(s)是在策略 \mu下的折扣状态分布 。

4 合并过程

确定性策略梯度定理的推导中,从递归展开到最终期望形式的合并过程是整个证明的核心。

合并过程的本质是将所有未来时间步的局部梯度贡献叠加起来,每个状态s处的贡献权重为其在折扣轨迹中被访问的期望次数\rho^\mu(s)。这样,原本复杂的递归关系被简洁地整合为对状态空间的积分,极大地方便了后续的蒙特卡洛估计和算法实现。

下面将详细展开这一过程,通过递归展开、求和以及交换积分顺序,将\nabla_\theta J(\theta)表示为对折扣状态分布的积分。这里需要展开第4步中提到的递归和积分交换,逐步推导出最终的期望形式。
 

4.1 回顾第3步得到的表达式

对于任意状态s,值函数V^{\mu}(s)关于策略参数\theta的梯度可递归表示为:

\displaystyle \begin{aligned} \nabla_{\theta} V^{\mu}(s) = &\ \nabla_a r(s,a)\big|_{a=\mu_{\theta}(s)} \nabla_{\theta} \mu_{\theta}(s) \\ &+ \gamma \int_{\mathcal{S}} \Big[ \nabla_a p(s' \mid s,a)\big|_{a=\mu_{\theta}(s)} \nabla_{\theta} \mu_{\theta}(s) \, V^{\mu}(s') \\ &\quad + p(s' \mid s,\mu_{\theta}(s)) \nabla_{\theta} V^{\mu}(s') \Big] \, ds'. \end{aligned}

4.2 代入性能函数的梯度

通常,性能函数J(\theta)定义为初始状态分布下的期望回报:

J(\theta) = \int_{\mathcal{S}} p_0(s) \, V^{\mu}(s) \, ds

因此,

\nabla_{\theta} J(\theta) = \int_{\mathcal{S}} p_0(s) \, \nabla_{\theta} V^{\mu}(s) \, ds

4.3 将递归式转化为关于f(s) = \nabla_{\theta} V^{\mu}(s)的线性方程

定义 f(s) = \nabla_{\theta} V^{\mu}(s),则递归式可重写为:

\begin{aligned} f(s) = &\ \nabla_{\theta} \mu_{\theta}(s) \cdot \Big[ \nabla_a r(s,a)\big|_{a=\mu_{\theta}(s)} \\ &+ \gamma \int_{\mathcal{S}} \nabla_a p(s' \mid s,a)\big|_{a=\mu_{\theta}(s)} \, V^{\mu}(s') \, ds' \Big] \\ &+ \gamma \int_{\mathcal{S}} p(s' \mid s,\mu_{\theta}(s)) \, f(s') \, ds'. \end{aligned}

4.4 识别括号内项与Q函数梯度的关系

注意到Q^{\mu}(s,a)满足贝尔曼方程:

\displaystyle Q^{\mu}(s,a) = r(s,a) + \gamma \int_{\mathcal{S}} p(s' \mid s,a) \, V^{\mu}(s') \, ds'

a求梯度:

\displaystyle \nabla_a Q^{\mu}(s,a) = \nabla_a r(s,a) + \gamma \int_{\mathcal{S}} \nabla_a p(s' \mid s,a) \, V^{\mu}(s') \, ds' + \gamma \int_{\mathcal{S}} p(s' \mid s,a) \, \nabla_a V^{\mu}(s') \, ds'

由于V^{\mu}(s')与当前动作a无关,\nabla_a V^{\mu}(s') = 0,因此第三项为零。

于是:

\nabla_a Q^{\mu}(s,a) = \nabla_a r(s,a) + \gamma \int_{\mathcal{S}} \nabla_a p(s' \mid s,a) \, V^{\mu}(s') \, ds'

代入a = \mu_{\theta}(s),即得:

\displaystyle \nabla_a Q^{\mu}(s,a)\big|_{a=\mu_{\theta}(s)} = \nabla_a r(s,a)\big|_{a=\mu_{\theta}(s)} + \gamma \int_{\mathcal{S}} \nabla_a p(s' \mid s,a)\big|_{a=\mu_{\theta}(s)} \, V^{\mu}(s') \, ds'

这正是上一步中括号内的项。

4.5 简化递归式

将上述结果代回f(s)的表达式,得到简洁的递归形式:

f(s) = \nabla_{\theta} \mu_{\theta}(s) \cdot \nabla_a Q^{\mu}(s,a)\big|_{a=\mu_{\theta}(s)} + \gamma \int_{\mathcal{S}} p(s' \mid s,\mu_{\theta}(s)) \, f(s') \, ds'

这是一个关于f(s)的贝尔曼方程形式的递归。

进一步建立递归方程。

从之前的推导,我们得到了关于\nabla_\theta V^\mu(s)的递归关系:

\nabla_\theta V^\mu(s) = \underbrace{\nabla_\theta \mu_\theta(s) \cdot \nabla_a Q^\mu(s,a)\big|_{a=\mu_\theta(s)}}_{g(s)} + \gamma \int_{\mathcal{S}} p(s'|s,\mu_\theta(s)) \, \nabla_\theta V^\mu(s') \, ds' \ \ \ \ \ \ \ \ \ \text{(1)}

因为f(s) = \nabla_\theta V^\mu(s),则可写为:

f(s) = g(s) + \gamma (P f)(s)

其中P是转移算子:(P f)(s) = \int p(s'|s,\mu_\theta(s)) f(s') ds'

4.6 递归展开为无穷级数

将 (1) 反复代入自身,可以展开f(s)为一个无穷级数:

\begin{aligned} f(s) &= g(s) + \gamma \int p(s_1|s,\mu) \, f(s_1) ds_1 \\ &= g(s) + \gamma \int p(s_1|s,\mu) \left[ g(s_1) + \gamma \int p(s_2|s_1,\mu) f(s_2) ds_2 \right] ds_1 \\ &= g(s) + \gamma \int p(s_1|s,\mu) g(s_1) ds_1 + \gamma^2 \int p(s_1|s,\mu) \int p(s_2|s_1,\mu) f(s_2) ds_2 ds_1 \\ &= \sum_{t=0}^{\infty} \gamma^t \int p_\mu(s \to s_t, t) \, g(s_t) \, ds_t \end{aligned}

其中:

- p_\mu(s \to s_t, 0) = \delta_{s}(s_t)(狄拉克函数,表示从s出发经过0步到达自身);

- 对于t \ge 1p_\mu(s \to s_t, t) = \int \cdots \int p(s_1|s,\mu) p(s_2|s_1,\mu) \cdots p(s_t|s_{t-1},\mu) \, ds_1 \cdots ds_{t-1}是从s出发遵循策略\mu恰好t步到达s_t的概率密度。

4.7 代入性能梯度

性能函数J(\theta) = \int p_0(s) V^\mu(s) ds,因此:

\nabla_\theta J(\theta) = \int p_0(s) f(s) ds

f(s)的展开式代入:

\displaystyle \nabla_\theta J(\theta) = \int p_0(s) \sum_{t=0}^{\infty} \gamma^t \int p_\mu(s \to s_t, t) \, g(s_t) \, ds_t \, ds

交换积分与求和的顺序(在正则性条件下允许):

\displaystyle \nabla_\theta J(\theta) = \sum_{t=0}^{\infty} \gamma^t \int \int p_0(s) p_\mu(s \to s_t, t) \, g(s_t) \, ds_t \, ds

进一步交换积分次序(先对s积分,再对s_t积分):

\displaystyle \nabla_\theta J(\theta) = \sum_{t=0}^{\infty} \gamma^t \int \left[ \int p_0(s) p_\mu(s \to s_t, t) \, ds \right] g(s_t) \, ds_t

4.8 引入折扣状态分布

定义从初始状态分布出发,遵循策略μ,经过t步到达状态s的概率密度为:

\displaystyle \rho_t^\mu(s) = \int p_0(s_0) p_\mu(s_0 \to s, t) \, ds_0

则上述表达式变为:

\displaystyle \nabla_\theta J(\theta) = \sum_{t=0}^{\infty} \gamma^t \int \rho_t^\mu(s) \, g(s) \, ds

再将求和与积分交换,得到:

\displaystyle \nabla_\theta J(\theta) = \int \left[ \sum_{t=0}^{\infty} \gamma^t \rho_t^\mu(s) \right] g(s) \, ds

定义 折扣状态分布:

\displaystyle \rho^\mu(s) = \sum_{t=0}^{\infty} \gamma^t \rho_t^\mu(s)

它衡量了在策略μ下,从初始状态分布出发,按折扣累计的访问频率。

4.9 最终形式

g(s) = \nabla_\theta \mu_\theta(s) \cdot \nabla_a Q^\mu(s,a)\big|_{a=\mu_\theta(s)}代回:

\nabla_\theta J(\theta) = \int \rho^\mu(s) \, \nabla_\theta \mu_\theta(s) \, \nabla_a Q^\mu(s,a)\big|_{a=\mu_\theta(s)} \, ds

这正是确定性策略梯度定理的标准形式。

5 推理总结

通过完整的推导,可以澄清和梳理以下关键点。

5.1 为什么像链式法则

最终得到的\nabla_\theta \mu_\theta(s) \nabla_a Q^{\mu}(s, a)在形式上确实像一个简单的链式法则。

但是,这个简洁的表达式是经过完整的贝尔曼方程展开和递归整合后才得到的。它已经隐含地包含了Q^{\mu}\theta的所有直接和间接依赖。

5.2 DPG证明核心

DPG定理的证明核心在于正确处理价值函数的递归依赖关系。

它通过展开贝尔曼方程,将隐藏在 Q^{\mu}函数内部的、由未来策略关联的参数依赖显式地表达出来,然后通过递归和积分,最终将所有关联归并到一个关于状态分布的期望中 。

这个推导过程奠定了DDPG、TD3等学习算法的理论基础。

reference

---

Deterministic Policy Gradient Theorem Proof

https://math.stackexchange.com/questions/4351768/deterministic-policy-gradient-theorem-proof

确定性策略梯度DPG的探索和学习

https://blog.csdn.net/liliang199/article/details/158418509

Deterministic Policy Gradient Algorithms(DPG)

https://proceedings.mlr.press/v32/silver14.pdf

Continuous control with deep reinforcement learning(DDPG)

https://arxiv.org/abs/1509.02971

深度确定性策略梯度DDPG的探索和学习

https://blog.csdn.net/liliang199/article/details/158392780

Deep deterministic policy gradient algorithm: A systematic review

https://www.cell.com/heliyon/fulltext/S2405-8440(24)06728-8

Expected Policy Gradients for Reinforcement Learning

https://arxiv.org/abs/1801.03326

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐