强化学习中的策略梯度算法(Policy Gradient)原理与优化过程
字数 1621 2025-11-11 18:53:12

强化学习中的策略梯度算法(Policy Gradient)原理与优化过程

题目描述
策略梯度算法是一类直接优化策略函数的强化学习方法,其目标是通过梯度上升最大化期望累积奖励。与基于价值的方法(如Q-learning)不同,策略梯度直接学习策略的概率分布(例如选择动作的概率),适用于连续动作空间和随机策略。核心问题是如何计算策略性能的梯度并更新策略参数。

解题过程

  1. 目标函数定义
    策略梯度算法的目标是最大化期望累积奖励 \(J(\theta)\)

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

其中:

  • \(\theta\) 是策略参数(如神经网络权重);
  • \(\tau = (s_0, a_0, s_1, a_1, \dots)\) 表示一条轨迹;
  • \(R(\tau) = \sum_{t=0}^{T} \gamma^t r_t\) 是轨迹的累积折扣奖励;
  • \(\pi_\theta(a|s)\) 是参数化的策略函数(如Softmax输出动作概率)。
  1. 梯度推导
    通过对数似然技巧,将梯度转化为可计算的期望形式:

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

  • \(\nabla_\theta \log \pi_\theta(a_t|s_t)\) 是动作概率的对数梯度(评分函数);
  • \(R(\tau)\) 作为权重,高奖励轨迹的梯度更新幅度更大。
  1. 蒙特卡洛估计
    实际中通过采样 \(N\) 条轨迹近似计算梯度:

\[ \nabla_\theta J(\theta) \approx \frac{1}{N} \sum_{i=1}^N \sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t^{(i)}|s_t^{(i)}) \cdot R(\tau^{(i)}) \]

每条轨迹的梯度更新方向由累积奖励 \(R(\tau^{(i)})\) 决定。

  1. 降低方差技巧
    • 基线(Baseline):引入与动作无关的基准值 \(b(s_t)\)(如状态价值函数),避免梯度被绝对奖励值主导:

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

  • 时序差分残差:用优势函数 \(A(s_t, a_t) = Q(s_t, a_t) - V(s_t)\) 替代 \(R(\tau)\),更精确评估动作的相对价值。
  1. 策略更新
    使用梯度上升更新参数:

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

\(\alpha\) 为学习率,需谨慎选择以保证训练稳定性。

  1. 算法扩展
    • Actor-Critic框架:用价值网络(Critic)估计优势函数,策略网络(Actor)更新参数,实现更高效的梯度估计(如A2C、PPO算法)。
    • 重要性采样:允许使用旧策略的样本更新新策略(如TRPO、PPO),提高数据利用率。

关键点
策略梯度通过直接优化策略概率分布,避免了基于价值方法的贪婪动作选择问题,但依赖蒙特卡洛估计可能导致高方差。通过基线、优势函数及Actor-Critic结构可显著提升算法性能。

强化学习中的策略梯度算法(Policy Gradient)原理与优化过程 题目描述 策略梯度算法是一类直接优化策略函数的强化学习方法,其目标是通过梯度上升最大化期望累积奖励。与基于价值的方法(如Q-learning)不同,策略梯度直接学习策略的概率分布(例如选择动作的概率),适用于连续动作空间和随机策略。核心问题是如何计算策略性能的梯度并更新策略参数。 解题过程 目标函数定义 策略梯度算法的目标是最大化期望累积奖励 \( J(\theta) \): \[ J(\theta) = \mathbb{E} {\tau \sim \pi \theta} [ R(\tau) ] \] 其中: \(\theta\) 是策略参数(如神经网络权重); \(\tau = (s_ 0, a_ 0, s_ 1, a_ 1, \dots)\) 表示一条轨迹; \(R(\tau) = \sum_ {t=0}^{T} \gamma^t r_ t\) 是轨迹的累积折扣奖励; \(\pi_ \theta(a|s)\) 是参数化的策略函数(如Softmax输出动作概率)。 梯度推导 通过对数似然技巧,将梯度转化为可计算的期望形式: \[ \nabla_ \theta J(\theta) = \mathbb{E} {\tau \sim \pi \theta} \left[ \sum_ {t=0}^T \nabla_ \theta \log \pi_ \theta(a_ t|s_ t) \cdot R(\tau) \right ] \] \(\nabla_ \theta \log \pi_ \theta(a_ t|s_ t)\) 是动作概率的对数梯度(评分函数); \(R(\tau)\) 作为权重,高奖励轨迹的梯度更新幅度更大。 蒙特卡洛估计 实际中通过采样 \(N\) 条轨迹近似计算梯度: \[ \nabla_ \theta J(\theta) \approx \frac{1}{N} \sum_ {i=1}^N \sum_ {t=0}^{T} \nabla_ \theta \log \pi_ \theta(a_ t^{(i)}|s_ t^{(i)}) \cdot R(\tau^{(i)}) \] 每条轨迹的梯度更新方向由累积奖励 \(R(\tau^{(i)})\) 决定。 降低方差技巧 基线(Baseline) :引入与动作无关的基准值 \(b(s_ t)\)(如状态价值函数),避免梯度被绝对奖励值主导: \[ \nabla_ \theta J(\theta) = \mathbb{E} \left[ \sum_ {t=0}^T \nabla_ \theta \log \pi_ \theta(a_ t|s_ t) \cdot (R(\tau) - b(s_ t)) \right ] \] 时序差分残差 :用优势函数 \(A(s_ t, a_ t) = Q(s_ t, a_ t) - V(s_ t)\) 替代 \(R(\tau)\),更精确评估动作的相对价值。 策略更新 使用梯度上升更新参数: \[ \theta \leftarrow \theta + \alpha \nabla_ \theta J(\theta) \] \(\alpha\) 为学习率,需谨慎选择以保证训练稳定性。 算法扩展 Actor-Critic框架 :用价值网络(Critic)估计优势函数,策略网络(Actor)更新参数,实现更高效的梯度估计(如A2C、PPO算法)。 重要性采样 :允许使用旧策略的样本更新新策略(如TRPO、PPO),提高数据利用率。 关键点 策略梯度通过直接优化策略概率分布,避免了基于价值方法的贪婪动作选择问题,但依赖蒙特卡洛估计可能导致高方差。通过基线、优势函数及Actor-Critic结构可显著提升算法性能。