策略梯度方法是一种强化学习技术,它直接优化策略,策略是将状态映射到动作的函数。策略梯度方法不是学习价值函数(如 Q-learning)并从中推导出策略,而是调整策略参数以最大化预期累积奖励。其核心思想是计算预期奖励相对于策略参数的梯度,并沿增加该奖励的方向更新参数。 这种方法对于具有连续动作空间或难以用基于价值的方法表示的复杂策略的环境特别有用。
REINFORCE 是策略梯度算法的一个关键示例。在 REINFORCE 中,策略通常是一个神经网络,输出每个动作的概率。完成一个 episode 后,该算法通过将每个采取的动作的对数概率乘以 episode 中获得的累积奖励(折扣或未折扣)来计算梯度。 例如,在一个 agent 向左或向右移动的游戏中,网络可能会输出 70% 的“左”概率和 30% 的“右”概率。 如果 episode 产生了高奖励,则所采取动作的梯度会按该奖励进行缩放,从而使这些动作在类似状态下更有可能发生。 另一个例子是 Actor-Critic 方法,它将策略梯度与价值函数(“评论家”)相结合,通过使用评论家来基准化奖励,从而减少梯度估计中的方差。
策略梯度方法提供了灵活性,例如处理随机策略和连续动作,但它们面临着梯度估计中高方差和样本效率低等挑战。 例如,训练机器人手臂抓取物体需要精确控制关节角度(连续动作),策略梯度可以直接对这些角度进行建模。 为了解决高方差问题,使用了诸如优势估计(减去基线奖励)或信任区域方法(例如,近端策略优化)之类的技术。 这些方法约束策略更新以避免可能破坏训练的剧烈变化。 虽然在某些情况下,收敛速度比基于价值的方法慢,但它们的直接优化方法使它们成为复杂强化学习任务的支柱。