策略梯度方法#
在策略梯度方法中,策略被以一种参数函数的形式呈现。
π(a∣s,θ)
其中 θ∈Rm 是参数向量。
- 该函数可以是一个神经网络,其输入为状态 s,输出是采取每个动作的概率,参数为 θ。
- 当状态空间较大时,表格表示法(tabular representation)在存储和泛化方面的效率较低,函数近似能有效解决这一问题。
- 函数表示通常也写作 π(a,s,θ)、πθ(a∣s) 或 πθ(a,s)。
基本思想#
设定一个目标函数(例如 J(θ))来评估策略的表现。
使用梯度上升的方法来更新参数,寻找最优策略:
θt+1=θt+α∇θJ(θt)
目标函数 (Metrics)#
1. 状态价值的加权平均#
vˉπ=s∈S∑d(s)vπ(s)
- vˉπ 是一个加权平均值。
- d(s)≥0 是状态 s 的权重,可以理解为状态出现的概率分布。
- 期望形式表示为:vˉπ=E[vπ(S)]。
其向量形式为:
vˉπ=dTvπ
其中 vπ∈R∣S∣ 且 d∈R∣S∣。
在幕式(Episodic)任务中,目标函数可以定义为从初始状态出发的期望回报:
J(θ)=E[t=0∑∞γtRt+1]=s∈S∑d0(s)vπ(s)
关于权重 d(s) 的设定:
- 与策略 π 无关: 在幕式任务中,通常将 d 设定为初始状态分布 d0。例如,认为所有状态同等重要时 d0(s)=1/∣S∣,或者只关心特定初始状态 s0 时 d0(s0)=1。
- 与策略 π 有关: 在持续性(Continuing)任务中,d 依赖于策略 π,通常选择稳态分布 dπ。稳态分布满足 dπTPπ=dπT,其中 Pπ 是状态转移矩阵。
2. 平均单步奖励 (Average Reward)#
rˉπ=s∈S∑dπ(s)rπ(s)=E[rπ(S)]
其中状态 S∼dπ。状态 s 下的期望即时奖励为:
rπ(s)=a∈A∑π(a∣s)r(s,a)
- 权重 dπ 是平稳分布。
- rˉπ 是单步即时奖励的加权平均值。
平均奖励也可以定义为长期奖励的极限形式:
n→∞limn1E[k=1∑nRt+k∣St=s0]=s∈S∑dπ(s)rπ(s)=rˉπ
此时初始状态 s0 的影响在极限下被消除,两种定义方式等价。
指标对比:
- 上述指标均依赖于策略 π,因此本质上都是参数 θ 的函数。
- 直观来看,rˉπ 更加关注即时奖励,而 vˉπ 则更关注长期回报。
- 在包含折扣因子 γ 的情况下,二者存在数学联系:rˉπ=(1−γ)vˉπ。
策略梯度定理 (Gradients of the Metrics)#
无论目标函数是 vˉπ 还是 rˉπ,其梯度都可以统一表示为以下形式(成比例):
∇θJ(θ)∝s∈S∑η(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)
其中 η 是状态的分布权重。
梯度的推导与期望转化#
1. 核心目标: 将复杂的“状态-动作双重求和”形式,转化为允许通过数据采样来近似计算的“数学期望”形式。
2. 对数求导技巧 (Log-Derivative Trick): 根据微积分法则,对策略函数取对数并求梯度:
∇θlnπ(a∣s,θ)=π(a∣s,θ)1∇θπ(a∣s,θ)
移项后得到:
∇θπ(a∣s,θ)=π(a∣s,θ)∇θlnπ(a∣s,θ)
这一步“无中生有”地构造出了概率项 π(a∣s,θ),是转化为期望定义的先决条件。
3. 公式代入: 将上述结果代入梯度公式:
∇θJ(θ)∝s∈S∑η(s)a∈A∑π(a∣s,θ)∇θlnπ(a∣s,θ)qπ(s,a)
4. 转化为数学期望: 上式包含两层概率加权求和(外层基于状态分布 η(s),内层基于动作概率 π),等价于对随机变量 S 和 A 的期望:
∇θJ(θ)=E[∇θlnπ(A∣S,θ)qπ(S,A)]
5. 实际意义: 完成转化后,算法无需遍历所有状态和动作。智能体只需在环境中依据当前策略采样,收集到的轨迹数据自然符合该期望分布,从而可以通过单步采样来近似计算梯度。
如果利用采样来近似梯度,单步更新方向为:
∇θJ≈∇θlnπ(a∣s,θ)qπ(s,a)
策略函数的参数化 (Softmax)#
为了保证概率性质 π(a∣s,θ)>0 且概率和为 1,通常使用 Softmax 函数将实数偏好映射为概率。
对于向量 x=[x1,…,xn]T:
zi=∑j=1nexjexi
其中 zi∈(0,1) 且 ∑i=1nzi=1。
应用到策略函数中:
π(a∣s,θ)=∑a′∈Aeh(s,a′,θ)eh(s,a,θ)
其中 h(s,a,θ) 是动作偏好函数,可由神经网络参数化。
REINFORCE 与策略优化算法#
利用真实梯度最大化目标函数:
θt+1=θt+α∇θJ(θ)=θt+αE[∇θlnπ(A∣S,θt)qπ(S,A)]
在实际应用中,使用随机梯度进行更新:
θt+1=θt+α∇θlnπ(at∣st,θt)qπ(st,at)
由于真实的动作价值函数 qπ 是未知的,需要对其进行近似估算:
- REINFORCE 算法: 使用蒙特卡洛方法,将完整的轨迹回报 Gt 作为 qπ(st,at) 的无偏估计进行梯度更新。
- Actor-Critic 算法: 结合时间差分(TD)算法,训练一个价值函数网络来近似估算 qπ(st,at)。
结合对数求导公式的反向展开 ∇θlnπ=π∇θπ,参数更新规则可以直观地改写为:
θt+1=θt+α∇θlnπ(at∣st,θt)qt(st,at)=θt+αβt(π(at∣st,θt)qt(st,at))∇θπ(at∣st,θt)
即:
θt+1=θt+αβt∇θπ(at∣st,θt)
这里的系数 βt 能够很好地平衡探索与利用:它与回报 qt 成正比(鼓励高回报动作),与动作概率 π 成反比(赋予罕见动作更大的更新步长,从而鼓励探索)。