1. Intro: 优化目标
我们将使用函数来得出策略,输入状态输出策略
当策略由参数化函数 πθ(a∣s) 表示时,我们不再能逐个比较所有状态的价值来定义“最优”。
Tabular policy vs Params policy 以及原因
参数的共享
Tabular policy 就是一张表:
s1s2a10.20.7a20.80.3这里
π(a1∣s1),π(a1∣s2)是两个独立的表项。对 s1 时策略的更改不影响 s2
但是参数化的策略,修改 θ 同时会影响其他状态的策略输出
更深层的问题:可能存在 trade-off
假设当前:
vθ(s1)=10,vθ(s2)=5.改变参数以后:
vθ′(s1)=12,vθ′(s2)=4.那么 θ′ 到底是不是更好?
你不能回答。
取而代之的是,先定义一个关于参数 θ 的标量目标 J(θ),再沿其梯度方向更新:
θt+1=θt+α∇θJ(θt).
下面先介绍三种常见的优化目标。记 vπ(s) 为折扣状态价值,rπ(s)=EA∼πθ(⋅∣s)[r(s,A)] 为状态 s 下的一步期望奖励;向量形式分别记为 vπ 与 rπ。
1.1 固定初始分布下的平均状态价值
设初始状态服从一个与策略无关的固定分布 d0。最常见的情形是每个回合都从同一初始状态 s0 开始,此时 d0(s0)=1。目标定义为
J(θ)=vˉπ0=d0Tvπ=ES0∼d0[vπ(S0)].
它衡量策略 从任务指定起点(或指定的初始状态分布)出发时,所能获得的折扣回报。这里 d0 不随 θ 改变,策略只通过 vπ 影响目标。
1.2 平稳分布加权的平均状态价值
若策略 π 诱导的马尔可夫链存在平稳分布 dπ,(即按照策略,给定初始状态走无限多次,最终每个状态的访问权重期望)则
J(θ)=vˉπ=dπTvπ
其中 dπTPπ=dπT。长期中经常被访问的状态在 dπ 中权重更大,因此该目标评价的是策略自身长期行为下的平均折扣状态价值。与第一个目标不同,dπ 和 vπ 都依赖于策略参数 θ。
这里再补充一下求解方法
-
dπTPπ=dπT 但我们一般不这么做
-
直接随机采样,那问题来了,我们随机采样,如何选择初始状态呢?
事实上,初始状态可以任取,但通常需要 Markov chain 有比较好的遍历性质,比如有限状态情况下常见地要求 irreducible + aperiodic
所以而已不断的从现在分布采样并且进行访问,再更新现有分布采样,不断循环到收敛
1.3 平均奖励
平均奖励目标直接评价长期稳态下每一步获得的期望奖励:
J(θ)=rˉπ=dπTrπ
这里
rπ(s)=a∑π(a∣s)s′∑P(s′∣s,a)r(s,a,s′).
代表从 s 出发,π 策略下一步的奖励期望
等价地,在满足相应遍历条件时,
rˉπ=n→∞limn1E[t=0∑n−1Rt+1].
1.4 目标 2 与目标 3 的优化方向相同
对折扣因子 0≤γ<1,状态价值向量满足
vπ=t=0∑∞γtPπtrπ.
左乘平稳分布 dπT,并利用 dπTPπt=dπT,可得
vˉπ=dπTvπ=t=0∑∞γtdπTrπ=1−γ1rˉπ.
因此
∇θvˉπ=1−γ1∇θrˉπ.
由于 1/(1−γ)>0 是与策略无关的常数,两个梯度始终同向;最大化平稳分布加权的平均状态价值,与最大化平均奖励,会得到完全相同的策略优化方向。它们的区别只在目标数值的正比例缩放,而不在最优策略或梯度上升方向。
2. Policy Gradient Theorem
这一节不直接套用结论,而是分别对三个目标 J 求导。最后会看到:它们都包含同一个“状态 s 的局部梯度贡献”,区别仅在于如何对不同状态加权。
2.1 折扣情形的公共基础:∇θvπ
本小节先假设 0≤γ<1。定义折扣 action value:
qπγ(s,a)=Eπ[k=0∑∞γkRt+k+1St=s,At=a].
因此
vπ(s)=a∑πθ(a∣s)qπγ(s,a).
先定义一个后面会反复出现的局部项:
u(s)=a∑∇θπθ(a∣s)qπγ(s,a)
它表示在状态 s 直接改变动作概率时,对目标的局部影响。由 Bellman 方程
qπγ(s,a)=r(s,a)+γs′∑p(s′∣s,a)vπ(s′),
这里的 r(s,a) 表示给定 (s,a) 后的一步期望奖励;若奖励还依赖下一状态 s′,它已经对 s′ 取过期望。环境的 r(s,a) 与 p(s′∣s,a) 不依赖参数 θ,故
∇θqπγ(s,a)=γs′∑p(s′∣s,a)∇θvπ(s′).
对 vπ(s) 求导并代入上式:
∇θvπ(s)=u(s)+γs′∑Pπ(s,s′)∇θvπ(s′),
其中
Pπ(s,s′)=a∑πθ(a∣s)p(s′∣s,a)
是执行策略后的状态转移概率。将所有状态堆叠成向量(每个分量的梯度都是一个参数向量)可简写为
∇θvπ=u+γPπ∇θvπ.
所以
∇θvπ=(I−γPπ)−1u.
这就是两个折扣价值目标的公共基础。
2.2 目标 1:固定初始分布下的平均状态价值
J(θ)=vˉπ0=d0Tvπ.
由于 d0 是任务给定的初始分布,不随 θ 改变:
∇θvˉπ0=d0T∇θvπ=d0T(I−γPπ)−1u.
使用
(I−γPπ)−1=I+γPπ+γ2Pπ2+⋯,
定义行向量
ρπT=d0T(I−γPπ)−1.
其第 s 个分量为
ρπ(s)=t=0∑∞γtπPr(St=s∣S0∼d0).
它是状态 s 的未归一化折扣访问量:越早访问到 s,权重越大。于是
∇θvˉπ0=s∑ρπ(s)a∑∇θπθ(a∣s)qπγ(s,a).
这是严格等式;此时状态权重为 η(s)=ρπ(s)。
2.3 目标 2:平稳分布加权的平均状态价值
J(θ)=vˉπ=dπTvπ.
这里不能像目标 1 一样直接把 dπ 当常数,因为策略改变会改变长期的状态访问比例,即 dπ=dπ(θ)。乘积法则给出
∇θvˉπ=(∇θdπT)vπ+dπT∇θvπ.
第二项可由 2.1 节计算。利用平稳性 dπTPπ=dπT:
dπT(I−γPπ)−1=dπT(I+γPπ+γ2Pπ2+⋯)=1−γ1dπT.
因此严格地说:
∇θvˉπ=(∇θdπT)vπ+1−γ1dπTu.
当 γ 接近 1,且 (∇θdπT)vπ 不发散时,第二项的系数 1/(1−γ) 很大,教材采用近似:
∇θvˉπ≈1−γ1s∑dπ(s)a∑∇θπθ(a∣s)qπγ(s,a).
因此本目标也有相同的局部项 u(s),但状态权重改为 dπ(s);这里是近似而不是严格等式。
2.4 目标 3:折扣情形下的平均奖励
前面已经得到
rˉπ=(1−γ)vˉπ.
所以
∇θrˉπ=(1−γ)∇θvˉπ≈dπTu.
即
∇θrˉπ≈s∑dπ(s)a∑∇θπθ(a∣s)qπγ(s,a).
这个近似继承自上一节;也正是它与目标 2 的近似梯度方向相同的原因。
2.5* 无折扣平均奖励:严格的结果
当 γ=1 时,优化目标仍然是平均奖励:
J(θ)=rˉπ.
普通回报会发散,因此不能再把 vπ 定义为无限奖励之和。下面的 vπ 只是为了推导 ∇θrˉπ 而引入的 differential value;它可以整体加上任意常数,因而不是这里要直接最大化的目标。相应地,改用 differential action value:
qπavg(s,a)=Eπ[k=0∑∞(Rt+k+1−rˉπ)St=s,At=a].
其中 rˉπ 可由长期轨迹估计:
rˉ^n=n1t=0∑n−1Rt+1,rˉ^←rˉ^+β(Rt+1−rˉ^).
对应的 Poisson 方程为
vπ=rπ−rˉπ1+Pπvπ.
rπ 是一个向量,rπ(s) 表示从状态 s 出发执行策略后的一步期望奖励;rˉπ 才是标量。乘上全 1 向量后,rˉπ1 才能与 rπ 相减。按单个状态 s 展开,上式是
vπ(s)=rπ(s)−rˉπ+s′∑Pπ(s,s′)vπ(s′).
下面把梯度一步步推出来。首先,differential action value 满足
qπavg(s,a)=r(s,a)−rˉπ+s′∑p(s′∣s,a)vπ(s′).
这里 r(s,a) 和 p(s′∣s,a) 是环境给定的,不随 θ 改变。因此
∇θqπavg(s,a)=−∇θrˉπ+s′∑p(s′∣s,a)∇θvπ(s′).
又因为
vπ(s)=a∑πθ(a∣s)qπavg(s,a),
使用乘积法则:
∇θvπ(s)=a∑[∇θπθ(a∣s)qπavg(s,a)+πθ(a∣s)∇θqπavg(s,a)]=a∑∇θπθ(a∣s)qπavg(s,a)+a∑πθ(a∣s)[−∇θrˉπ+s′∑p(s′∣s,a)∇θvπ(s′)]=u(s)−(a∑πθ(a∣s))∇θrˉπ+s′∑[a∑πθ(a∣s)p(s′∣s,a)]∇θvπ(s′)=u(s)−∇θrˉπ+s′∑Pπ(s,s′)∇θvπ(s′).
所有状态写成向量,得到
∇θvπ=u−1∇θrˉπ+Pπ∇θvπ,
其中 u(s)=∑a∇θπθ(a∣s)qπavg(s,a)。现在左乘 dπT:
dπT∇θvπ=dπTu−dπT1∇θrˉπ+dπTPπ∇θvπ=dπTu−∇θrˉπ+dπT∇θvπ.
第二行只使用了 dπT1=1 和平稳性 dπTPπ=dπT。等式两边都有相同的 dπT∇θvπ,将它消去后,便得到严格等式:
∇θrˉπ=s∑dπ(s)a∑∇θπθ(a∣s)qπavg(s,a).
2.6 统一形式,再改写为 ∇logπ
前面不同目标的推导都已得到同一结构:
∇θJ(θ)=s∑η(s)a∑∇θπθ(a∣s)qπ(s,a)=s∑η(s)a∑πθ(a∣s)∇θlogπθ(a∣s)qπ(s,a)=ES∼ηA∼πθ(⋅∣S)[∇θlogπθ(A∣S)qπ(S,A)].
第二行使用 ∇θπθ(a∣s)=πθ(a∣s)∇θlogπθ(a∣s);第三行使用期望的定义。这样,原本需要枚举所有动作的求和就能由当前策略采样的动作估计。实际训练中以回报 G 代替未知的 qπ(S,A),得到随机梯度 ∇θlogπθ(A∣S)G。
核心:转换成对数梯度的目的,是让“对所有动作求和”变为“从当前策略采样动作的期望”。理论上,可以通过枚举动作,或从其他分布采样大量动作并进行加权,来近似 ∑a∇θπθ(a∣s)qπ(s,a) ;但这要求能为同一状态下的多个反事实动作分别估计其未来回报。在在线强化学习中,一次交互通常只能执行一个动作并观察一条后续轨迹。对数梯度使我们能够直接利用按当前策略采样得到的动作与回报,构造无偏的随机梯度。
这里假设 η 是概率分布,例如平均奖励目标中的 dπ。对目标 1,ρπ 的总和为 1/(1−γ),需先乘 (1−γ) 归一化,并在期望前补回相同的常数;实践中该常数可并入学习率。
3. Monte Carlo Policy Gradient: REINFORCE
上面的期望、qπ 和状态分布通常未知,无法直接计算。REINFORCE 用一条由当前策略生成的完整轨迹来替代它们。
3.1 用回报估计 action value
对于一条 episode:
(S0,A0,R1,…,ST−1,AT−1,RT),
时刻 t 的 Monte Carlo 回报为
Gt=k=t∑T−1γk−tRk+1.
在 episode 结束的任务中,Gt 是 qπγ(St,At) 的无偏样本估计。因此可以用单个样本构造随机梯度:
gt=∇θlogπθ(At∣St)Gt.
3.2 REINFORCE 更新
把真梯度替换为 gt,就得到 REINFORCE:
θ←θ+α∇θlogπθ(At∣St)Gt.
其中 α>0 是学习率。若直接使用原始回报 Gt,且奖励都为正,则每个被采到的动作都会获得正向强化:其概率倾向于提高。这并不表示所有动作能同时变大,因为策略概率和必须为 1;提高被采到动作的概率会相对压低其他动作。长期来看,回报更大的动作获得的强化更强、出现后更容易被继续强化,因此会逐渐占据更大的概率。
不过,原始正回报不能直接表达“这次动作比通常水平差”。若希望低于通常水平的动作被明确降低,应使用下一节的 baseline,将 Gt 替换为 Gt−b(St):当它为负时,该动作的概率才会倾向于下降。
也可以把更新写回 ∇θπ 的形式。若用 qt(St,At) 表示对 action value 的样本估计(在 REINFORCE 中可取 Gt),则
θt+1=θt+α∇θlogπθ(At∣St)qt(St,At)=θt+αβtπθ(At∣St)qt(St,At)∇θπθ(At∣St).
这个系数可以从两个角度理解:
- βt 与 qt(St,At) 成正比:价值较高的动作会得到更强的强化,体现利用(exploitation)。
- βt 与 ∇θπθ(At∣St) 成反比,小概率事件会让 βt 变大,体现探索(exploration)。
policy = PolicyNetwork()
for _ in range(num_episodes):
trajectory = sample_episode(env, policy)
returns = discounted_returns(trajectory.rewards, gamma)
loss = 0.0
for state, action, return_ in zip(trajectory.states, trajectory.actions, returns):
loss -= policy.log_prob(state, action) * return_
optimizer.zero_grad()
loss.backward()
optimizer.step()
3.3 一个常用改进:baseline
直接使用 Gt 的方差通常很大。对只依赖状态的任意 baseline b(St),可将更新改写为
θ←θ+α∇θlogπθ(At∣St)(Gt−b(St)).
这是无偏的,因为
EA∼πθ(⋅∣s)[∇θlogπθ(A∣s)b(s)]=b(s)∇θa∑πθ(a∣s)=0.
最常用的选择是 b(s)=vπ(s)。此时 Gt−vπ(St) 估计的是 advantage:它只衡量这次动作比该状态下的通常水平好多少。下一章的 actor-critic 会进一步用价值函数来学习这个 baseline。
4. Summary
- 参数化策略不能逐状态独立地判定好坏,因此需要一个标量目标 J(θ)。
- 固定初始分布的折扣目标与平均奖励目标关注的行为不同;平稳分布加权折扣价值与平均奖励只差一个正的比例常数。
- 策略梯度可写成 ∇logπ 与 action value 的期望,从而可以由策略采样的经验估计。
- REINFORCE 用完整轨迹的回报 Gt 估计 action value;加入 baseline 不改变期望梯度,但能降低方差。