Policy Gradient
策略梯度算法也算是参数化模型的一种方法,在前面一章中,我们对参数化值函数估计而非对策略本身参数化,实际上我们也可以直接对策略进行参数化估计,这一章我们默认策略为随机性策略。
对于随机策略 πθ(a∣s)=P(a∣s;θ),直觉上我们应该
- 降低带来较低价值/奖励的动作出现的概率
- 提高带来较高价值/奖励的动作出现的概率
Policy Gradient 算法推导
目标函数 J(θ) 定义为从状态分布 s∼d(s)(初始状态的分布)出发,遵循策略 πθ 的期望累积奖励:
J(θ)=Eτ∼πθ[t=0∑∞γtr(st,at)]
其中 τ=(s0,a0,s1,a1,…) 表示轨迹,γ∈[0,1) 是折扣因子。和以前不同的是,现在对 J(θ) 求导的过程中参数 θ 不仅出现在期望中,还出现在下标中,因此需要注意一下
2. 策略梯度定理
根据策略梯度定理,目标函数的梯度可表示为:
\begin{aligned}
J(\theta) &= \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^\infty \gamma^t r(s_t, a_t) \right] \\
&= \sum_{s \in \mathcal{S}}d(s)\su\mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^\infty \gamma^t r(s_t, a_t) \right]
\end{aligned}
∇J(θ)==Eτ∼πθ[t=0∑∞∇logπθ(at∣st)⋅Qπθ(st,at)]
其中 Qπθ(s,a) 是动作值函数,定义为:
Qπθ(s,a)=Eτ∼πθ[k=0∑∞γkrt+k∣st=s,at=a]
3. 期望形式的简化
由于状态分布 s∼d(s) 和动作分布 a∼πθ(a∣s),梯度可简化为:
∇J(θ)=Es∼d(s),a∼πθ[∇logπθ(a∣s)⋅Qπθ(s,a)]
这里 d(s) 是状态的平稳分布,由策略 πθ 和环境动态决定
4. 蒙特卡洛估计
实际计算中,通过采样轨迹 τ 近似期望值:
- 采样动作:a∼πθ(a∣s)
- 计算累积奖励:Gt=∑k=0∞γkrt+k
- 梯度更新:
∇J(θ)≈N1i=1∑N∇logπθ(a(i)∣s(i))⋅Gt(i)
其中 N 是采样次数,Gt(i) 是第 i 条轨迹的累积奖励。
5. 算法步骤
- 初始化:参数 θ,学习率 α。
- 循环:
a. 采样轨迹 τ:根据当前策略 πθ 与环境交互。
b. 计算累积奖励 Gt。
c. 更新参数:θ←θ+α⋅∇logπθ(at∣st)⋅Gt
(使用梯度上升法最大化 J(θ))
关键引用
- 策略梯度定理的期望形式参考了。
- 状态分布与动作值函数的定义参考了。
- 蒙特卡洛估计方法参考了。
Policy Gradient 算法推导
1. 目标函数定义
目标函数 J(θ) 是策略 πθ 的期望累积折扣奖励:
J(θ)=Eτ∼πθ[t=0∑∞γtr(st,at)]
其中 τ=(s0,a0,s1,a1,…) 表示轨迹,γ 是折扣因子。
2. 梯度表达式推导
对 J(θ) 求梯度:
∇θJ(θ)=∇θEτ∼πθ[t=0∑∞γtr(st,at)]
将期望展开为轨迹概率的积分:
∇θJ(θ)=∫τP(τ∣θ)⋅(t=0∑∞γtr(st,at))⋅∇θlogP(τ∣θ)dτ
其中 ∇θlogP(τ∣θ) 是关键项。
3. 轨迹概率的分解
轨迹 τ 的概率可分解为:
P(τ∣θ)=d(s0)t=0∏∞πθ(at∣st)P(st+1∣st,at)
取对数后:
logP(τ∣θ)=logd(s0)+t=0∑∞logπθ(at∣st)+t=0∑∞logP(st+1∣st,at)
对 θ 求梯度时,与 θ 无关的项(如 d(s0) 和 P(st+1∣st,at))消失:
∇θlogP(τ∣θ)=t=0∑∞∇θlogπθ(at∣st)
4. 代入梯度表达式
将梯度表达式代入:
∇θJ(θ)=Eτ∼πθ[(t=0∑∞γtr(st,at))⋅(t=0∑∞∇θlogπθ(at∣st))]
交换求和顺序,利用因果性(当前动作不影响过去奖励):
∇θJ(θ)=Eτ∼πθ[t=0∑∞∇θlogπθ(at∣st)⋅(k=t∑∞γkr(sk,ak))]
5. 引入折扣因子调整
将 ∑k=t∞γkr(sk,ak) 重写为 γt∑k=0∞γkr(st+k,at+k),即:
∇θJ(θ)=Eτ∼πθ[t=0∑∞γt∇θlogπθ(at∣st)⋅(k=0∑∞γkr(st+k,at+k))]
定义从时刻 t 开始的折扣累积奖励:
Gt=k=0∑∞γkr(st+k,at+k)
最终梯度表达式为:
∇θJ(θ)=Eτ∼πθ[t=0∑∞γtGt∇θlogπθ(at∣st)]
6. 策略梯度定理
进一步引入状态-动作值函数 Qπ(st,at)=E[Gt∣st,at],得到:
∇θJ(θ)=Es∼dπ,a∼πθ[Qπ(s,a)∇θlogπθ(a∣s)]
其中 dπ(s) 是策略 πθ 下的状态分布。
7. 算法形式
通过采样近似期望,得到梯度更新公式:
θ←θ+αt=0∑∞γtGt∇θlogπθ(at∣st)
其中 α 是学习率。此为经典的 REINFORCE 算法。