强化学习(3)策略梯度
让智能体直接学习如何行动,而不是间接学习状态或动作的价值。
简单来说,策略梯度的用处就是直接优化智能体的行为(策略),以最大化长期回报。
注意与TD Learning的关系
策略梯度(Policy Gradient)的关键作用
策略梯度方法主要通过一个被称为 策略函数(Policy Function)的神经网络来参数化智能体的行为 π(a∣s;θ)\pi(a|s; \theta)π(a∣s;θ),然后使用梯度上升来调整参数 θ\thetaθ,使智能体更有可能做出高回报的动作。
1. 核心作用:直接优化行为
- 直接学习策略 π\piπ: 策略梯度方法绕过了价值函数的估计(尽管一些变体也会用到价值函数),直接计算并更新策略 π\piπ 的参数 θ\thetaθ。
- 目标函数(Objective): 它的目标函数是期望回报(Expected Return) J(θ)=Eπθ[Gt]J(\theta) = \mathbb{E}_{\pi_\theta} [G_t]J(θ)=Eπθ[Gt]。通过计算这个目标函数相对于 θ\thetaθ 的梯度 ∇J(θ)\nabla J(\theta)∇J(θ),智能体可以知道如何微调其行为以获得更高的分数。
2. 适用于连续动作空间
这是策略梯度相对于传统 Q-Learning 或 DQN 的一个巨大优势:
- Q-Learning 的局限性: 基于价值的方法(如 Q-Learning)在连续动作空间中会非常困难。它们必须计算 maxaQ(s,a)\max_a Q(s, a)maxaQ(s,a),这意味着必须遍历无限个动作来找到 Q 值最大的那个,这是不可行的。
- 策略梯度的优势: 策略梯度可以直接输出一个连续的动作(或动作的概率分布的参数,如均值和方差)。它不需要显式地最大化 Q 值,而是直接通过梯度上升来优化策略,完美解决了连续控制问题。
3. 处理随机策略
策略梯度天然适用于学习随机策略(Stochastic Policy) π(a∣s)\pi(a|s)π(a∣s),这意味着在同一个状态 sss 下,它会输出一个动作的概率分布。
- 为什么需要随机性? 在许多复杂的或部分可观察的环境中,随机性是必需的。例如,两个动作 a1a_1a1 和 a2a_2a2 的效果可能非常接近,随机策略可以保持一定的探索性,防止智能体被困在局部最优解中。
- 避免局部最优: 策略梯度通过随机性鼓励探索,这比基于 ϵ\epsilonϵ-greedy 机制(如 DQN)的探索方式更自然、更有效。
4. 克服部分可观察性(POMDPs)
在部分可观察的马尔可夫决策过程(POMDP)中,智能体无法得知环境的完整状态。
- DQN 的问题: 基于价值的方法在这种情况下容易失败,因为 Q(s,a)Q(s, a)Q(s,a) 的估计是基于不完整的状态信息 sss 的。
- 策略梯度的优势: 策略可以直接是一个从观测到动作的映射。如果策略使用循环神经网络(RNN/LSTM),它能够捕捉历史信息,从而在部分可观察的环境中做出更鲁棒的决策。
总结:策略梯度 vs. 价值函数
特性 | 策略梯度方法(如 REINFORCE, A2C, PPO) | 价值函数方法(如 Q-Learning, DQN) |
---|---|---|
学习目标 | 直接学习策略 π(a∣s)\pi(a|s)π(a∣s),最大化预期回报 | 间接学习价值函数 Q(s,a)Q(s, a)Q(s,a),最优策略从 Q 值中导出。 |
动作空间 | 适用于连续和离散动作空间。 | 主要适用于离散动作空间。 |
策略类型 | 天然支持随机策略。 | 通常支持确定性策略,通过 ϵ\epsilonϵ-greedy 引入随机性。 |
核心挑战 | 梯度估计的方差(Variance)较大,训练需要更多样本。 | 训练可能不稳定(尤其是在函数近似时),存在目标追踪问题。 |