基于强化学习的策略梯度定理(Policy Gradient Theorem)的推导与应用
字数 4416 2025-12-17 04:59:41

基于强化学习的策略梯度定理(Policy Gradient Theorem)的推导与应用

题目描述
假设我们有一个强化学习环境,其中智能体通过与环境的交互来学习策略。我们使用一个参数化的策略函数 \(\pi_{\theta}(a|s)\) 来表示在状态 \(s\) 下选择动作 \(a\) 的概率,其中 \(\theta\) 是策略的参数。我们的目标是最大化期望累积回报 \(J(\theta) = \mathbb{E}_{\tau \sim \pi_{\theta}}[R(\tau)]\),其中 \(\tau\) 表示一条轨迹(状态-动作序列),\(R(\tau)\) 是轨迹的总回报。策略梯度定理提供了直接对 \(J(\theta)\) 求梯度的高效方法,避免了直接对轨迹分布求导的复杂性。请你详细解释策略梯度定理的推导过程,并说明其如何应用于 REINFORCE 等算法。


解题过程

1. 问题建模与目标函数

在强化学习中,智能体在时刻 \(t\) 观察到状态 \(s_t\),根据策略 \(\pi_{\theta}(a|s_t)\) 选择动作 \(a_t\),然后转移到新状态 \(s_{t+1}\) 并获得即时奖励 \(r_t\)。一条轨迹 \(\tau = (s_0, a_0, r_0, s_1, a_1, r_1, \dots)\) 的概率为:

\[p_{\theta}(\tau) = p(s_0) \prod_{t=0}^{T-1} \pi_{\theta}(a_t|s_t) p(s_{t+1}|s_t, a_t) \]

其中 \(p(s_0)\) 是初始状态分布,\(p(s_{t+1}|s_t, a_t)\) 是环境的状态转移概率(通常未知但不需要显式建模)。轨迹的回报 \(R(\tau) = \sum_{t=0}^{T-1} \gamma^t r_t\),其中 \(\gamma \in [0,1]\) 是折扣因子。目标函数为:

\[J(\theta) = \mathbb{E}_{\tau \sim p_{\theta}(\tau)}[R(\tau)] = \int p_{\theta}(\tau) R(\tau) d\tau \]

我们的目标是找到最优参数 \(\theta^*\) 最大化 \(J(\theta)\),常用梯度上升法更新 \(\theta\)

\[\theta \leftarrow \theta + \alpha \nabla_{\theta} J(\theta) \]

其中 \(\alpha\) 是学习率。关键在于计算梯度 \(\nabla_{\theta} J(\theta)\)

2. 直接求导的困难与策略梯度定理的动机

直接对 \(J(\theta)\) 求梯度:

\[\nabla_{\theta} J(\theta) = \nabla_{\theta} \int p_{\theta}(\tau) R(\tau) d\tau = \int \nabla_{\theta} p_{\theta}(\tau) R(\tau) d\tau \]

\(p_{\theta}(\tau)\) 依赖于环境动态 \(p(s_{t+1}|s_t, a_t)\),而该动态通常未知,导致梯度无法直接计算。策略梯度定理通过巧妙变换,消除对状态转移概率的依赖。

3. 策略梯度定理的推导

步骤1:对数导数技巧
利用恒等式 \(\nabla_{\theta} p_{\theta}(\tau) = p_{\theta}(\tau) \nabla_{\theta} \log p_{\theta}(\tau)\),将梯度改写为期望形式:

\[\nabla_{\theta} J(\theta) = \int p_{\theta}(\tau) \nabla_{\theta} \log p_{\theta}(\tau) R(\tau) d\tau = \mathbb{E}_{\tau \sim p_{\theta}(\tau)}[\nabla_{\theta} \log p_{\theta}(\tau) R(\tau)] \]

步骤2:分解轨迹概率的对数梯度
\(\log p_{\theta}(\tau)\) 的梯度:

\[\log p_{\theta}(\tau) = \log p(s_0) + \sum_{t=0}^{T-1} \left( \log \pi_{\theta}(a_t|s_t) + \log p(s_{t+1}|s_t, a_t) \right) \]

由于 \(p(s_0)\)\(p(s_{t+1}|s_t, a_t)\)\(\theta\) 无关,它们的梯度为零。因此:

\[\nabla_{\theta} \log p_{\theta}(\tau) = \sum_{t=0}^{T-1} \nabla_{\theta} \log \pi_{\theta}(a_t|s_t) \]

步骤3:代入梯度表达式
将上述结果代入梯度期望中:

\[\nabla_{\theta} J(\theta) = \mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[ \left( \sum_{t=0}^{T-1} \nabla_{\theta} \log \pi_{\theta}(a_t|s_t) \right) R(\tau) \right] \]

注意到 \(R(\tau) = \sum_{t'=0}^{T-1} \gamma^{t'} r_{t'}\),但当前时刻 \(t\) 的动作只能影响未来奖励(\(t' \geq t\)),因此可以进一步优化。

步骤4:引入折扣回报与基线(关键改进)
定义从时刻 \(t\) 开始的折扣回报 \(G_t = \sum_{k=t}^{T-1} \gamma^{k-t} r_k\)。由于动作 \(a_t\) 只影响 \(t\) 之后的奖励,可以证明(通过期望展开):

\[\nabla_{\theta} J(\theta) = \mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[ \sum_{t=0}^{T-1} \nabla_{\theta} \log \pi_{\theta}(a_t|s_t) G_t \right] \]

这就是策略梯度定理的核心形式。为减少方差,常引入基线 \(b(s_t)\)(例如状态值函数估计):

\[\nabla_{\theta} J(\theta) = \mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[ \sum_{t=0}^{T-1} \nabla_{\theta} \log \pi_{\theta}(a_t|s_t) (G_t - b(s_t)) \right] \]

基线不影响梯度无偏性(因为 \(\mathbb{E}[\nabla_{\theta} \log \pi_{\theta}(a_t|s_t) b(s_t)] = 0\)),但能显著降低方差。

4. 在 REINFORCE 算法中的应用

REINFORCE(蒙特卡洛策略梯度)直接使用策略梯度定理的采样估计:

  1. 采样轨迹:使用当前策略 \(\pi_{\theta}\) 与环境交互,收集多条轨迹 \(\tau^{(i)}\)
  2. 计算梯度估计:对每条轨迹,计算各时刻的 \(G_t^{(i)}\)(从 \(t\) 到结束的折扣回报),然后计算梯度估计:

\[ \hat{\nabla}_{\theta} J(\theta) = \frac{1}{N} \sum_{i=1}^N \sum_{t=0}^{T-1} \nabla_{\theta} \log \pi_{\theta}(a_t^{(i)}|s_t^{(i)}) G_t^{(i)} \]

  1. 参数更新\(\theta \leftarrow \theta + \alpha \hat{\nabla}_{\theta} J(\theta)\)

带基线的 REINFORCE:使用状态值函数 \(V_{\phi}(s)\) 作为基线 \(b(s_t)\),通过监督学习拟合 \(V_{\phi}(s)\)(例如用均方误差最小化 \(\sum (G_t - V_{\phi}(s_t))^2\)),然后更新策略时用 \(G_t - V_{\phi}(s_t)\) 代替 \(G_t\)

5. 扩展到优势函数与 Actor-Critic 方法

策略梯度定理自然引出优势函数 \(A(s_t, a_t) = Q(s_t, a_t) - V(s_t)\),其中 \(Q\) 是动作值函数。梯度可写为:

\[\nabla_{\theta} J(\theta) = \mathbb{E}_{\tau}\left[ \sum_{t=0}^{T-1} \nabla_{\theta} \log \pi_{\theta}(a_t|s_t) A(s_t, a_t) \right] \]

这催生了 Actor-Critic 方法

  • Critic 学习值函数 \(V(s)\)\(Q(s,a)\) 来估计优势函数。
  • Actor 根据 Critic 提供的优势更新策略参数 \(\theta\)
    这种方法结合了策略梯度(直接优化策略)和值函数逼近(降低方差),成为现代深度强化学习(如 A2C、PPO)的基础。

总结
策略梯度定理通过将对策略参数的梯度转化为对动作概率对数梯度的期望,避免了依赖未知的环境动态。其核心形式 \(\nabla_{\theta} J(\theta) = \mathbb{E}[\sum_t \nabla_{\theta} \log \pi_{\theta}(a_t|s_t) G_t]\) 提供了直接优化策略的途径。REINFORCE 算法通过蒙特卡洛采样实现该定理,而引入基线和优势函数进一步降低了方差,推动了 Actor-Critic 框架的发展。该定理是策略梯度类算法的理论基石,使得在复杂环境中学习参数化策略成为可能。

基于强化学习的策略梯度定理(Policy Gradient Theorem)的推导与应用 题目描述 假设我们有一个强化学习环境,其中智能体通过与环境的交互来学习策略。我们使用一个参数化的策略函数 \(\pi_ {\theta}(a|s)\) 来表示在状态 \(s\) 下选择动作 \(a\) 的概率,其中 \(\theta\) 是策略的参数。我们的目标是最大化期望累积回报 \(J(\theta) = \mathbb{E} {\tau \sim \pi {\theta}}[ R(\tau) ]\),其中 \(\tau\) 表示一条轨迹(状态-动作序列),\(R(\tau)\) 是轨迹的总回报。策略梯度定理提供了直接对 \(J(\theta)\) 求梯度的高效方法,避免了直接对轨迹分布求导的复杂性。请你详细解释策略梯度定理的推导过程,并说明其如何应用于 REINFORCE 等算法。 解题过程 1. 问题建模与目标函数 在强化学习中,智能体在时刻 \(t\) 观察到状态 \(s_ t\),根据策略 \(\pi_ {\theta}(a|s_ t)\) 选择动作 \(a_ t\),然后转移到新状态 \(s_ {t+1}\) 并获得即时奖励 \(r_ t\)。一条轨迹 \(\tau = (s_ 0, a_ 0, r_ 0, s_ 1, a_ 1, r_ 1, \dots)\) 的概率为: \[ p_ {\theta}(\tau) = p(s_ 0) \prod_ {t=0}^{T-1} \pi_ {\theta}(a_ t|s_ t) p(s_ {t+1}|s_ t, a_ t) \] 其中 \(p(s_ 0)\) 是初始状态分布,\(p(s_ {t+1}|s_ t, a_ t)\) 是环境的状态转移概率(通常未知但不需要显式建模)。轨迹的回报 \(R(\tau) = \sum_ {t=0}^{T-1} \gamma^t r_ t\),其中 \(\gamma \in [ 0,1 ]\) 是折扣因子。目标函数为: \[ J(\theta) = \mathbb{E} {\tau \sim p {\theta}(\tau)}[ R(\tau)] = \int p_ {\theta}(\tau) R(\tau) d\tau \] 我们的目标是找到最优参数 \(\theta^* \) 最大化 \(J(\theta)\),常用梯度上升法更新 \(\theta\): \[ \theta \leftarrow \theta + \alpha \nabla_ {\theta} J(\theta) \] 其中 \(\alpha\) 是学习率。关键在于计算梯度 \(\nabla_ {\theta} J(\theta)\)。 2. 直接求导的困难与策略梯度定理的动机 直接对 \(J(\theta)\) 求梯度: \[ \nabla_ {\theta} J(\theta) = \nabla_ {\theta} \int p_ {\theta}(\tau) R(\tau) d\tau = \int \nabla_ {\theta} p_ {\theta}(\tau) R(\tau) d\tau \] 但 \(p_ {\theta}(\tau)\) 依赖于环境动态 \(p(s_ {t+1}|s_ t, a_ t)\),而该动态通常未知,导致梯度无法直接计算。策略梯度定理通过巧妙变换,消除对状态转移概率的依赖。 3. 策略梯度定理的推导 步骤1:对数导数技巧 利用恒等式 \(\nabla_ {\theta} p_ {\theta}(\tau) = p_ {\theta}(\tau) \nabla_ {\theta} \log p_ {\theta}(\tau)\),将梯度改写为期望形式: \[ \nabla_ {\theta} J(\theta) = \int p_ {\theta}(\tau) \nabla_ {\theta} \log p_ {\theta}(\tau) R(\tau) d\tau = \mathbb{E} {\tau \sim p {\theta}(\tau)}[ \nabla_ {\theta} \log p_ {\theta}(\tau) R(\tau) ] \] 步骤2:分解轨迹概率的对数梯度 取 \(\log p_ {\theta}(\tau)\) 的梯度: \[ \log p_ {\theta}(\tau) = \log p(s_ 0) + \sum_ {t=0}^{T-1} \left( \log \pi_ {\theta}(a_ t|s_ t) + \log p(s_ {t+1}|s_ t, a_ t) \right) \] 由于 \(p(s_ 0)\) 和 \(p(s_ {t+1}|s_ t, a_ t)\) 与 \(\theta\) 无关,它们的梯度为零。因此: \[ \nabla_ {\theta} \log p_ {\theta}(\tau) = \sum_ {t=0}^{T-1} \nabla_ {\theta} \log \pi_ {\theta}(a_ t|s_ t) \] 步骤3:代入梯度表达式 将上述结果代入梯度期望中: \[ \nabla_ {\theta} J(\theta) = \mathbb{E} {\tau \sim p {\theta}(\tau)}\left[ \left( \sum_ {t=0}^{T-1} \nabla_ {\theta} \log \pi_ {\theta}(a_ t|s_ t) \right) R(\tau) \right ] \] 注意到 \(R(\tau) = \sum_ {t'=0}^{T-1} \gamma^{t'} r_ {t'}\),但当前时刻 \(t\) 的动作只能影响未来奖励(\(t' \geq t\)),因此可以进一步优化。 步骤4:引入折扣回报与基线(关键改进) 定义从时刻 \(t\) 开始的折扣回报 \(G_ t = \sum_ {k=t}^{T-1} \gamma^{k-t} r_ k\)。由于动作 \(a_ t\) 只影响 \(t\) 之后的奖励,可以证明(通过期望展开): \[ \nabla_ {\theta} J(\theta) = \mathbb{E} {\tau \sim p {\theta}(\tau)}\left[ \sum_ {t=0}^{T-1} \nabla_ {\theta} \log \pi_ {\theta}(a_ t|s_ t) G_ t \right ] \] 这就是策略梯度定理的核心形式。为减少方差,常引入基线 \(b(s_ t)\)(例如状态值函数估计): \[ \nabla_ {\theta} J(\theta) = \mathbb{E} {\tau \sim p {\theta}(\tau)}\left[ \sum_ {t=0}^{T-1} \nabla_ {\theta} \log \pi_ {\theta}(a_ t|s_ t) (G_ t - b(s_ t)) \right ] \] 基线不影响梯度无偏性(因为 \(\mathbb{E}[ \nabla_ {\theta} \log \pi_ {\theta}(a_ t|s_ t) b(s_ t) ] = 0\)),但能显著降低方差。 4. 在 REINFORCE 算法中的应用 REINFORCE(蒙特卡洛策略梯度)直接使用策略梯度定理的采样估计: 采样轨迹 :使用当前策略 \(\pi_ {\theta}\) 与环境交互,收集多条轨迹 \(\tau^{(i)}\)。 计算梯度估计 :对每条轨迹,计算各时刻的 \(G_ t^{(i)}\)(从 \(t\) 到结束的折扣回报),然后计算梯度估计: \[ \hat{\nabla} {\theta} J(\theta) = \frac{1}{N} \sum {i=1}^N \sum_ {t=0}^{T-1} \nabla_ {\theta} \log \pi_ {\theta}(a_ t^{(i)}|s_ t^{(i)}) G_ t^{(i)} \] 参数更新 :\(\theta \leftarrow \theta + \alpha \hat{\nabla}_ {\theta} J(\theta)\)。 带基线的 REINFORCE :使用状态值函数 \(V_ {\phi}(s)\) 作为基线 \(b(s_ t)\),通过监督学习拟合 \(V_ {\phi}(s)\)(例如用均方误差最小化 \(\sum (G_ t - V_ {\phi}(s_ t))^2\)),然后更新策略时用 \(G_ t - V_ {\phi}(s_ t)\) 代替 \(G_ t\)。 5. 扩展到优势函数与 Actor-Critic 方法 策略梯度定理自然引出优势函数 \(A(s_ t, a_ t) = Q(s_ t, a_ t) - V(s_ t)\),其中 \(Q\) 是动作值函数。梯度可写为: \[ \nabla_ {\theta} J(\theta) = \mathbb{E} {\tau}\left[ \sum {t=0}^{T-1} \nabla_ {\theta} \log \pi_ {\theta}(a_ t|s_ t) A(s_ t, a_ t) \right ] \] 这催生了 Actor-Critic 方法 : Critic 学习值函数 \(V(s)\) 或 \(Q(s,a)\) 来估计优势函数。 Actor 根据 Critic 提供的优势更新策略参数 \(\theta\)。 这种方法结合了策略梯度(直接优化策略)和值函数逼近(降低方差),成为现代深度强化学习(如 A2C、PPO)的基础。 总结 策略梯度定理通过将对策略参数的梯度转化为对动作概率对数梯度的期望,避免了依赖未知的环境动态。其核心形式 \(\nabla_ {\theta} J(\theta) = \mathbb{E}[ \sum_ t \nabla_ {\theta} \log \pi_ {\theta}(a_ t|s_ t) G_ t ]\) 提供了直接优化策略的途径。REINFORCE 算法通过蒙特卡洛采样实现该定理,而引入基线和优势函数进一步降低了方差,推动了 Actor-Critic 框架的发展。该定理是策略梯度类算法的理论基石,使得在复杂环境中学习参数化策略成为可能。