调整策略 πθ(a∣s) 的参数 (parameter) θ 的目标是使智能体表现更佳,具体来说,是最大化预期总回报。一个目标函数 J(θ) 表示这种预期回报,通常定义为自某个初始状态分布开始的预期回报。最终目的是找到能够最大化 J(θ) 的参数 θ。
如何实现这种最大化呢?如果目标函数 J(θ) 简单,我们可以直接求解最大值。但在这里,J(θ) 复杂地依赖于策略与环境动态在潜在长序列的状态、动作和奖励中的相互影响。优化这类函数的常见方法是梯度上升。我们希望沿着使 J(θ) 增长最快的方向更新参数 θ:
θnew←θold+α∇θJ(θ)
这里,α 是学习率,∇θJ(θ) 是目标函数相对于策略参数的梯度。难题在于计算这个梯度,即 ∇θJ(θ)。改变策略参数 θ 如何影响预期的未来总回报呢?考虑到这个回报取决于访问的状态和采取的动作序列,而这些又依赖于 θ。
这正是策略梯度定理发挥作用的地方。它提供了一个重要的视角和一种实用的方法来计算或估计这个梯度,而无需了解环境的动态(例如状态转移概率)。该定理为梯度 ∇θJ(θ) 建立了一个解析表达式,将其直接与策略 πθ(a∣s) 以及采取动作所关联的值联系起来。
尽管完整的推导涉及一些微积分,但其核心结果(一种常见形式)告诉我们,梯度与一个期望成比例:
∇θJ(θ)∝Eπθ[∇θlogπθ(a∣s)⋅Gt]
让我们分解期望 Eπθ[⋅] 内部的组成部分,这个期望是在遵循当前策略 πθ 产生的轨迹上计算的:
- Gt: 这是在给定回合中从时间步 t 开始的总回报(折扣奖励之和)。它表示在状态 s 采取动作 a 后在时间 t 实际获得的值。
- ∇θlogπθ(a∣s): 该项有时被称为“得分函数”。它可能看起来令人生畏,但其含义是:参数 θ 的微小变化会如何影响在状态 s 中采取动作 a 的对数概率。本质上,它指出了参数空间 (θ) 中能增加从状态 s 选择动作 a 概率的方向。
因此,策略梯度定理将整体性能 J(θ) 的梯度与一个包含两项的期望联系起来:
- 我们有多大可能调整策略以在状态 s 中采取动作 a (∇θlogπθ(a∣s))。
- 在状态 s 中采取动作 a 实际表现如何 (Gt)。
基本原理:
该定理告诉我们,为了增加预期回报,我们应该根据所采取的动作和获得的回报来调整策略参数 θ。具体来说:
- 如果在状态 s 采取动作 a 导致了高回报 Gt,则项 ∇θlogπθ(a∣s) 会乘以一个大的正数。更新会将参数 θ 推向使特定动作 a 在未来状态 s 中更可能发生的方向。
- 如果在状态 s 采取动作 a 导致了低(或负)回报 Gt,则项 ∇θlogπθ(a∣s) 会乘以一个负数(或小的正数)。更新会将参数 θ 推向相反的方向,使动作 a 在未来状态 s 中更不可能发生。
期望 Eπθ[⋅] 意味着我们将这种效果平均到所有在遵循策略 πθ 时遇到的状态-动作对上。平均而言,策略参数会调整,以增加导致良好结果的动作的概率,并降低导致不良结果的动作的概率。
这为何重要?
策略梯度定理意义重大,因为它以一种方式重新定义了梯度,我们可以利用智能体与环境交互收集的样本来估计它。我们不需要环境模型(即转移概率 p(s′,r∣s,a))。我们只需运行策略,收集轨迹(状态、动作、奖励的序列),计算每一步的 Gt 回报,计算 ∇θlogπθ(a∣s)(因为我们定义了策略 πθ,所以可以做到),然后对乘积进行平均。
该定理构成了强化学习 (reinforcement learning)(RL)算法系列的一个理论基础,其中包括我们接下来将讨论的 REINFORCE 算法。这些算法通过采样经验并基于这种梯度估计原理应用更新来直接学习策略参数。