策略学习
策略梯度方法
状态价值函数既依赖于当前状态 st,也依赖于策略网络 π 的参数 θ,其定义为:
Vπ(st)=EAt∼π(⋅∣st;θ)[Qπ(st,At)]
如果一个策略很好,那么状态价值 Vπ(S) 的均值应该很大,因此定义目标函数:
J(θ)=ES[Vπ(S)]
策略梯度定理
∂θ∂J(θ)=ES[EA∼π(⋅∣S;θ)[∂θ∂lnπ(A∣S;θ)⋅Qπ(S,A)]]
上述定理只有在状态 S 服从马尔科夫链的稳态分布 d(⋅) 的假设下才成立,而且缺少系数 1−γ1−γn,详细推导过程见《DRL》。
随机梯度 g(s,a;θ)≜Qπ(s,a)⋅∇θlnπ(a∣s;θ) 是策略梯度 ∇θJ(θ) 的无偏估计,可以做随机梯度上升来更新 θ,但我们计算不出动作价值函数 Qπ(s,a),所以需要方法来近似。
利用真实的 ut 近似 Qπ(s,a),可以将随机梯度近似成下列表达式进而更新策略网络参数 θ:
g~(st,at;θ)=ut⋅∇θlnπ(at∣st;θ),θnew←θnow+β⋅∑t=1nγt−1⋅即随机梯度 g~(st,at;θnow)ut⋅∇θlnπ(at∣st;θnow)
上述简化的推导问题出在状态的稳态概率分布并不知道,需要通过下列严谨推导:
∇θJ(θ)=ES1,A1[g(S1,A1;θ)]+γ⋅ES1,A1,S2,A2[g(S2,A2;θ)]+γ2⋅ES1,A1,S2,A2,S3,A3[g(S3,A3;θ)]+⋯+γn−1⋅ES1,A1,S2,A2,S3,A3,⋯,Sn,An[g(Sn,An;θ)]
通过轨迹 s1,a1,r1,s2,a2,r2,⋯,sn,an,rn 对上式中期望做蒙特卡洛近似,得到:
∇θJ(θnow)≈g(s1,a1;θnow)+γ⋅g(s2,a2;θnow)+⋯+γn−1⋅g(sn,an;θnow)
进一步将 Qπ(st,at) 替换为 ut,得到:
g(st,at;θnow)≈ut⋅∇θlnπ(at∣st;θnow),∇θJ(θnow)=∑t=1nγt−1⋅ut⋅∇θlnπ(at∣st;θnow)
Actor-Critic 架构
Actor-critic 方法用价值网络 q(s,a;ω) 来近似随机梯度中未知的动作价值函数 Qπ(s,a):
- 策略网络 π(a∣s;θ)(演员):基于状态 s 给出动作 a。
- 价值网络 q(s,a;ω)(评委):给演员的表现打分,评价在状态 s 下做出动作 a 的好坏程度。
将策略梯度的无偏估计中的 Qπ(s,a) 用价值网络 q(s,a;ω) 进行近似,得到近似策略梯度:
g^(s,a;θ)≜评委的打分q(s,a;ω)⋅∇θlnπ(a∣s;θ)
注意 Actor-critic 方法中评委打分与策略学习的损失函数具有一致性,因此评委打分会越来越高,策略学习的目标是迎合评委的打分标准,所以价值网络的质量很重要。
带基线的策略梯度方法
基于策略梯度公式得出的 REINFORCE 和 actor-critic 方法效果通常不好,只需要微小改动即能大幅提升表现:把 b 作为动作价值函数 Qπ(s,a) 的基线(baseline),只要不依赖于动作 A 的任意函数即可:
∇θJ(θ)=ES[EA∼π(⋅∣S;θ)[(Qπ(S,A)−b)⋅∇θlnπ(A∣S;θ)]]
不论是让 b=0 还是让 b=Vπ(S),对期望的结果毫无影响,都会等于 ∇θJ(θ),因为:
∇θJ(θ)=ES[EA∼π(⋅∣S;θ)[b⋅∇θlnπ(A∣S;θ)]]=0
数学证明
EA∼π(⋅∣s;θ)[b⋅∂θ∂lnπ(A∣s;θ)]=b⋅EA∼π(⋅∣s;θ)[∂θ∂lnπ(A∣s;θ)]=b⋅a∈A∑π(a∣s;θ)⋅∂θ∂lnπ(a∣s;θ)=b⋅a∈A∑π(a∣s;θ)⋅π(a∣s;θ)1⋅∂θ∂π(a∣s;θ)=b⋅∂θ∂恒等于 1a∈A∑π(a∣s;θ)=0
策略梯度可以近似为下面的随机梯度:
gb(s,a;θ)=[Qπ(s,a)−b]⋅∇θlnπ(a∣s;θ)
基线 b 的最佳选择是状态价值 b=Vπ(s)=EA∼π(⋅∣s;θ)[Qπ(s,A)],此时梯度估计的方差最小。
- 带基线的 REINFORCE 算法:
g~(s,a;θ)=[u−v(s;ω)]⋅∇θlnπ(a∣s;θ)
- Advantage Actor-Critic (A2C):
g(s,a;θ)=[优势函数Qπ(s,a)−Vπ(s)]⋅∇θlnπ(a∣s;θ)
A2C 中利用 TD 目标更新价值网络 v(s;ω):
y^t=rt+γ⋅v(st+1;ω),δt=v(st;ω)−y^t
利用近似策略梯度更新策略网络:
g~(st,at;θ)≜[TD 目标 y^trt+γ⋅v(st+1;ω)−v(st;ω)]⋅∇θlnπ(at∣st;θ)
策略学习高级技巧
1. 置信域策略优化 (TRPO)
置信域策略优化(trust region policy optimization,TRPO)有两个优势:第一,表现更稳定,收敛曲线不会剧烈波动,对学习率不敏感;第二,用更少的样本就能达到与策略梯度方法相同的表现。
构造函数 L(θ∣θnow) 来替代目标函数 J(θ) 进行优化,在置信域 N(θnow)={θ∣∥θ−θnow∥2≤Δ} 内:
L(θ∣θnow)=n1∑t=1nπ(at∣st;θnow)π(at∣st;θ)⋅Qπ(st,at)
求解带约束的最大化问题:
maxθL~(θ∣θnow)s.t. θ∈N(θnow)
其中的置信域约束可以是 KL 散度:
t1∑i=1tKL[π(⋅∣si;θnow)∥π(⋅∣si;θ)]≤Δ
2. 熵正则化 (Entropy Regularization)
为了防止策略输出过早集中在单个动作上,增加熵项奖励不确定性:
Entropy(p)=−∑i=1tpi⋅lnpi
最大化目标函数:
maxθJ(θ)+λ⋅ES[H(s;θ)]
连续控制
对高维连续动作空间,确定策略梯度(deterministic policy gradient,DPG)直接输出连续动作 a=μ(s;θ)。
TD3 (Twin Delayed Deep Deterministic Policy Gradient)
为了解决 DPG 中的估算偏差与高估问题,TD3 引入了三个关键技巧:
-
截断双 Q 学习 (Clipped Double Q-learning):
使用两个目标价值网络求值,取两者中较小者作为 TD 目标:
y^j,1=rj+γ⋅q(sj+1,a^j+1−;ω1−),y^j,2=rj+γ⋅q(sj+1,a^j+1−;ω2−)
y^j=min(y^j,1,y^j,2)
-
目标动作平滑正则化:
在目标网络输出的动作中加入截断正态分布噪声 ξ∼CN(0,σ2,−c,c):
a^j+1−=μ(sj+1;θ−)+ξ
-
延迟策略更新:
让策略网络 μ 以及目标网络的更新频率低于价值网络 q,确保价值估计稳定后再更新策略。
对状态的不完全观测
在实际应用中,完全观测假设存在缺陷。对于不完全观测问题,可以用历史观测序列 o1:t 代替状态 s:
π(at;o1:t;θ)
利用**循环神经网络(RNN)**将观测序列映射为特征向量,用以构建策略网络、DQN 和价值网络。
模仿学习 (Imitation Learning)
模仿学习的目标是向人类专家学习策略。
-
行为克隆 (Behavior Cloning):
对专家轨迹 (s,a) 直接做监督学习。
- 连续控制损失:L(s,a;θ)≜21[μ(s;θ)−a]2
- 离散控制损失:H(aˉ,f)≜−∑i=1Aaˉi⋅lnfi
- 缺点:存在“错误累加”效应,面对稀有状态时表现糟糕。通常仅用于策略网络初始化。
-
逆向强化学习 (Inverse RL / IRL):
从专家的行为中反推其隐含的奖励函数 R∗,然后再做强化学习。
-
生成判别模仿学习 (GAIL):
基于 GAN 思想,利用策略网络充当生成器,判别器 D(s,a;ϕ) 区分专家轨迹与智能体生成的轨迹。策略网络以 lnD(st,at;ϕ) 为回报使用 TRPO 进行训练。