Critic 头更新的关键公式及其解释
Critic 头更新的关键公式及其解释
1. 价值目标 (Value Target) 的计算
Critic 需要一个“正确答案”来学习,这个“正确答案”就是 价值目标 V^t\hat{V}_tV^t。
A. N步回报 (N-step Return) 价值目标:
V^t=rt+γrt+1+⋯+γN−1rt+N−1+γNVϕold(st+N) \hat{V}_t = r_t + \gamma r_{t+1} + \dots + \gamma^{N-1} r_{t+N-1} + \gamma^N V_{\phi_{old}}(s_{t+N}) V^t=rt+γrt+1+⋯+γN−1rt+N−1+γNVϕold(st+N)
- V^t\hat{V}_tV^t: 对于时间步 ttt 状态 sts_tst 的 估计价值目标。这是Critic试图去拟合的“真值”。
- rt,rt+1,…,rt+N−1r_t, r_{t+1}, \dots, r_{t+N-1}rt,rt+1,…,rt+N−1: 在接下来的 NNN 步内,智能体从环境中获得的 实际奖励。这是“蒙特卡洛”部分,是真实观察到的。
- γ\gammaγ: 折扣因子 (Discount Factor),范围 [0,1][0, 1][0,1]。它决定了未来奖励在当前价值中的重要性。γ\gammaγ 越接近 1,未来奖励的影响越大;越接近 0,智能体越只关注即时奖励。
- γN\gamma^NγN: 经过 NNN 步后的折扣系数。
- Vϕold(st+N)V_{\phi_{old}}(s_{t+N})Vϕold(st+N): 旧的 Critic 网络 ϕold\phi_{old}ϕold 对未来状态 st+Ns_{t+N}st+N 的 预测价值。这是“时间差分 (TD)”或“引导 (Bootstrapping)”部分。
- 作用:在轨迹结束前,用Critic的预测值来估计从 st+Ns_{t+N}st+N 之后所有未来的期望回报。它弥补了我们没有观测到 NNN 步之后所有真实奖励的不足,使得智能体能够从部分轨迹中学习。使用 ϕold\phi_{old}ϕold 是为了在当前批次训练中,目标值相对稳定,避免“追逐一个移动的目标”。
B. 广义优势估计 (Generalized Advantage Estimation, GAE) 导出的价值目标:
当使用 GAE 计算优势函数 AtA_tAt 时,通常会推导出一个对应的价值目标 V^t\hat{V}_tV^t。一种常见的形式是:
V^t=At+Vϕold(st) \hat{V}_t = A_t + V_{\phi_{old}}(s_t) V^t=At+Vϕold(st)
- V^t\hat{V}_tV^t: 同样是对于时间步 ttt 状态 sts_tst 的 估计价值目标。
- AtA_tAt: 通过 GAE 算法 计算得到的优势估计。GAE 结合了 N 步 TD 的不同步长优势,通过一个额外的参数 λ\lambdaλ 在偏差和方差之间进行权衡,提供了一个更稳定、更优的优势估计。
- Vϕold(st)V_{\phi_{old}}(s_t)Vϕold(st): 旧的 Critic 网络 ϕold\phi_{old}ϕold 对 当前状态 sts_tst 的预测价值。
- 作用:将当前状态的基线价值与该状态下执行动作的优势相加,直观上得到的是执行该动作后的总期望回报。GAE 提供的 AtA_tAt 本身就包含了未来奖励和价值预测的组合,因此这种方式形成的 V^t\hat{V}_tV^t 往往比简单的 N 步回报更稳定、方差更低。
2. Critic 损失函数 (Loss Function)
Critic 训练的目标是让它的预测值 Vϕ(s)V_{\phi}(s)Vϕ(s) 尽可能接近计算出的价值目标 V^\hat{V}V^。
Lcritic(ϕ)=1M∑i=1M(Vϕ(si)−V^i)2 L_{critic}(\phi) = \frac{1}{M} \sum_{i=1}^{M} (V_{\phi}(s_i) - \hat{V}_i)^2 Lcritic(ϕ)=M1i=1∑M(Vϕ(si)−V^i)2
- Lcritic(ϕ)L_{critic}(\phi)Lcritic(ϕ): Critic 网络的 损失函数,其值取决于Critic网络的参数 ϕ\phiϕ。我们的目标是最小化这个损失。
- 1M∑i=1M\frac{1}{M} \sum_{i=1}^{M}M1∑i=1M: 对一个训练批次 (batch) 中 MMM 个样本求 平均。确保损失值不随批次大小变化而显著改变。
- Vϕ(si)V_{\phi}(s_i)Vϕ(si): 当前 (正在训练的) Critic 网络 对状态 sis_isi 的 预测价值。这是网络的输出。
- V^i\hat{V}_iV^i: 在上述步骤中计算出的 价值目标(N步回报或GAE等)。这是网络的“正确答案”输入。
- (… )2(\dots)^2(…)2: 平方项。这是一种常见的误差度量方式,称为 均方误差 (Mean Squared Error, MSE)。
- 作用:将误差值变为正数,并对较大的误差给予更大的惩罚(例如,误差为2的惩罚是误差为1的四倍)。通过最小化这个平方误差,我们使得 Vϕ(si)V_{\phi}(s_i)Vϕ(si) 逐渐收敛到 V^i\hat{V}_iV^i。
通过对这个损失函数求梯度并更新 Critic 网络的参数 ϕ\phiϕ,Critic 网络就能不断学习并提供更准确的状态价值估计。
更多推荐



所有评论(0)