下面解释的 **checkpoint** 主要指 TD7 / SALE 论文中的 **policy checkpoint**，不是普通深度学习中单纯“保存模型参数文件”的 checkpoint。TD7 论文发表于 NeurIPS 2023，摘要明确说 TD7 把 SALE 和一种“适用于 RL 的 checkpoint 改造”整合进 TD3。([arXiv](https://arxiv.org/abs/2306.02451 "[2306.02451] For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

---

# 1. checkpoint 的基本含义

在普通深度学习中，checkpoint 通常表示训练过程中保存下来的模型状态，例如：
$$
\theta_1,\theta_2,\dots,\theta_k  
$$

这些 checkpoint 可以用于：
$$
\text{训练恢复}  
$$
$$
\text{早停}  
$$
$$
\text{选择验证集性能最好的模型}  
$$


但 TD7 中的 checkpoint 更具体。它不是只保存参数，而是维护一个 **checkpoint policy**：
$$
\pi_c  
$$
并在训练过程中不断比较：
$$
\text{当前策略 } \pi_{\text{cur}}  
\quad \text{vs.} \quad  
\text{checkpoint 策略 } \pi_c  
$$
如果当前策略在训练过程中的 assessment episodes 上表现优于 checkpoint 策略，就用当前策略替换 checkpoint 策略。论文将训练中的这种性能测量称为 **assessment**，并明确区分于测试时的 evaluation。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

因此，在 TD7 语境中：
$$
\boxed{  
\text{checkpoint}
=
\text{训练过程中保存并更新的“当前最好策略”}  
}  
$$
更准确地说，是：
$$
\boxed{  
\pi_c
=
\text{训练过程中按某种 assessment criterion 选出的策略副本}  
}  
$$
---

# 2. 为什么 RL 中需要 policy checkpoint？

**强化学习训练过程的一个重要特点是：策略性能并不一定单调提升。**

监督学习中，模型训练 loss 通常整体下降，虽然可能有波动，但验证集性能相对容易监控。RL **中的策略性能可能出现：**
**$$**
**J(\pi_1) < J(\pi_2) > J(\pi_3) < J(\pi_4)**  
**$$**
**也就是说，某个中间策略可能比最终策略更好。**

原因在于 actor-critic 训练存在强耦合：
$$
\pi \text{ 改变}  
\Rightarrow  
\mathcal D \text{ 分布改变}  
\Rightarrow  
Q \text{ target 改变}  
\Rightarrow  
Q \text{ 误差改变}  
\Rightarrow  
\pi \text{ 再次改变}  
$$
策略更新可能利用 critic 的局部错误；critic 又依赖策略生成的 Bellman target。因此，最后一个策略不一定是整个训练过程中表现最好的策略。

TD7 的 checkpoint 机制要解决的问题是：
$$
\boxed{  
\text{测试时不必使用最后一个策略，而是使用训练过程中表现最好的策略}  
}  
$$
论文的 ablation 也专门比较了“使用当前策略”与“使用 checkpoint policy”的差异；其中 “Current policy” ablation 表示 TD7 以相同方式训练，但测试时使用当前策略而不是 checkpoint policy。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

---

# 3. TD7 中 policy checkpoint 的对象是什么？

TD7 中存在至少两类策略相关网络：

$$
\pi_{\text{cur}}  
$$
$$
\pi_c  
$$
其中：
$$
\pi_{\text{cur}}  
$$
是正在训练的当前 actor；
$$
\pi_c  
$$
是 checkpoint actor，即当前认为“最值得在测试时使用”的策略副本。

由于 TD7 使用 SALE，策略不仅依赖原始状态 ($s$)，还依赖状态嵌入。因此 checkpoint 不只是保存 actor，还要保存相应的状态 encoder。**论文算法中写到，当当前 actor 超过 checkpoint policy 时，更新 checkpoint 网络：**
**$$**
**\pi_c \leftarrow \pi_{t+1}**  
**$$**
**$$**
**f_c \leftarrow f_t**  
**$$**
**也就是说，checkpoint policy 需要与对应的 state encoder 一起保存，否则测试时策略输入的嵌入分布可能不一致。**([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

可以抽象写成：
$$
\boxed{  
\text{checkpoint state}
=
(\pi_c, f_c)  
}  
$$
其中 ($f_c$) 是 checkpoint policy 使用的状态编码器。

---

# 4. 为什么 TD7 要修改 off-policy RL 的训练循环？

标准 off-policy deep RL 通常是：
$$
\text{collect one transition}  
\rightarrow  
\text{train once}  
$$
也就是每收集一个环境交互样本，就立即进行一次梯度更新。TD7 论文指出，这种方式不适合测量“当前策略”的 episode 表现，因为策略会在每个训练 step 后改变；如果一个 assessment 过程跨多个 episode，而策略中途不断变化，那么测得的回报并不对应某一个固定策略。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

因此 TD7 改成：
$$
\text{collect } N \text{ data points over assessment episodes}  
\rightarrow  
\text{train } N \text{ times}  
$$
也就是先固定当前策略，运行若干个 assessment episodes，收集环境数据并记录 episode return；然后再把累计的训练步数补回来，执行相同数量的训练更新。论文明确对比了标准 off-policy RL 和这种 proposed training strategy。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

形式化地：

标准 off-policy RL： 
$$
(s_t,a_t,r_t,s_{t+1}) \sim \pi_{\text{cur}}  
$$
$$
\theta \leftarrow \theta - \alpha \nabla_\theta \mathcal L  
$$
然后立刻继续交互。

TD7 checkpoint 机制下：
$$
\pi_{\text{cur}} \text{ 固定}  
$$
运行若干 episode：
$$
\tau_1,\tau_2,\dots,\tau_m \sim \pi_{\text{cur}}  
$$
记录回报：
$$
R_1,R_2,\dots,R_m  
$$
累计 transition 数：
$$
N=\sum_{i=1}^m |\tau_i| 
$$
然后执行：
$$
N \text{ 次训练更新}  
$$
这样做的关键是：assessment episodes 对应的是同一个固定策略。

---

# 5. assessment 与 evaluation 的区别

TD7 论文中特别区分：
$$
\text{assessment}  
$$
和
$$
\text{evaluation}  
$$
**assessment** 是训练过程中的性能测量，用于决定是否更新 checkpoint policy；这些 episode 同时属于训练过程的一部分，收集到的数据仍可进入 replay buffer。

**evaluation** 或 test-time episodes 则被视为与训练过程完全分离，用于最终报告或测试。论文明确说，训练中的性能测量使用 “assessment” 这个词，以避免与测试 evaluation 混淆。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

因此：
$$
\boxed{  
\text{assessment episodes}
=
\text{训练期间用于判断是否更新 checkpoint 的 episode}  
}  
$$
$$
\boxed{  
\text{test/evaluation episodes}
=
\text{训练完成后用于报告性能的 episode}  
}  
$$

---

# 6. 最基本的 checkpoint 算法

TD7 中最基本的 policy checkpoint 逻辑可以写成：
$$
\text{for each assessment phase:}  
$$
运行当前策略：
$$
\pi_{\text{cur}}  
$$
得到 episode reward：
$$
R_e  
$$
更新当前策略的性能指标：
$$
C(\pi_{\text{cur}})  
$$
如果：
$$
C(\pi_{\text{cur}}) > C(\pi_c)  
$$
则更新：
$$
\pi_c \leftarrow \pi_{\text{cur}}  
$$
$$
f_c \leftarrow f_{\text{cur}}  
$$

然后执行累计数量的训练更新。

论文 Algorithm 3 的核心步骤正是：follow 当前策略并记录 episode reward；如果当前 actor 优于 checkpoint policy，则更新 checkpoint networks；随后对自上次训练以来累计的步数执行训练。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

用伪代码表示：

```text
初始化当前策略 π_cur
初始化 checkpoint 策略 π_c

循环：
    固定 π_cur
    运行若干 assessment episodes
    得到当前策略表现 C(π_cur)

    if C(π_cur) > C(π_c):
        π_c ← π_cur
        f_c ← f_cur

    根据累计交互步数执行同等数量的训练更新
```

---

# 7. “性能更好”如何定义？

最自然的做法是使用平均回报：
$$
C_{\text{mean}}(\pi)
=
\frac{1}{m}\sum_{i=1}^m R_i  
$$
但 TD7 默认不用 mean，而使用 **minimum performance**：
$$
C_{\min}(\pi)
=
\min_{1\le i\le m} R_i  
$$
也就是若干 assessment episodes 中最差 episode 的回报。

TD7给出的理由有两个。**第一，minimum 更敏感于不稳定性，因此偏向选择表现一致的策略。第二，如果当前策略的 minimum performance 已经低于 checkpoint policy 的性能，就可以提前结束 assessment，不再浪费训练 episode 去评估明显较差的策略。**([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))
因此，TD7 默认判断：
$$
\boxed{  
\pi_{\text{cur}} \text{ outperforms } \pi_c  
\iff  
\min_i R_i(\pi_{\text{cur}})
>
C(\pi_c)  
}  
$$
更严格地说，论文中 “outperforms” 条件要求达到最大 assessment episode 数，并且当前 minimum performance 高于 checkpoint policy 的 minimum performance。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

---

# 8. 为什么使用 minimum，而不是 mean？(TD7)

使用 mean 的问题是：它可能掩盖不稳定策略。

例如两个策略在 5 个 episode 上的回报为：
$$
\pi_A: [1000,1000,1000,1000,1000]  
$$
$$
\pi_B: [2000,2000,2000,2000,-1000]  
$$
平均回报：
$$
C_{\text{mean}}(\pi_A)=1000  
$$
$$
C_{\text{mean}}(\pi_B)=1400  
$$

如果按 mean，($\pi_B$) 更好。但 ($\pi_B$) 有一次严重失败，说明策略不稳定。

minimum 回报：
$$
C_{\min}(\pi_A)=1000  
$$
$$
C_{\min}(\pi_B)=-1000  
$$
因此按 minimum，会选择 ($\pi_A$)。

这与 TD7 的目标一致：checkpoint policy 用于测试时，不希望选择一个偶尔高分但容易崩溃的策略。论文明确说，minimum criterion 更敏感于 instability，并倾向于 favor policies with consistent performance。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

---

# 9. early termination：提前终止 assessment

由于 TD7 使用 minimum criterion，可以在 assessment 过程中提前判断当前策略不可能超过 checkpoint。

设 checkpoint performance 为：
$$
C_c  
$$
当前策略已经运行了若干 assessment episodes，当前最小回报为：
$$
m_{\text{cur}}
=
\min(R_1,\dots,R_k)  
$$
如果：
$$
m_{\text{cur}} \le C_c  
$$
那么即使后续 episodes 回报很高，最终 minimum 也不会超过 ($C_c$)，因为 minimum 已经被较低的回报锁定：
$$
\min(R_1,\dots,R_k,R_{k+1},\dots)  
\le  
m_{\text{cur}}  
\le  
C_c  
$$
因此 assessment 可以提前结束。

论文 Algorithm 4 中正是这样写的：如果当前 minimum performance 小于等于 checkpoint performance，则结束当前 assessment；如果 current minimum performance 大于等于 checkpoint performance，则更新 checkpoint networks。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

这个设计的好处是：
$$
\boxed{  
\text{允许设置较大的最大 assessment episode 数，但避免浪费 episode}  
}  
$$
---

# 10. early learning 阶段为什么只用 1 个 assessment episode？

TD7 论文还加入了一个细节：训练早期只用 1 个 assessment episode，之后再增加到更大的 assessment episode 数。论文默认设置中，早期阶段是前 ($750k$) timesteps，early assessment episodes 为 1，late assessment episodes 为 20。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

原因是：训练早期策略变化快，如果每次 checkpoint 判断都用很长 assessment phase，会显著延迟训练。

训练早期：
$$
\pi \text{ 快速变化}  
$$
$$
Q \text{ 快速变化}  
$$
$$
\mathcal D \text{ 快速扩展}  
$$
如果花很多 episode 只是做 assessment，会降低有效学习速度。论文也说明，经验分析中较长 assessment phase 对 early learning 有负面影响。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

因此 TD7 使用：
$$
m_{\text{early}}=1  
$$
$$
m_{\text{late}}=20  
$$
在前 ($750k$) timesteps 之后，把最大 assessment episode 数从 1 增加到 20。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

---

# 11. 为什么切换到更多 assessment episodes 时要乘 0.9？

论文还提到一个细节：当从早期的 1 个 assessment episode 切换到更多 assessment episodes 时，会把 checkpoint policy 的性能指标乘以一个系数，例如默认：
$$
0.9  
$$
也就是：
$$
C_c \leftarrow 0.9 C_c  
$$
原因是：早期 checkpoint performance 可能只由单个 episode 估计出来，容易过拟合到一次偶然高回报。如果后续改用 20 个 episodes 的 minimum criterion，而旧 checkpoint 的标准来自单次 episode，则旧 checkpoint 可能被过高估计，导致后续更稳定的策略难以替换它。论文明确说，这样做是因为 checkpoint performance 可能 overfit 到用于 assessment 的单个 episode。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))
这个修正可以理解为：
$$
\boxed{  
\text{降低早期单 episode 评估造成的偶然高分门槛}  
}  
$$
---

# 12. TD7 的完整 checkpoint 机制

TD7 默认 checkpoint scheme 可以概括为：
$$
\text{criterion}

\min \text{ performance over assessment episodes}  
$$
$$
\text{late maximum assessment episodes}=20  
$$
$$
\text{early maximum assessment episodes}=1  
$$
$$
\text{early stage}=750k \text{ timesteps}  
$$
$$
\text{criteria reset weight}=0.9  
$$
$$
\text{early termination enabled}  
$$

论文在附录中明确总结：TD7 使用 minimum performance over 20 assessment episodes；assessment phase 是可变长度的，如果当前策略 minimum performance 低于 checkpoint policy，就提前终止；早期阶段最大 assessment episode 数从 1 开始，并在 750k timesteps 后增加到 20。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

---

# 13. checkpoint 与 target network 的区别

TD7/TD3 中还存在 target network，例如：
$$
Q_{\bar\theta}  
$$
$$
\pi_{\bar\phi}  
$$
target network 用于构造稳定的 Bellman target：
$$
y=

r+\gamma Q_{\bar\theta}(s',\pi_{\bar\phi}(s'))  
$$
它服务于 **训练稳定性**。

而 checkpoint policy：
$$
\pi_c  
$$
服务于 **策略选择与测试时使用**。

两者不是一回事：

|概念|作用|更新依据|是否用于测试|
|---|---|---|---|
|target network|稳定 Bellman target|Polyak averaging / delayed update|通常不用|
|checkpoint policy|保存训练过程中表现最好的策略|assessment return|TD7 测试时使用|
|current policy|正在训练的策略|actor gradient|不一定测试时使用|

因此：
$$
\boxed{  
\text{target network 是训练工具；checkpoint policy 是模型选择工具}  
}  
$$
---

# 14. checkpoint 与 early stopping 的区别

TD7 的 checkpoint 有点像 early stopping，但并不等同。

early stopping 通常是：
$$
\text{验证集性能不再提升}  
\Rightarrow  
\text{停止训练}  
$$
TD7 checkpoint 是：
$$
\text{训练继续进行}  
$$
$$
\text{只是在过程中保存表现最好的 policy}  
$$
即使 checkpoint policy 已经很好，当前 policy 仍然继续训练。训练结束后，测试时使用 checkpoint policy，而不是最后的 current policy。

所以：
$$
\boxed{  
\text{checkpoint 不终止训练，只改变最终选用哪个策略}  
}  
$$
---

# 15. checkpoint 与 replay buffer 的关系

assessment episodes 不是“纯评估 episode”，因为它们发生在训练过程中。**它们产生的 transition 仍可进入 replay buffer**：
$$
(s_t,a_t,r_t,s_{t+1}) \rightarrow \mathcal D  
$$
区别在于：**在 assessment phase 中，当前策略保持固定，暂时不进行训练更新。等 assessment phase 结束后，再根据累计的环境步数执行相同数量的训练更新**：
$$
N \text{ environment steps}  
\Rightarrow  
N \text{ gradient updates}  
$$
这样既能获得稳定的 policy assessment，又不减少总的训练更新次数。

---

# 16. checkpoint 为什么能提高 RL 测试表现？

主要机制有三个。

第一，**避免使用退化的最终策略**。RL 训练中最后一个策略可能因为 critic 误差、探索噪声、策略更新过大而退化。checkpoint 保存历史上表现最好的策略，可以避免 final-policy degradation。

第二，**偏好稳定策略**。TD7 用 minimum performance 而非 mean performance，因此一个高均值但偶尔严重失败的策略不容易被选为 checkpoint。

第三，**使策略性能测量更可靠**。通过 batching training，assessment phase 内策略固定，不会出现“一个 assessment 过程对应多个不断变化的策略”的问题。论文明确指出，标准 off-policy 每步训练会使当前策略在测量期间改变，因此 TD7 改为先收集多个 assessment episodes，再批量训练。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

---

# 17. checkpoint 不是主要优化目标

需要注意：checkpoint 本身不直接改变 Bellman loss，也不直接改变 policy gradient 公式。

critic 仍然学习：
$$
Q(s,a)  
$$
actor 仍然更新：
$$
\max_\pi Q(s,\pi(s))  
$$
SALE 仍然学习状态—动作嵌入。

checkpoint 的作用是在训练流程层面引入一个选择机制：
$$
{\pi_1,\pi_2,\dots,\pi_T}  
\rightarrow  
\pi_c  
$$
也就是从训练轨迹中选择较好的策略，而不是假定：
$$
\pi_T  
$$
一定最好。
因此 checkpoint 是一种 **training-loop / model-selection 机制**，不是新的 Bellman backup，也不是新的 actor objective。

---

# 18. TD7 ablation 中 checkpoint 的位置

TD7 的主要组件包括 SALE、policy checkpoints、LAP prioritized replay，以及 offline RL 中的 behavior cloning term。论文 ablation 中 “No checkpoints” 表示：像 TD3 和其他 off-policy deep RL 一样，每个时间步都训练，而不是在一批 episodes 后训练；并且测试时使用 current policy。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

论文还比较了 “Current policy” 与 “TD3 with checkpoints”等变体，用于区分 checkpoint policy 本身和其他训练流程变化的影响。([ResearchGate](https://www.researchgate.net/publication/371311493_For_SALE_State-Action_Representation_Learning_for_Deep_Reinforcement_Learning "(PDF) For SALE: State-Action Representation Learning for Deep Reinforcement Learning"))

这说明 checkpoint 在 TD7 中有两个可分解作用：
$$
\text{改变训练节奏}  
$$
$$
\text{测试时使用 checkpoint policy}  
$$
其中第一点来自 assessment phase batching，第二点来自最终 policy selection。

---

# 19. 数学化总结

设训练过程中产生一系列当前策略： 
$$
\pi_1,\pi_2,\dots,\pi_T  
$$
普通 off-policy RL 默认测试：
$$
\pi_T  
$$
TD7 checkpoint 机制测试：
$$
\pi_c
=
\arg\max_{\pi_k}  
C(\pi_k)  
$$
其中 TD7 默认使用：
$$
C(\pi_k)
=
\min_{1\le i\le m}  
R_i(\pi_k)  
$$
并带有 early termination：
$$
\text{if }  
\min_{1\le i\le k}R_i(\pi_{\text{cur}})  
\le  
C(\pi_c),  
\quad  
\text{stop assessment}  
$$
早期阶段：
$$
m=1  
$$
后期阶段：
$$
m=20  
$$
切换时：
$$
C(\pi_c)\leftarrow 0.9C(\pi_c)  
$$
因此，TD7 的 checkpoint 可以严格定义为：
$$
\boxed{  
\pi_c
=
\text{训练过程中按 minimum assessment return 选择出的稳定策略副本}  
}  
$$
---

# 20. 最核心理解

TD7 中 checkpoint 的本质不是“定期保存模型文件”，而是：
$$
\boxed{  
\text{在非单调、波动强的 RL 训练过程中，维护一个历史上表现最稳定的策略，并在测试时使用它}  
}  
$$


其完整机制包括：
$$
\text{固定当前策略运行 assessment episodes}  
$$
$$
\text{用 minimum episode return 衡量稳定性}  
$$
$$
\text{若当前策略超过 checkpoint policy，则更新 checkpoint}  
$$
$$
\text{若当前策略已不可能超过 checkpoint，则提前结束 assessment}  
$$
$$
\text{assessment 后再补足训练更新}  
$$
$$
\text{训练结束后使用 checkpoint policy，而非最后 current policy}  
$$
所以，checkpoint 在 TD7 中解决的不是“如何让 Bellman target 更准确”，而是“如何避免最终使用一个训练后期退化或不稳定的策略”。这在强化学习中尤其重要，因为策略性能常常不是单调上升的，最后的策略并不必然是最好的策略。