药膳房的王师傅最近很纠结:他研发了一款“新配方血气汤”,在老汤底里加了一味陈皮、改了两处火候——这跟“数据增强”给训练数据加扰动、造变体是同一个思路。问题来了:这锅汤到底有没有真的变好?王师傅自己天天喝,坚信“更补了”,可客人心想:你说了能算?数据增强的效果评估也面临同样的灵魂拷问:训练精度涨了,模型就真的变强了吗,还是只是把老熟客的口味背了下来?本文借王师傅的“验方记”,讲一套科学的评估流程:设计对照实验排除干扰、用陌生测试集做盲评、设定白水基线做参照、让不同配方两两PK、换恶劣工况测抗打击能力、分组查公平性,最后用统计检验回答——这点提升,到底是真金还是运气?学完这套方法,你就能拿数据说服同事和老板,而不是拍胸脯说“我觉得有效”。

岗位关联

提升不是感觉,而是可复现、可统计、可汇报的证据。掌握效果评估,你能在资源有限的团队里用数据证明每个增强策略的真实价值,避免无效投入,成为那个“拿数据说话”的关键角色。

目录
  1. 可视化演示
  2. 对比实验设计
  3. 泛化性能对比
  4. 基线基准设定
  5. 增强方法排序
  6. 鲁棒性测量
  7. 公平性影响
  8. 显著性检验
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示增强前后性能对比、多增强方法效果排序与统计显著性检验,切换模式用数据科学方法验证数据增强的真实价值。

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

增强前后性能对比实验 控制变量法:仅改变增强策略,其余超参数、数据集、种子完全一致 对比验证集准确率、F1等指标,增强后泛化性能提升3.2% Δ = Acc(aug) - Acc(base) 对比实验是验证增强效果最直接的科学方法

对比实验设计

药膳房的王师傅想验证新配方。他先把老汤和新汤分别端给两拨客人,结果新汤好评如潮。可这能说明新配方厉害吗?不能——今天水好、明天火大,两拨客人的口味也不一样,谁也说不好差异来自哪一步。王师傅被店里的账房先生点醒:要验证,就必须两口锅、同一锅水、同一把火、同时下锅,只差那味新药材。

数据增强的对比实验也是同一个道理。所谓“控制变量”,就是让增强组和对照组在所有其他条件上完全一致:同一个模型结构、同一套超参数、同样的训练轮数、同样的随机种子。唯一允许不同的,就是训练数据里有没有加增强。除此之外,两组数据还必须同源——从同一份原始数据里切分出来,而不是各自找一份私藏数据集。最后,还要多做几轮独立重复实验来防止单次运气,就像盲评不能只办一天。

有了这样的“干净”实验环境,效果就能被量化成一个简单的差值:

这个差值看起来简单,却是所有评估的地基。差值越大,增强越有说服力;差值为负,说明增强帮了倒忙。

王师傅按账房先生的办法重做了一次盲评:两锅汤同时出锅,请同一批客人分别试喝打分,最后一看分数差,才敢说那味药材到底值不值。数据增强评估的第一步,就是先把这口“同锅同火”的规矩立起来。

ΔAcc=Accaug−Accbase\displaystyle \Delta Acc = Acc_{\text{aug}} - Acc_{\text{base}}
这个公式把“增强有没有用”压缩成一个数字:正数代表提升,负数代表倒退,绝对值代表幅度。
  1. 识别两个精度$Acc_{\text{aug}}$ 是增强方案的测试精度,$Acc_{\text{base}}$ 是无增强基线的测试精度,两者必须来自同一份测试集才可比。
    Accaug,  Accbase\displaystyle Acc_{\text{aug}},\; Acc_{\text{base}}
  2. 求差得到提升量用增强方案精度减去基线精度,正数代表提升、负数代表倒退。
    ΔAcc=Accaug−Accbase\displaystyle \Delta Acc = Acc_{\text{aug}} - Acc_{\text{base}}

泛化性能对比

王师傅的汤每天都给老熟客喝。老熟客喝习惯了,哪怕味道变奇怪也会说“还行”。可新配方到底有没有普适性,要请从没进过店的陌生人来判断——他们没喝过老汤,舌头最公道。

在机器学习里,老熟客就是训练集——模型在里面见过无数遍,记住答案不算本事。评估增强效果,最终要看模型在“从未参与训练”的测试集上的表现。为了不让开发过程偷看答案,数据通常切成三份:训练集用来学、验证集用来调参、测试集只准最后碰一次。增强有没有用,以测试集上的指标为准。

测试集精度本质是一个计数平均:

如果出现“训练集大涨、测试集不涨甚至下跌”,就要警惕过拟合——增强可能只是让模型把增强样本死记硬背了下来,就像老熟客记住了新汤的怪味道。

王师傅的新汤必须通过“陌生人盲评”这一关。老熟客夸得再响,陌生人一皱眉头,配方就得打回重做。泛化性能对比,就是给增强方案设的那道陌生人关卡。

Acctest=1N∑i=1NI(y^i=yi)\displaystyle Acc_{\text{test}} = \frac{1}{N}\sum_{i=1}^{N}\mathbb{I}(\hat{y}_i = y_i)
逐个样本核对“猜没猜对”,猜对的记 1 分、猜错的记 0 分,取平均就是正确率。
  1. 样本总数$N$ 表示测试集中样本的个数,样本越多指标越稳定。
    N\displaystyle N
  2. 单样本比对$\hat{y}_i$ 是模型对第 $i$ 个样本的预测标签,$y_i$ 是它的真实标签。
    y^i,  yi\displaystyle \hat{y}_i,\; y_i
  3. 指示函数计分$\mathbb{I}(\cdot)$ 括号内成立返回 1、不成立返回 0,即“预测对了记 1 分”。
    I(y^i=yi)\displaystyle \mathbb{I}(\hat{y}_i = y_i)
  4. 取平均得精度对所有样本的计分求和再除以样本数,得到最终正确率。
    1N∑i=1NI(y^i=yi)\displaystyle \frac{1}{N}\sum_{i=1}^{N}\mathbb{I}(\hat{y}_i = y_i)

基线基准设定

王师傅跟客人说“新汤更补”,客人反问:跟什么比?跟白开水比,当然补;跟店里的招牌老汤比,才见真章。基线选错了,结论就失去意义。

评估增强也一样,必须先约定“跟谁比”。第一层是无增强基线:原始数据直接训练,这是最朴素的“白水底子”。第二层是强增强基线:业界常用的成熟增强方法,代表“别人家的标准做法”。第三层要求同起点公平比较:两组用相同的初始化、相同的算力预算、相同的迭代次数,防止“增强组多跑了十轮所以赢了”。

为了在不同基线水平之间公平比较提升幅度,光看绝对精度差不够,还要看相对提升率:

王师傅最后在测菜牌上写了三行:跟清水比、跟老汤比、跟隔壁药膳馆的招牌比。三行对比摆在一起,新配方到底有几分成色,一目了然。评估增强效果前,先诚实回答:你的基线是谁?

RelGain=Accaug−Accbase1−Accbase\displaystyle \text{RelGain} = \frac{Acc_{\text{aug}} - Acc_{\text{base}}}{1 - Acc_{\text{base}}}
同样的两个百分点,从 90% 提到 92% 和从 60% 提到 62%,难度完全不同。相对提升率用“还能错多少”做分母,把提升放在同一个刻度上比较。
  1. 绝对提升量分子是增强相对基线的绝对精度提升。
    Accaug−Accbase\displaystyle Acc_{\text{aug}} - Acc_{\text{base}}
  2. 错误空间分母 $1 - Acc_{\text{base}}$ 表示基线还存在的错误比例,是理论上的提升空间。
    1−Accbase\displaystyle 1 - Acc_{\text{base}}
  3. 缺口的填补比例比值表示增强填掉了多大比例的错误缺口,消除起点差异的影响。
    RelGain\displaystyle \text{RelGain}

增强方法排序

王师傅不满足于“新汤胜过老汤”,他又试了三款候选配方:加陈皮、加党参、加枸杞。三款汤各有拥趸,谁才是真正的招牌?王师傅决定让它们两两盲评,赢的记一分,最后按胜率排名。

这对应着多方案评估:当候选增强方法不止一个时,两两对比矩阵是最常用的手段。每个方案都跟其他所有方案在同一条评估流水线上 PK,统计各自赢了几场。为了避免“一招鲜吃遍天”,还可以同时记录平均排名和多次重复实验的方差,综合排序。

胜率是最直观的排序指标:

三款新配方盲评下来,加党参那款胜率最高,加枸杞的单独喝不错、一对比就露怯。王师傅心服口服,把胜率表贴在了后厨的墙上。多方案排序,就是给增强方法们办一场公平的擂台赛。

WinRate(A)=WAM\displaystyle \text{WinRate}(A) = \frac{W_A}{M}
胜率越接近 1,说明该方案在与所有对手的正面对决中越占优;接近 0.5 则说明它和对手半斤八两。
  1. 对比场数$M$ 是方案 A 参与的对比总场数,为了公平,每个对手都走完全相同的训练评估流程。
    M\displaystyle M
  2. 获胜场数$W_A$ 是 A 在这些对比中明确胜出的场数,平局或落败都不计入。
    WA\displaystyle W_A
  3. 胜率计算获胜场数除以总场数得到 0 到 1 之间的胜率,用来给所有增强方案排序。
    WinRate(A)=WAM\displaystyle \text{WinRate}(A) = \frac{W_A}{M}

鲁棒性测量

王师傅的店开到冬天,换了新市场进的药材;遇到口味极刁的客人,还会故意多放半勺盐试汤。新配方在理想厨房里好喝不算数,扛得住这些“恶劣工况”才算真有两下子。

模型的鲁棒性测量也是这个思路:把训练好的模型放到各种压力场景里重新测试。常见手法包括给输入加噪声扰动、模拟分布偏移(比如测试数据来自新的拍摄环境)、构造极端样本(比如超低分辨率图片)。增强如果真的让模型学到了更本质的特征,就应该在压力环境下表现更稳。

鲁棒性评估最常用的量化方式,是看精度降幅:

王师傅让客人盲喝“加盐版”的汤:老配方一喝直皱眉,新配方虽然咸了点,但底味还立得住。他把这轮测试记成“压力测试通过”。增强要证明自己有用,就得在恶劣工况下依然不掉链子。

Drop=Accclean−Accstress\displaystyle \text{Drop} = Acc_{\text{clean}} - Acc_{\text{stress}}
干净的测试集好比晴天路况,压力测试集好比暴雨天。Drop 越小,说明模型越经得起考验。
  1. 干净环境精度$Acc_{\text{clean}}$ 是模型在原始测试集上的精度,相当于正常天气下的成绩。
    Accclean\displaystyle Acc_{\text{clean}}
  2. 压力环境精度$Acc_{\text{stress}}$ 是模型在加噪、偏移或极端样本下的精度,相当于暴雨天开车。
    Accstress\displaystyle Acc_{\text{stress}}
  3. 降幅求差两者相减得到鲁棒性降幅,增强前后对比 Drop 是否变小,就知道增强是否真正提升了抗打击能力。
    Drop\displaystyle \text{Drop}

公平性影响

王师傅发现一个尴尬现象:新汤年轻人喝了精神百倍,但几位老人喝了直说心慌。平均好评率挺好,可总不能对老人说“平均起来你没事吧”。药膳要卖得安心,必须把人群拆开看。

数据增强同样可能放大偏差:如果增强方式对某个群体特别“偏心”(比如人脸增强偏好某一肤色),整体平均精度可能不变甚至上升,但少数群体的精度悄悄下滑。公平性评估要求在测试时按属性分组——性别、年龄段、地域等——分别计算精度,再比较组间差距。

衡量公平性恶化的核心指标是最大组间差距:

王师傅连夜调整配方,减了那味让老人心慌的药材,重新分组试喝:年轻人、老人、小孩各一桌,三桌都点头,他才敢把“十全大补”四个字挂出去。效果评估不分工不看组,总有一天会翻车。

Gap=max⁡gAccg−min⁡gAccg\displaystyle \text{Gap} = \max_g Acc_g - \min_g Acc_g
增强前后各算一次 Gap:Gap 缩小说明增强让各组更均衡;Gap 变大说明增强在放大既有偏差。
  1. 分组遍历$g$ 表示某个分组(如性别、年龄段),$Acc_g$ 是该分组在测试集上的精度。
    Accg\displaystyle Acc_g
  2. 找最高组$\max_g Acc_g$ 是所有组中精度最高的那个,代表“被照顾得最好”的群体。
    max⁡gAccg\displaystyle \max_g Acc_g
  3. 找最低组$\min_g Acc_g$ 是所有组中精度最低的群体。
    min⁡gAccg\displaystyle \min_g Acc_g
  4. 组间差距两者相减得到最大组间鸿沟,用来判断增强是弥合了差距还是撕大了裂口。
    Gap\displaystyle \text{Gap}

显著性检验

王师傅请了十个客人打分,新汤平均分比老汤高 0.3。他刚要高兴,账房先生泼了盆冷水:万一今天有几个客人心情好,手一松就多给了 0.5,这 0.3 说不定只是运气。怎么分辨真效果和运气?统计学就是干这个的。

机器学习实验同样充满随机性:数据划分不同、初始化不同,精度就有波动。为了把“真实提升”从“随机波动”里分离出来,需要做假设检验。最常用的是配对 t 检验:在多次重复实验里,每次同时跑增强组和对照组,得到一组配对的精度差,然后检验这组差值的均值是否显著不为零。原假设 H0 是“增强没有效果”,如果数据强烈反对 H0,我们才敢宣称有效。

配对 t 检验的统计量长这样:

注意 p 值不是“增强有效的概率”,而是“假设没效果时看到这么极端结果的概率”——它衡量的是证据的强度。

王师傅把试喝规模从 10 人加到 30 人,连续三天重复测试,新配方每次都稳定领先,p 值压到 0.01,账房先生才点头。三个月后,“十全大补汤2.0”成了招牌。最后一次科学验证告诉他:这味陈皮,加得值。

t=dˉsd/n\displaystyle t = \frac{\bar{d}}{s_d / \sqrt{n}}
公式叫“信号除以噪声”:分子是平均提升量,分母是“平均值的波动”。|t| 越大,越不像随机造成的。
  1. 配对差值均值$\bar{d}$ 是多次重复实验中“增强减基线”精度差的平均值,即每轮都记一次两锅汤的分差后再取平均。
    dˉ\displaystyle \bar{d}
  2. 差异波动$s_d$ 是这些差值本身的标准差,反映每轮实验分差的波动幅度。
    sd\displaystyle s_d
  3. 标准误$s_d / \sqrt{n}$ 是均值差的标准误,$n$ 是重复实验次数,次数越多标准误越小、结论越稳。
    sd/n\displaystyle s_d / \sqrt{n}
  4. 检验统计量$t$ 值衡量信号相对噪声的强度,查 t 分布表得到 p 值,通常 $p < 0.05$ 算显著“实锤”。
    t=dˉsd/n\displaystyle t = \frac{\bar{d}}{s_d / \sqrt{n}}

AI 应用场景

增强方案的消融实验报告

阶段:模型评估与上线决策

解决的问题:算法工程师需要在版本发布前回答“旋转、裁剪、色彩抖动这些增强到底加不加”。传统做法是凭经验直接加,上线后靠 A/B 兜底,发现问题时为时已晚。用本文的对比实验协议:固定模型与随机种子,只增删增强策略,在同一测试集上重复 5 次实验,输出精度均值正负方差和配对 t 检验 p 值,形成一页可读的消融报告。

具体案例:某图像分类团队评估“随机擦除”时,验证集涨了 0.8%,但 5 次重复实验 p=0.09,未达显著阈值,判定证据不足,避免了一次无效上线;三个月后换用“马赛克增强”,p=0.003,才正式合入训练管线。

增强策略库的自动排序

阶段:数据策略优化与选型

解决的问题:团队维护着几十种增强策略,不知道该给哪个项目推荐哪套。传统做法靠各个项目组各自摸索,经验无法沉淀。用两两对比矩阵加胜率排序,建立统一的增强基准库:每种策略在同一评测基准上反复对比,产出胜率表,新项目直接查表选型。

具体案例:某 NLP 团队对比反译、随机词替换、语法扰动三种文本增强,两两对比后随机词替换胜率 0.67 排名第一,反译在长文本上反而掉点,最终把反译降级为长文本专用方案。

人脸识别公平性合规审计

阶段:模型审计与合规

解决的问题:监管要求证明“增强没有放大人群偏差”。传统只报整体准确率,审计无法通过。用分组精度核对加最大组间差距 Gap 加鲁棒性降幅,输出增强前后的公平性对比表,用数据回答“哪些群体受益、哪些群体受损”。

具体案例:某安防厂商在复盘时发现,加入“低分辨率模拟”增强后整体精度提升 0.5%,但深肤色人群误检率上升 3 个百分点,Gap 从 4% 扩大到 7%。团队据此回滚该增强,并重新设计采样平衡策略。

Python 演示

python94 行
# -*- coding: utf-8 -*-"""数据增强效果评估演示: 对比有无增强的模型, 并做配对t检验"""import mathimport random  def make_dataset(seed=42):    """生成一份二维二分类数据, 模拟一锅锅标记好口感的汤"""    random.seed(seed)    data = []    for _ in range(120):        x1 = random.gauss(0, 1)        x2 = random.gauss(0, 1)        y = 1 if x1 + x2 + random.gauss(0, 1.2) > 0 else 0        data.append([x1, x2, y])    return data  def augment(data, noise=0.6):    """数据增强: 给输入特征加入小幅高斯噪声, 类似药膳加入新药材"""    aug = []    for row in data:        aug.append([row[0] + random.gauss(0, noise),                    row[1] + random.gauss(0, noise), row[2]])    return aug  def train(data, epochs=40, lr=0.1):    """极简逻辑回归: 用梯度下降学出一组权重"""    w1 = w2 = b = 0.0    for _ in range(epochs):        for x1, x2, y in data:            z = w1 * x1 + w2 * x2 + b            p = 1 / (1 + math.exp(-z))            err = p - y            w1 -= lr * err * x1            w2 -= lr * err * x2            b -= lr * err    return w1, w2, b  def predict(model, x1, x2):    """用学到的权重对新样本做预测"""    w1, w2, b = model    return 1 if w1 * x1 + w2 * x2 + b > 0 else 0  def accuracy(model, data):    """统计模型在一批数据上的正确率"""    hit = sum(predict(model, r[0], r[1]) == r[2] for r in data)    return hit / len(data)  def paired_t_test(scores_aug, scores_base):    """配对t检验: 两组结果共用同一批测试样本, 形成配对数据"""    n = len(scores_aug)    diffs = [a - b for a, b in zip(scores_aug, scores_base)]    mean_d = sum(diffs) / n    var_d = sum((d - mean_d) ** 2 for d in diffs) / (n - 1)    sd_d = math.sqrt(var_d)    return mean_d / (sd_d / math.sqrt(n))  def k_fold_split(data, k=5):    """把数据切分成k份, 轮流当陌生评审团"""    random.shuffle(data)    folds = []    size = len(data) // k    for i in range(k):        folds.append(data[i * size:(i + 1) * size])    return folds  def main():    random.seed(7)    data = make_dataset()    folds = k_fold_split(data)    acc_base, acc_aug = [], []    for fold in folds:        test_set = fold        train_set = [row for row in data if row not in fold]        base_model = train(train_set)        aug_model = train(augment(train_set))        acc_base.append(accuracy(base_model, test_set))        acc_aug.append(accuracy(aug_model, test_set))    t = paired_t_test(acc_aug, acc_base)    print("无增强平均精度:", round(sum(acc_base) / len(acc_base), 4))    print("增强后平均精度:", round(sum(acc_aug) / len(acc_aug), 4))    print("配对t检验统计量:", round(t, 4))    print("结论: |t| < 2.78 时, 提升可能只是随机波动, 不建议直接上线")  if __name__ == "__main__":    main()
目的:演示一套完整的数据增强效果评估流程——同一份数据切 5 折,有无增强各训练一个模型,最后用配对 t 检验判断提升是否显著。
  1. data = make_dataset()先生成一批“原始食材”,固定随机种子保证实验可复现
  2. folds = k_fold_split(data)把数据切 5 份,每份轮流当“陌生评审团”
  3. train_set = [row for row in data if row not in fold]除当前折外的四折合并成训练集,测试集绝不掺进训练
  4. base_model = train(train_set)对照组:用原始数据训练一锅“老汤”
  5. aug_model = train(augment(train_set))实验组:唯一区别是训练前先做数据增强
  6. acc_aug.append(accuracy(aug_model, test_set))每折都记录一次测试精度,形成配对样本
  7. t = paired_t_test(acc_aug, acc_base)对五折配对结果做配对 t 检验,算出统计量
  8. return mean_d / (sd_d / math.sqrt(n))核心一行:信号除以噪声,得到 t 值
  9. print("结论: |t| < 2.78 时, 提升可能只是随机波动, 不建议直接上线")用自由度 4 的临界值给出可执行的上线决策提示

常见误区

误区我在训练集上看到精度涨了好几个点,说明增强立了大功,赶紧写进周报!增强把模型喂饱了,肯定没问题。

正解训练集精度上升可能只是模型记住了增强样本——就像老熟客习惯了新口味,不代表陌生人认可。必须看从未参与训练的测试集;如果测试集没涨甚至跌,那就是过拟合的幻觉。增强的终点不是“背下来”,而是“能举一反三”。

为何常见:训练过程里最先看到、最容易跟踪的指标就是训练精度,新手天然把它当成绩单,忘了模型本来就会在见过的东西上越练越熟。

误区验证集从 92.3 涨到 92.8,够了吧?那 0.5 个百分点看起来挺稳的,直接上生产,早点拿收益。

正解单次验证集涨跌包含随机性:一次运气好、一次手抖都可能带来 0.5 的差异。正确做法是换多个随机种子重复实验,看均值与方差,再做配对 t 检验。0.5% 若 p=0.3,跟抛硬币差不多;若 p=0.01,才是真提升。

为何常见:人脑擅长从噪声里“看见”规律,一点点上升就想庆祝,这在心理学上叫确认偏误——永远记得涨的那次,忘了跌的那次。

误区把旋转、裁剪、噪声、反译全加上,模型见的世面最多,肯定最强!增强库里的好东西全给它喂上。

正解无脑叠加会让样本偏离真实分布,甚至互相抵消。每一味“药材”都要单独评估,组合效果更要以实验为准。就像王师傅把二十味药全倒进一锅汤,那不是大补,是毒药。增强强度本身也是超参数,过犹不及。

为何常见:直觉上“更多数据变体等于更多信息”,忽略了分布失真的代价,也低估了不同增强之间的相互干扰。

误区整体精度原地踏步,这个增强方案白试了,删掉吧。平均数没动,肯定没效果。

正解平均值会掩盖分组差异:A 组涨了 3%、B 组跌了 2%,平均下来“没变化”,但公平性已经恶化。要做分组精度核对和鲁棒性测试,可能发现增强在个别群体或恶劣工况下确有大用。把发烧和失温平均成“体温正常”,是会误诊的。

为何常见:汇报习惯只报一个平均数,极少拆开看分布,导致信息被“平均”掉,也错过了发现细分价值的机会。

面试题

Q1. 在验证“数据增强是否有用”的对比实验中,下列哪项最符合控制变量原则?

单选题 · easy

  • A.增强组用大模型、对照组用小模型
  • B.两组使用相同模型与随机种子← 正确答案
  • C.增强组多训练一倍训练轮数
  • D.两组分别使用不同测试集

答案:B。控制变量要求除“是否增强”外一切相同:同模型、同种子、同轮数、同测试集。A/C/D 都偷偷改变了其他变量,即使有差异也说不清来源,就像王师傅盲评时换了锅又换了水。

Q2. 判定增强效果的最终指标,应当来自哪个数据集?

单选题 · mid

  • A.训练集精度越高越好
  • B.验证集精度够用即可
  • C.测试集精度从未参与训练← 正确答案
  • D.增强样本自身精度好坏

答案:C。训练集是“老熟客”,模型见过无数遍,记住答案不算本事;验证集用于调参,也会被间接影响。只有从未参与训练的测试集像陌生人的舌头,最能反映真正的泛化能力。

Q3. 同一批测试样本上进行多次重复实验后,判断提升是否显著应使用什么方法?

单选题 · mid

  • A.直接比较两轮的最大精度
  • B.配对 t 检验的统计量← 正确答案
  • C.比较训练集上的损失高低
  • D.观察损失曲线的形状走势

答案:B。增强组和对照组共用同一批测试样本,形成天然的配对数据,正好满足配对 t 检验的前提。最大精度、训练损失、曲线形状都容易受随机波动干扰,不能作为显著性的证据。

Q4. 关于 p 值,下列说法正确的是?

单选题 · mid

  • A.它是增强方案为真的概率
  • B.它是基线方案为真的概率
  • C.无差异时出现该结果的概率← 正确答案
  • D.提升效果绝对可靠的概率

答案:C。p 值是在“假设增强没有效果”的前提下,观察到当前或更极端差异的概率。它衡量证据的强度,而不是方案为真的概率。p=0.01 表示:如果增强真没效,出现这么大差异的概率只有 1%。

Q5. 某增强在测试集上提升 0.3%,配对 t 检验 p=0.06,最合理的做法是?

单选题 · hard

  • A.效果显著立即全量上线
  • B.证据不足增加实验次数← 正确答案
  • C.p 越小说明提升幅度越大
  • D.只要 p 小于零点一就算有效

答案:B。p=0.06 大于常用的 0.05 阈值,证据不足,不能宣告显著。p 值大小反映证据强度,不代表提升幅度,所以 C 错;盲目上线 A 和放宽标准 D 都违背了用数据说话的初衷。应先增加重复实验次数再看。

Q6. 数据增强过度(噪声过大)最可能的后果是?

单选题 · easy

  • A.测试集精度大幅提升
  • B.训练集精度稳定不变
  • C.引入噪声导致精度下降← 正确答案
  • D.模型收敛速度明显加快

答案:C。增强的本质是往数据里注入“合理的变体”,噪声过大就像一锅汤放了半斤盐,食材本味被毁掉,模型学到的分布离真实世界越来越远,测试精度反而下降。这就是王师傅“压力测试失败”的版本。

Q7. 增强后整体平均精度上升,但某一少数群体精度下降,这说明?

单选题 · hard

  • A.增强有效,可以放心上线
  • B.平均指标掩盖了公平性恶化← 正确答案
  • C.少数群体样本理应表现更差
  • D.只需把整体精度再提高即可

答案:B。平均值是“发烧加失温除以二”,掩盖了组间差距。增强可能对多数群体很友好,却悄悄放大对少数群体的偏差。必须按分组算精度、算 Gap,发现公平性恶化就回滚或重新设计增强策略。

Q8. 评估增强效果时,下列哪些指标应当纳入检查?

多选题 · easy

  • A.测试集上的泛化精度← 正确答案
  • B.噪声扰动下的鲁棒性← 正确答案
  • C.不同分组的公平性差距← 正确答案
  • D.训练集上的拟合速度

答案:ABC。泛化精度回答“有没有变强”,鲁棒性回答“扛不扛打”,公平性差距回答“是不是偏心”。训练集拟合速度不是效果指标——模型背答案也可以背得很快,它不能证明泛化能力。

Q9. 关于规范的增强对比实验,以下哪些做法是必要的?

多选题 · mid

  • A.固定相同的随机种子← 正确答案
  • B.采用同一测试集评测← 正确答案
  • C.多次运行并做统计检验← 正确答案
  • D.各组使用不同的数据来源

答案:ABC。固定随机种子、同一测试集是控制变量的基本要求;多次运行并检验显著性是为了排除运气。各组使用不同数据来源会让差异说不清来自增强还是数据,是典型的实验设计错误。

Q10. 关于增强方法两两排序,下列说法正确的有?

多选题 · hard

  • A.胜率最高的方案综合表现最好← 正确答案
  • B.两两对比需保持评估条件一致← 正确答案
  • C.排名第一等于在所有场景碾压
  • D.可结合平均排名和方差判断← 正确答案

答案:ABD。胜率是两两 PK 的综合结果,条件一致才公平;排名第一只说明整体占优,不代表每个场景都碾压——可能在某类样本上恰好垫底。因此还要看平均排名和多次实验的方差,避免“一招鲜”误导决策。