You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

斯坦福CS231强化学习:策略梯度中该期望的梯度为何难以求解?

为什么策略梯度中的$\nabla_\theta J(\theta)$积分难以直接处理?

首先先回顾一下你提到的斯坦福CS231强化学习课程里策略梯度的核心公式:

\begin{align} 
\tau &= (s_0, a_0, r_0, s_1, a_1, r_1, ...) \\
J(\theta)&=\mathbb{E}_\tau [r(\tau)] \\
&=\int_\tau r(\tau) p(\tau;\theta)d\tau \\
\nabla_\theta J(\theta) &= \int_\tau r(\tau)\nabla_\theta p(\tau;\theta)d\tau 
\end{align}

这个积分之所以难处理,主要有三个核心原因:

  • 轨迹空间的维度爆炸问题:
    轨迹$\tau$是由一系列状态、动作、奖励组成的序列,在大多数强化学习场景中(比如持续型任务),轨迹长度是无限的;就算是有限步任务,若状态或动作是连续空间,整个轨迹空间的维度也会高到离谱。直接对这样的无限/高维空间做积分,无论是解析求解还是数值计算,都是完全不可行的——你根本没办法遍历所有可能的轨迹。

  • 无法获取或计算完整的轨迹分布$p(\tau;\theta)$:
    轨迹的概率分布$p(\tau;\theta)$是由策略$\pi_\theta(a|s)$和环境的状态转移分布$p(s_{t+1}|s_t,a_t)$共同决定的。很多时候我们根本不知道环境的转移模型(比如玩Atari游戏、控制真实机器人);就算知道,计算一条长轨迹的概率需要把每一步的状态转移概率和动作选择概率相乘,计算量随轨迹长度指数增长,更别说对这个复杂分布做积分了。

  • 梯度项与积分的耦合难以拆解:
    直接计算$\nabla_\theta p(\tau;\theta)$再和$r(\tau)$相乘积分,需要对每一条可能的轨迹都计算梯度并加权求和,但轨迹的数量是天文数字,不可能枚举。而且$p(\tau;\theta)$本身是乘积形式,求导后得到的表达式会包含大量交叉项,没有办法找到解析积分的闭式解。

这也是为什么策略梯度方法的关键改进是把这个积分转化为无偏采样估计——通过利用$\nabla_\theta \log p(\tau;\theta) = \frac{\nabla_\theta p(\tau;\theta)}{p(\tau;\theta)}$,可以把梯度重写为$\mathbb{E}\tau [r(\tau) \nabla\theta \log p(\tau;\theta)]$,这样我们就可以通过采样少量轨迹来近似计算这个期望,完全避开了直接处理高维积分的问题。

内容的提问来源于stack exchange,提问作者eric2323223

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:22:40