Actor-critic#
- Actor 负责策略更新(Policy update),即决定在给定状态下采取什么动作。
- Critic 负责策略评估(Policy evaluation)或价值估计(Value estimation),用于判断 Actor 所选策略的优劣。
QAC (Q-Actor-Critic)#
Critic (价值更新):wt+1=wt+αw[rt+1+γq(st+1,at+1,wt)−q(st,at,wt)]∇wq(st,at,wt)Actor (策略更新):θt+1=θt+αθ∇θlnπ(at∣st,θt)q(st,at,wt+1)
A2C(Advantage Actor-Critic)#
∇θJ(θ)=ES∼η,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]=ES∼η,A∼π[∇θlnπ(A∣S,θt)(qπ(S,A)−b(S))]
要使上述等式成立,需满足:
ES∼η,A∼π[∇θlnπ(A∣S,θt)b(S)]=0
具体推导如下:
ES∼η,A∼π[∇θlnπ(A∣S,θt)b(S)]=s∈S∑η(s)a∈A∑π(a∣s,θt)∇θlnπ(a∣s,θt)b(s)=s∈S∑η(s)a∈A∑∇θπ(a∣s,θt)b(s)=s∈S∑η(s)b(s)∇θa∈A∑π(a∣s,θt)=s∈S∑η(s)b(s)∇θ1=0
- 基线函数主要用于控制方差,因此目标是找到一个最优的基线函数使得方差最小化。最优的基线函数为:
b∗(s)=EA∼π[∥∇θlnπ(A∣s,θt)∥2]EA∼π[∥∇θlnπ(A∣s,θt)∥2q(s,A)]
- 由于该形式计算过于复杂,实际应用中通常会去掉权重项 EA∼π[∥∇θlnπ(A∣s,θt)∥2],即近似为:
b(s)=EA∼π[q(s,A)]=vπ(s)
当 b(s)=vπ(s) 时:
θt+1=θt+αE[∇θlnπ(A∣S,θt)[qπ(S,A)−vπ(S)]]≐θt+αE[∇θlnπ(A∣S,θt)δπ(S,A)]
其中:
δπ(S,A)≐qπ(S,A)−vπ(S)
该项被称为优势函数(Advantage function)。根据 vπ(S) 的定义,它是状态 S 下所有动作价值的期望。如果某个动作的 q 值大于平均值 v,则说明该动作具备“优势”。
θt+1=θt+α∇θlnπ(at∣st,θt)[qt(st,at)−vt(st)]=θt+α∇θlnπ(at∣st,θt)δt(st,at)
此外,该算法可以重新表示为:
θt+1=θt+α∇θlnπ(at∣st,θt)δt(st,at)=θt+απ(at∣st,θt)∇θπ(at∣st,θt)δt(st,at)=θt+步长 (step size)α(π(at∣st,θt)δt(st,at))∇θπ(at∣st,θt)
- 更新步长与相对值 δt 成正比,而非绝对值 qt,这在逻辑上更具合理性。
- 它依然能很好地平衡探索与利用(Exploration and Exploitation)。
通过 TD 误差进行近似:
δt=qt(st,at)−vt(st)≈rt+1+γvt(st+1)−vt(st)
E[qπ(S,A)−vπ(S)∣S=st,A=at]=E[Rt+1+γvπ(St+1)−vπ(St)∣S=st,A=at]
- 优点:只需一个神经网络来近似 vπ(s),而不需要维护两个网络分别近似 qπ(s,a) 和 vπ(s)。
重要性采样和 Off-policy#
Importance sampling technique#
注意到:
EX∼p0[X]=x∑p0(x)x=x∑p1(x)f(x)p1(x)p0(x)x=EX∼p1[f(X)]
- 因此,可以通过估计 EX∼p1[f(X)] 来估计 EX∼p0[X]。
- 估计方法如下:
令:
fˉ≐n1i=1∑nf(xi),其中 xi∼p1
那么:
EX∼p1[fˉ]=EX∼p1[f(X)]
varX∼p1[fˉ]=n1varX∼p1[f(X)]
所以,fˉ 是 EX∼p0[X] 的良好近似:
EX∼p0[X]≈fˉ=n1i=1∑nf(xi)=n1i=1∑np1(xi)p0(xi)xi
- 比例 p1(xi)p0(xi) 被称为重要性权重(Importance weight)。
- 如果 p1(xi)=p0(xi),重要性权重为 1,fˉ 退化为标准算术平均值。
- 如果 p0(xi)>p1(xi),说明样本 xi 在分布 p0 中出现的频率高于 p1。大于 1 的重要性权重会增强该样本在期望计算中的比重。
目标函数定义为:
J(θ)=s∈S∑dβ(s)vπ(s)=ES∼dβ[vπ(S)]
其梯度为:
∇θJ(θ)=ES∼ρ,A∼β[β(A∣S)π(A∣S,θ)∇θlnπ(A∣S,θ)qπ(S,A)]
离轨策略(Off-policy)梯度对基准函数 b(s) 同样具有不变性:
∇θJ(θ)=ES∼ρ,A∼β[β(A∣S)π(A∣S,θ)∇θlnπ(A∣S,θ)(qπ(S,A)−b(S))]
- 为减小估计方差,同样选择基准函数 b(S)=vπ(S),得到:
∇θJ(θ)=E[β(A∣S)π(A∣S,θ)∇θlnπ(A∣S,θ)(qπ(S,A)−vπ(S))]
对应的随机梯度上升算法为:
θt+1=θt+αθβ(at∣st)π(at∣st,θt)∇θlnπ(at∣st,θt)(qt(st,at)−vt(st))
类似于同轨(On-policy)情况:
qt(st,at)−vt(st)≈rt+1+γvt(st+1)−vt(st)≐δt(st,at)
算法最终形式变为:
θt+1=θt+αθβ(at∣st)π(at∣st,θt)∇θlnπ(at∣st,θt)δt(st,at)
重写后凸显步长关系:
θt+1=θt+αθ(β(at∣st)δt(st,at))∇θπ(at∣st,θt)
Deterministic Actor-Critic (DPG)#
策略表示方式的演变:
- 在此之前,通用策略记作 π(a∣s,θ)∈[0,1],它通常是随机的(Stochastic)。
- 现在引入确定性策略(Deterministic policy),记作:
a=μ(s,θ)≐μ(s)
- μ 是从状态空间 S 到动作空间 A 的直接映射。
- 实践中 μ 常由神经网络参数化表示,输入为 s,输出直接为动作 a,参数为 θ。
目标函数的梯度为:
∇θJ(θ)=s∈S∑ρμ(s)∇θμ(s)(∇aqμ(s,a))∣a=μ(s)=ES∼ρμ[∇θμ(S)(∇aqμ(S,a))∣a=μ(S)]
基于确定性策略梯度,最大化 J(θ) 的梯度上升算法为:
θt+1=θt+αθES∼ρμ[∇θμ(S)(∇aqμ(S,a))∣a=μ(S)]
对应的随机梯度上升单步更新为:
θt+1=θt+αθ∇θμ(st)(∇aqμ(st,a))∣a=μ(st)
整体架构更新逻辑如下:
TD 误差:
δt=rt+1+γq(st+1,μ(st+1,θt),wt)−q(st,at,wt)
Critic (价值更新):
wt+1=wt+αwδt∇wq(st,at,wt)
Actor (策略更新):
θt+1=θt+αθ∇θμ(st,θt)(∇aq(st,a,wt+1))∣a=μ(st)
- 这是一种离轨策略(Off-policy实现。数据收集策略(行为策略 β)通常不同于当前正在优化的目标策略 μ。
- 为了保证探索性,行为策略 β 通常设定为目标策略加上噪声,即 β=μ+noise。
- 关于 q(s,a,w) 的函数近似选择:
- 线性函数:q(s,a,w)=ϕT(s,a)w,其中 ϕ(s,a) 为人工设计的特征向量。
- 神经网络:当使用深度神经网络近似价值和策略时,即演变为深度确定性策略梯度(DDPG, Deep Deterministic Policy Gradient算法。