鲁大厨花了三个月研发“算法红烧肉”,朋友尝了一口说“不错”,他立刻挂出“全镇第一”的招牌。第二天,食客们却抱怨味道忽咸忽淡。问题出在哪?他只让朋友尝了一口啊。一道菜的品质,要看很多食客吃很多次,要记录平均分和分数的波动范围,要和隔壁店的招牌菜做盲测对比,还要在不同厨房、不同火候下试做。评估强化学习模型,和这位大厨试菜是同一个道理:你训练了一个策略,它在一次 episode 里表现好,不代表它在所有情况下都稳定。环境是随机的、策略是采样的,一次跑分只能证明“这一次运气不错”。要科学地评估,你需要学会多次采样、计算置信区间、做显著性检验、避免在评估环境上反复调参,最后设计一套多环境评估协议。这篇文章就用“试菜”这条线,把这些方法讲清楚。

岗位关联

掌握可靠的 RL 评估方法,意味着你的实验结论经得起复现、经得起审稿人和业务方的质疑——这是做研究、做对比选型的基本功。

目录
  1. 可视化演示
  2. 单次评估陷阱
  3. 多次采样统计
  4. 置信区间
  5. 对比显著性检验
  6. 规避环境过拟合
  7. 多环境评估协议
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

动态演示强化学习模型该怎么评估才靠谱的核心机制,通过采集/分析/决策/反馈四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

强化学习模型该怎么评估才靠谱:RL评估 RL评估的特殊性与挑战 多次采样与统计量计算 核心机制可视化 强化学习模型该怎么评估才靠谱整体架构与关键组件

单次评估陷阱

鲁大厨端出刚做的“算法红烧肉”,朋友尝了一口,眼睛一亮:“绝了!”鲁大厨当场就要挂招牌。可第二天,同一道菜,另一位食客却皱眉头。同一道菜,尝一口的结论天差地别——因为火候、咸淡、食材批次都在变。强化学习里的策略也是这个脾气:同一个策略,让它重新跑一局,结果可能天差地别。

在强化学习里,一次完整的“从开始到结束”的尝试过程叫一个 episode,相当于“试吃一口”。这一局里,环境有自己的随机性,策略也在按概率采样动作,所以这一局的累计得分——称为回报——是运气和实力的混合体。只看一局回报,就像只听一个食客的一句话。

单次回报可以用折扣累计奖励来表示:把这一局里每一步拿到的奖励,按时间远近打折后全部累加起来。

如果你只用一次 episode 的回报评价算法,等于把“这一局的运气”当成“策略的真实水平”。随机种子换了、episode 提前终止了,分数就会剧烈波动,很容易得出错误结论。正因如此,正规评估的第一步,就是要认清“单次评估不可靠”。

所以鲁大厨要做的第一件事,是别再拿一个人的一句话当结论。他会请来一整桌食客——对应到 RL,就是从单次采样走向多次采样。

Gt=∑k=0Tγkrt+k+1\displaystyle G_t = \sum_{k=0}^{T} \gamma^{k} r_{t+k+1}
这个公式算的是“这一局从时刻 t 开始到最后总共攒下多少分”,分数越高代表这一局走得越好。
  1. 累计回报 $G_t$代表这一个 episode 从时刻 $t$ 到结束累计打的总分,是这一局的最终成绩。
    Gt=∑k=0Tγkrt+k+1\displaystyle G_t = \sum_{k=0}^{T} \gamma^{k} r_{t+k+1}
  2. 即时奖励 $r_{t+k+1}$第 $t+k+1$ 步拿到的奖励,也就是环境每时每刻反馈的分数。
    rt+k+1\displaystyle r_{t+k+1}
  3. 折扣因子 $\gamma^k$离当前越远的奖励越要打折,通常 $\gamma$ 取 0.9 到 0.99,让远期收益“缩水”。
    γk∈(0,1)\displaystyle \gamma^{k} \in (0, 1)
  4. 求和上限 $T$episode 终止的那一刻,一局游戏结束的终点。
    k=0,1,2,…,T\displaystyle k = 0, 1, 2, \ldots, T

多次采样统计

鲁大厨这次学乖了,请了三十位食客,每人尝一口,把分数记下来。有人给 6 分,有人给 9 分,最后算个平均分:7.4。这个“多人口味的平均”,明显比单独一个人的评价更可信。RL 评估也一样:跑 N 次独立实验,得到 N 个回报,用算术平均来估计策略的期望回报,这个平均叫经验均值。

不过光有平均分还不够。如果三十个人给的分数全都堆在 7.4 附近,说明这道菜发挥很稳定;如果分数从 2 分到 9 分满天飞,那这道菜就是“看运气好吃”。描述这种离散程度的量,叫样本标准差。

采样次数 N 怎么选?太少不稳定,太多成本高。对 RL 来说,30 个种子是常见起步,30 到 100 个种子的回报就可以做出比较靠谱的统计推断。样本量还直接决定后续显著性检验的灵敏度,所以这一步别省。

一桌食客给了平均分,但鲁大厨心里还有疑问:平均分 7.4,是最稳定的 7.4,还是忽高忽低的 7.4?他需要知道分数大概落在什么范围——这就是下一节的置信区间。

Jˉ=1N∑i=1NJi,s=1N−1∑i=1N(Ji−Jˉ)2\displaystyle \bar{J} = \frac{1}{N} \sum_{i=1}^{N} J_i, \qquad s = \sqrt{\frac{1}{N-1} \sum_{i=1}^{N} \left(J_i - \bar{J}\right)^2}
第一个式子是多次试吃的平均分,第二个式子是每次得分偏离平均分的平均程度:偏离越大,越不稳定。
  1. $J_i$(单次回报)第 $i$ 次采样得到的 episode 回报,相当于第 $i$ 位食客打的分数。
    Ji\displaystyle J_i
  2. $\bar{J}$(样本均值)N 次回报的算术平均,用来估计策略期望回报的“平均分”。
    Jˉ=1N∑i=1NJi\displaystyle \bar{J} = \frac{1}{N} \sum_{i=1}^{N} J_i
  3. 偏差 $J_i - \bar{J}$每次回报相对均值的偏离,偏离越大说明这一局越“超常”。
    Ji−Jˉ\displaystyle J_i - \bar{J}
  4. 除以 $N-1$(无偏修正)用 $N-1$ 而不是 $N$ 作分母,得到的样本方差才更接近真实方差。
    1N−1∑i=1N(Ji−Jˉ)2\displaystyle \frac{1}{N-1} \sum_{i=1}^{N} \left(J_i - \bar{J}\right)^2
  5. 开根号(样本标准差)把方差开根号,得到和回报同单位的 $s$,描述“菜的味道”有多飘。
    s=⋯\displaystyle s = \sqrt{\cdots}

置信区间

食客们给了平均分 7.4,鲁大厨若只写“7.4 分”,客人会以为每次都 7.4。更诚实的写法是:这道菜在 6.9 到 7.9 分之间。这个“大概范围”,就相当于试菜时的置信区间。RL 评估里,多次采样的回报均值是一个点估计(只有一个数字),但策略真实的期望回报大概率落在一个区间里,这个区间叫置信区间。

为了构造它,先要回答一个问题:平均值本身有多不稳?即便每次都从同一个策略采样,不同批次的 30 次实验算出的均值也会上下浮动。这个浮动的大小用标准误衡量。

区间越窄,说明你的评估越有底气;区间如果宽到横跨“好”和“坏”,那就说明样本还不够多,别急着下结论。报告论文和实验对比时,写“均值 ± 95% 置信区间”是基本礼仪。

鲁大厨把“6.9 ~ 7.9 分”写进菜单之后,隔壁面馆的李老板不服:“我家平均分 7.6,比你高!”鲁大厨要想知道这个差距到底是真的还是偶然,就得做下一件事——显著性检验。

Jˉ±tα/2,N−1×sN\displaystyle \bar{J} \pm t_{\alpha/2, N-1} \times \frac{s}{\sqrt{N}}
简单说就是:把平均分往两边各扩一点,得到一个范围。采样越多,这个范围越窄,你的结论越有底气。
  1. $\bar{J}$(样本均值)多次评估的平均回报,相当于食客们打出的平均分。
    Jˉ\displaystyle \bar{J}
  2. 标准误 $s / \sqrt{N}$衡量“平均分本身”有多不稳,它由标准差和样本量共同决定,样本越多越小。
    sN\displaystyle \frac{s}{\sqrt{N}}
  3. $t_{\alpha/2, N-1}$(临界值)$t$ 分布的临界值,样本量越小、置信水平越高,这个数越大;样本超过 30 时接近 1.96。
    tα/2,N−1≈1.96(α=0.05,N≥30)\displaystyle t_{\alpha/2, N-1} \approx 1.96 \quad (\alpha = 0.05, N \ge 30)
  4. $\pm$(区间构造)把临界值乘标准误,再在平均分两边各放一份,得到置信区间的上下界。
    Jˉ−t⋅SE到Jˉ+t⋅SE\displaystyle \bar{J} - t \cdot SE \quad \text{到} \quad \bar{J} + t \cdot SE

对比显著性检验

隔壁面馆李老板也请了食客打分,平均分 7.6,比鲁大厨的 7.4 高。鲁大厨不服:会不会只是偶然?两人决定同一天、同一批食材、同一批食客,做一场公正盲测。这就是“控制变量”:两个算法在完全相同的随机种子下各跑 N 次,然后对每一对结果做差。因为随机源相同,很多运气成分被抵消了,剩下的差值更能反映真实差距。

这种“同一批种子配对比较”的做法,对应统计里的配对检验:先逐种子算出 A 与 B 的回报差,再对差值做分析。如果平均差值明显偏离零,说明两个算法的差异不太可能是偶然。

注意 p 值小于 0.05 只说明“这种差距不太可能是偶然”,并不自动代表“差距很大”。还要结合均值差的大小和置信区间,看这个提升在业务上是否值得。样本量很大时,微小的提升也能算出很小的 p 值,所以永远要把“统计显著”和“实际显著”分开看。

盲测结果出来,如果 p 值小于 0.05,鲁大厨才敢把“胜过面馆”写进招牌。但菜还没完——他目前只在自己厨房里试过,换一家店做就翻车,那这个结论照样不可靠。

t=dˉsd/N,di=JiA−JiB\displaystyle t = \frac{\bar{d}}{s_d / \sqrt{N}}, \qquad d_i = J_i^{A} - J_i^{B}
这个公式算出一个 t 值,把它换算成 p 值:p 越小,说明“两个算法其实一样好、却碰巧出现这么大差值”的可能性越低。
  1. 配对差值 $d_i$同一个随机种子上算法 A 和算法 B 的回报差,把两边共有的随机性抵消掉。
    di=JiA−JiB\displaystyle d_i = J_i^{A} - J_i^{B}
  2. $\bar{d}$(平均差值)所有种子差值的平均,代表 A 相对 B 的平均优势。
    dˉ=1N∑i=1Ndi\displaystyle \bar{d} = \frac{1}{N} \sum_{i=1}^{N} d_i
  3. $s_d$(差值标准差)差值序列的离散程度,反映“优势”在不同种子上稳不稳定。
    sd=1N−1∑i=1N(di−dˉ)2\displaystyle s_d = \sqrt{\frac{1}{N-1} \sum_{i=1}^{N} (d_i - \bar{d})^2}
  4. $t$(检验统计量)平均差值除以差值的标准误,t 越大说明优势越难归因于偶然。
    t=dˉsd/N\displaystyle t = \frac{\bar{d}}{s_d / \sqrt{N}}

规避环境过拟合

鲁大厨的菜在自己厨房百试百灵,可一用邻居家的灶台就糊锅。为什么?因为他太熟悉自己厨房的脾气了:火候快慢、锅的温度、调料摆放位置都在影响操作。换句话,他记住了厨房的习惯,而不是真正掌握做菜的原理。RL 评估也有类似的坑:你在同一个评估环境上反复调参、反复看结果,最后挑最好的来报告,表面上是“调参调得好”,实际上是一次次偷看答案。

反复在评估环境上看结果,本质上是在做无数次“比较”:每次都选分数更高的超参组合,即便算法没有真实提升,总有一次会因运气而显得很好。这就是多重比较带来的假阳性膨胀。

规避方法总结成三条:把评估环境“锁起来”,调参只用训练和验证环境,最终评估只碰一次;用多个随机种子做跨种子验证,避免某个种子上运气爆棚;早停准则基于验证集设计,而不是基于最终评估环境。这样报告出来的性能才有泛化意义,不会一换环境就露馅。

鲁大厨终于明白,真正的好菜要经得起换灶台的考验。于是他把菜拿到街头小店、酒店后厨、户外灶台各做一遍——这就是最后一节的多环境评估协议。

P=1−(1−α)m\displaystyle P = 1 - (1 - \alpha)^{m}
如果单次比较的犯错概率是 α,比较 m 次后,至少一次“假显著”的概率就会快速涨上去。调参调了 20 次,哪怕所有候选都一样烂,也有约 64% 的概率看到一个“显著”的假结果。
  1. 显著性水平 $\alpha$单次检验允许的假阳性概率,通常取 0.05。
    α=0.05\displaystyle \alpha = 0.05
  2. $1 - \alpha$(单次不犯错)单次比较没有出现假阳性的概率。
    1−α=0.95\displaystyle 1 - \alpha = 0.95
  3. $(1-\alpha)^m$(全部不犯错)m 次独立比较全部没有假阳性的概率,m 越大越接近 0。
    (1−α)m\displaystyle (1-\alpha)^{m}
  4. $P$(至少一次假阳性)用 1 减去“全部不犯错”,得到至少一次看走眼的概率。
    P=1−(1−α)m\displaystyle P = 1 - (1-\alpha)^{m}

多环境评估协议

鲁大厨最后制定了一份“试菜规程”:不同的厨房、不同的食材、不同的食客,每个环境都要试吃多次,最后综合所有结果写出一份试菜报告。这份规程,就是评估协议。多环境评估协议是当前 RL 研究的标配,它至少包含四个要素:环境多样性、评估基线、评估预算、报告规范。

多环境评估的数学表达是先环境内平均、再环境间平均:每个环境内部先做多次采样得到该环境的平均回报,然后把各个环境的平均回报再平均一次,得到跨环境平均性能。

实际操作上:环境多样性指选几个有代表性的任务,别全选类似地图;基线指每个环境都要和经典算法(比如 PPO、DQN 的标准变体)在相同预算下对比;预算指明确每环境跑多少个种子、每个种子多少 episode;报告则要给出每个环境的均值 ± 95% 置信区间、种子数、以及是否只碰了一次评估集。跨环境总结时,先逐环境汇报,再报告多环境平均。

当鲁大厨拿着这套规程,在三种厨房里做出一致好吃的菜,并把每一家厨房的评分和波动写成报告,他才真正有底气说:“我的算法红烧肉,真的靠谱。”评估 RL 模型,同理。

Jˉmulti=1M∑e=1M(1Ne∑i=1NeJe,i)\displaystyle \bar{J}_{\text{multi}} = \frac{1}{M} \sum_{e=1}^{M} \left( \frac{1}{N_e} \sum_{i=1}^{N_e} J_{e,i} \right)
这个公式提醒我们:评估不只是“多跑几次”,还要“多换地方跑”,并把不同地方的分数综合起来看,才算完整的验收。
  1. 环境编号 $e$从 1 到 $M$,共 $M$ 个不同的评估环境。
    e=1,2,…,M\displaystyle e = 1, 2, \ldots, M
  2. $N_e$(环境内样本量)在第 $e$ 个环境里跑的 episode 次数,每个环境都要有足够的样本。
    Ne\displaystyle N_e
  3. $J_{e,i}$(环境内单次回报)环境 $e$ 的第 $i$ 次样本回报。
    Je,i\displaystyle J_{e,i}
  4. 先对内平均用 $\frac{1}{N_e} \sum_{i=1}^{N_e} J_{e,i}$ 算出环境 $e$ 的代表性分数。
    1Ne∑i=1NeJe,i\displaystyle \frac{1}{N_e} \sum_{i=1}^{N_e} J_{e,i}
  5. 再对外平均把 $M$ 个环境的代表性分数再做一次平均,得到最终的跨环境性能。
    1M∑e=1M(⋯ )\displaystyle \frac{1}{M} \sum_{e=1}^{M} \left( \cdots \right)

AI 应用场景

论文与基准报告中的算法对比

阶段:模型评估与对比选型

解决的问题:传统做法只报一次最好结果,复现性差、结论站不住脚。用多次采样 + 95% 置信区间 + 配对 t 检验,可以公正判断新算法是否真的优于 baseline。

具体案例:研究者开发一个新的 off-policy 算法,在 MuJoCo 的多个环境中,用 10 个种子各跑固定步数,报告每个环境的均值 ± 置信区间,并用配对 t 检验证明它比 SAC 有显著提升。

强化学习工程的超参搜索与模型发布

阶段:调参与模型选型

解决的问题:调参时反复查看评估环境会让报告结果虚高。用“留出评估环境”+ 记录调参次数 + 多重比较校正,保证上线模型的性能是真实的。

具体案例:某推荐系统团队用 RL 做重排序,训练阶段保留一个冻结评估环境,只在发布前测一次;对比多个候选超参时,用 Bonferroni 校正调整显著性水平。

跨环境泛化能力验收

阶段:模型上线前验收

解决的问题:只在一个仿真环境验证容易过拟合,换场景就失效。多环境评估协议给出一套标准化报告模板,让“能不能上线”有据可依。

具体案例:机器人控制团队在三个不同仿真环境和一台简化实物设备上跑固定预算评估,逐环境上报均值与置信区间,综合判定策略已具备泛化能力。

Python 演示

python43 行
import mathimport numpy as np def simulate_pair(mean_a, mean_b, n_episodes=30, seed=0):    """用同一组随机源模拟两个策略的回报序列"""    rng = np.random.default_rng(seed)    A = np.empty(n_episodes)    B = np.empty(n_episodes)    disc = 0.99 ** np.arange(100)    for i in range(n_episodes):        noise = rng.normal(0.0, 1.5, size=100)        A[i] = np.sum((mean_a + noise) * disc)        B[i] = np.sum((mean_b + noise) * disc)    return A, B def summarize(returns, t_crit=1.96):    """返回均值、95% CI、标准差、标准误"""    n = len(returns)    mean = returns.mean()    sd = returns.std(ddof=1)    se = sd / math.sqrt(n)    return mean, mean - t_crit * se, mean + t_crit * se, sd, se def normal_cdf(x):    return 0.5 * (1 + math.erf(x / math.sqrt(2))) def paired_ttest(A, B):    """配对 t 检验"""    d = A - B    n = len(d)    mean_d = d.mean()    se_d = d.std(ddof=1) / math.sqrt(n)    t_stat = mean_d / se_d    p_value = 2 * (1 - normal_cdf(abs(t_stat)))    return t_stat, n - 1, p_value if __name__ == "__main__":    A, B = simulate_pair(mean_a=1.2, mean_b=1.0, n_episodes=30, seed=42)    mean_a, lo_a, hi_a, sd_a, se_a = summarize(A)    t_stat, df, p_value = paired_ttest(A, B)    print("算法A: mean=%.3f, 95%% CI=[%.3f, %.3f]" % (mean_a, lo_a, hi_a))    print("配对检验: t=%.3f, df=%d, p=%.4f" % (t_stat, df, p_value))    print("结论:", "差异显著" if p_value < 0.05 else "差异不显著")
目的:模拟两个 RL 策略在同一批随机源下的多次回报,计算均值与 95% 置信区间,并用配对 t 检验判断二者差异是否显著。
  1. noise = rng.normal(0.0, 1.5, size=100)生成一份公共随机噪声,让 A/B 在“同一批食材”上做对比,类似盲测控制变量。
  2. disc = 0.99 ** np.arange(100)构造随时间递减的折扣向量,越靠后的奖励折得越狠,对应公式里的 γ^k。
  3. A[i] = np.sum((mean_a + noise) * disc)把每一步奖励按折扣求和,得到这一局的总分。
  4. sd = returns.std(ddof=1)用 ddof=1 算样本标准差,度量单次回报的波动幅度。
  5. se = sd / math.sqrt(n)计算标准误:采样次数越多,均值估计越窄。
  6. d = A - B逐种子做差,把两算法共有的随机性抵消掉,留下纯粹的差异。
  7. p_value = 2 * (1 - normal_cdf(abs(t_stat)))用正态近似算双边 p 值,p < 0.05 视为差异显著。

常见误区

误区我在环境里跑了一次,回报 350,比以前高了 50,这算法肯定更好。一次跑完立刻下结论,既省时间又很直观。

正解单次 episode 受随机种子、环境扰动和策略采样的影响极大,一次高分可能只是运气好。正确做法是固定 30 个以上种子多次采样,看均值,再看置信区间,像试菜要请一桌人尝,不能只吃一口。

为何常见:单次实验成本低,跑完立刻能说“更高了”,容易让人把“这一次的体验”当成“真实水平”。

误区我跑了 30 次,平均回报 320,比另一个方法的 300 高,所以我的方法更好。均值都算出来了,数据够科学了吧?

正解均值只是点估计,不展示方差等于没说可信度。320 可能标准差高达 50,也可能只有 5,两种情况下的置信区间完全不同。至少要报“均值 ± 95% 置信区间”,让读者自己判断这个 320 到底稳不稳。

为何常见:均值好算又好讲,方差和置信区间要费口舌,汇报时大家倾向于把数字挑最好看的说。

误区p = 0.001,说明算法提升非常明显,赶紧写进论文里。p 值这么小,肯定是压倒性优势。

正解p 值只回答“如果两个算法无差异,出现这种差值的概率”,它受样本量影响极大。样本足够多时,一个微不足道的提升也能算出很小的 p 值。要同时报告均值差的大小和置信区间,判断业务上是否真的有价值。

为何常见:很多人把“统计显著”等同于“实际显著”,觉得 p 越小越厉害,实际上是两码事。

误区我反复用测试环境看结果,把最好的超参挑出来发布,效果当然好。多试几次又不影响什么。

正解这叫评估集污染,等于把测评答案背下来参加考试。每次调参后看评估结果都是一次比较,比较次数多到一定程度,假阳性概率会按 1-(1-α)^m 膨胀。正确做法是留出最终评估环境,只能碰一次。

为何常见:调参时立刻看到“提升”比统计严谨更让人安心,而且很少有人认真记录自己到底看了多少次评估结果。

误区我用了 100 个环境,每个环境跑 3 次,这肯定比 3 个环境每个跑 100 次更权威。环境多就是全面。

正解环境多但每个环境样本太少,噪声大,统计功效低,最后平均出来的数字毛刺很多。合理做法是选少量有代表性的环境,每个环境跑足量的种子数,环境间同时报告均值和方差。

为何常见:“种类多”给人的直观印象更全面,容易忽略每环境内部样本量不足会带来更大的统计噪声。

面试题

Q1. 为什么不能只跑一次 episode 就评估 RL 算法好坏?

单选题 · easy

  • A.episode 太长耗时高
  • B.单次回报方差很大← 正确答案
  • C.奖励函数没有定义
  • D.算法必须用神经网络

答案:B。单次 episode 的回报受环境随机性、策略采样、随机种子影响,波动极大,像只尝一口菜就判断整桌水平。奖励函数未定义或算法结构问题,都不是“一次 vs 多次”的理由。

Q2. 多次采样后,通常用什么统计量表示评估结果的集中趋势?

单选题 · easy

  • A.中位数回报
  • B.均值回报← 正确答案
  • C.最小值回报
  • D.最大值回报

答案:B。均值回报是期望回报的无偏估计,是多轮试吃后的平均分。中位数也行但不如均值常用,最小值和最大值只看极端情况,代表不了整体水平。

Q3. 标准误(SE)和标准差(SD)的关系是?

单选题 · mid

  • A.SE = SD × √N
  • B.SE = SD / √N← 正确答案
  • C.SE = SD + N
  • D.SE = SD² / N

答案:B。标准误是均值估计的波动幅度,等于标准差除以样本量的平方根。采样越多,均值越稳,所以 SE 随 N 增大而变小,这正是置信区间收窄的原因。

Q4. 下列关于 95% 置信区间的说法,哪一个是频率学上的正确解释?

单选题 · mid

  • A.算法性能95%落在区间内
  • B.重复实验95%区间覆盖真值← 正确答案
  • C.算法来自随机误差概率95%
  • D.区间是最值之间的跨度

答案:B。频率学视角下,区间本身是随机的,真值是固定的。重复同样实验 100 次,大约 95 次构造出的区间能套住真值。A 是初学者最容易混淆的“区间套性能”说法。

Q5. 两个算法用同一组随机种子各跑 N 次,对比性能最合适的检验是?

单选题 · mid

  • A.配对 t 检验← 正确答案
  • B.卡方检验
  • C.F 检验
  • D.K 均值检验

答案:A。同一组种子让两个算法的随机源相同,先逐种子做差再检验,能去掉公共随机性,这叫配对检验。卡方和 F 检验用于别的问题,K 均值根本不是检验方法。

Q6. p 值小于 0.05 的正确含义是?

单选题 · mid

  • A.算法B有95%概率更好
  • B.无差别时此概率低于5%← 正确答案
  • C.算法B确定比A更好
  • D.需要至少再跑5次实验

答案:B。p 值是指在“两个算法真的一样好”的假设下,观察到当前这么极端差值的概率。它不代表 B 有 95% 概率更好,也不代表确定性结论,更不能推出“再跑几次”的要求。

Q7. 在评估环境上反复调参并报告最优结果,主要问题是什么?

单选题 · hard

  • A.单纯是计算成本高
  • B.评估集被污染致虚高← 正确答案
  • C.算法只过拟合训练集
  • D.环境慢慢变得不稳定

答案:B。反复看评估集并挑选最优结果,等于把评估题答案背下来再考试,报告的性能会虚高。计算成本和环境本身并非核心问题,过拟合训练集与“看评估集”是两个方向。

Q8. 下列哪些做法属于规范的 RL 评估?

多选题 · easy

  • A.固定多个随机种子实验← 正确答案
  • B.报告均值与置信区间← 正确答案
  • C.只取一次最好结果
  • D.多环境交叉验证← 正确答案

答案:ABD。固定多颗种子、报告均值与置信区间、多环境交叉验证,都是让结论更稳的做法。只取一次最好结果违背了多次采样原则,容易把运气当实力。

Q9. 设计多环境评估协议时应考虑哪些内容?

多选题 · mid

  • A.环境的多样性← 正确答案
  • B.每环境的样本预算← 正确答案
  • C.经典基线对比← 正确答案
  • D.提升炼丹成功率

答案:ABC。环境多样性保证结论不偏科,样本预算决定每个环境跑多少种子,基线对比让结果有参照系。“提升炼丹成功率”不是评估协议的内容。

Q10. 关于多重比较导致 α 膨胀,下列说法正确的有?

多选题 · extreme

  • A.比较次数越多,假阳性概率越高← 正确答案
  • B.可用 Bonferroni 校正← 正确答案
  • C.反复查看评估集结果无害
  • D.调参后的最优结果需要打折看← 正确答案

答案:ABD。每多比较一次,至少一次“假显著”的概率就按 1-(1-α)^m 上升,所以反复看评估集很有害。Bonferroni 校正是经典应对手段;调参后选出的最优结果通常高估真实性能,需要打折看待。