actor-critic 是基于策略梯度定理的强化学习算法。它使用神经网络近似 Qπ(s,a)。
actor-critic 使用价值网络 (被称为 critic) q(s,a;w) 近似 Qπ(s,a),其中 w 是价值网络的参数。与此相对,策略网络 π(a∣s;θ) 被称为 actor。于是近似策略梯度被写为:
g^(s,a;θ)=q(s,a;w)⋅∂θ∂lnπ(a∣s;θ)
critic 在训练过程中打出的分数会越来越高,因为 ∇θv(s;θ)=EA∼π(⋅∣s;θ)[g^(s,a;θ)]。
critic 可以使用 SARSA 进行训练,而 actor 则使用策略梯度方法训练。具体的训练流程为:
- 基于当前状态 st,actor 选择动作 at∼π(⋅∣st;θnow) 并执行
- 观察奖励 rt 和下一个状态 st+1
- 决策 at+1∼π(⋅∣st+1;θnow) 但不执行
- 使用 critic 估计 q^t=q(st,at;wnow) 和 q^t+1=q(st+1,at+1;wnow)
- 计算 TD 误差 δt=q^t−rt−γq^t+1
- 更新 critic: wnew←wnow−αδt∇wq(st,at;wnow)
- 更新 actor: θnew←θnow+βδt∇θlnπ(at∣st;θnow)
和 SARSA 类似,actor-critic 也面临自举导致的偏差问题,可以在 critic 上使用目标网络来缓解。