老周在城南开了家“慧眼小馆”,招牌菜没有固定菜单——客人点什么他就做什么。他的后厨有个特别的本事:看人下菜。客人要川菜,他用猛火快炒;客人要老火汤,他文火慢煨。冰箱里的食材多寡,决定他是一菜多吃还是精益求精;上桌前,他总要自己先夹一筷子尝尝,淡了加盐,咸了兑汤。这一整套心法,就是老周的“择菜经”。 做 AI 的算法工程师,其实也在开一家“慧眼小馆”。数据是食材,数据增强策略是烹饪手法。同样一堆数据,图像任务要旋转翻转,文本任务要同义词替换,时序任务要加噪扭曲;数据少时要“物尽其用”,数据多时要“克制调味”;调料可以组合,但有的组合是灾难;好不好吃,必须试过才知道。这篇内容,就是把老周的择菜经翻译成“数据增强策略选择”的方法论。读完你能学会按任务类型选方法的决策树、按数据量级调强度的经验法则、组合搭配的避坑指南,以及用实验验证策略的完整流程。

岗位关联

数据增强策略选对了,模型效果事半功倍;选错了,轻则白费算力,重则污染模型。这套方法论能帮你少走弯路,让每一次增强投入都花在刀刃上,这也是算法工程师制定数据方案时的核心基本功。

目录
  1. 可视化演示
  2. 任务类型画像:每种数据都有自己的脾气
  3. 决策树择法:老周的点菜心法
  4. 数据量级评估:食材多少,决定怎么做
  5. 增强强度控制:火候的学问
  6. 组合搭配法则:调料的艺术
  7. 实验验证流程:上桌之前先试菜
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

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

增强策略选择决策树 任务类型? 根据任务类型选择增强策略:分类→强增强 | 检测/分割→弱增强+同步标注 不同任务对增强的容忍度 数据增强策略选择可视化:展示按任务类型的决策树、不同任务对增强的容忍度、按数据量级调整增强强度、策略组合搭配经验法则、实验验证流程及常见误区与最佳实践。

任务类型画像:每种数据都有自己的脾气

老周的后厨里永远备着三四种刀。切土豆丝用薄刃刀,剁排骨用厚背刀,片鱼用柳叶刀——他常说,“什么食材配什么刀,刀用错了,菜就输了。”数据增强也一样,图像、文本、时序、表格,四种数据就是四种食材,各有各的脾气。

图像数据是“土豆”——它经得起切(裁剪)、翻(翻转)、转(旋转),因为人眼看一张照片,无论左右颠倒还是上下翻转,都能认出内容。文本数据是“豆腐”——它碰不得大刀,只能“以词换词”(同义词替换)、“整句重译”(回译),动得太狠就碎了。时序数据是“鱼”——要顺着鱼骨(时间轴)轻拿轻放,加一点噪声、做一点幅度缩放,但不能倒着切片。表格数据是“杂烩”——每列特征都有业务含义,不能用几何手法,只能用 SMOTE 这类插值技术在样本之间“和稀泥”,或者对特征做小幅扰动。

把这种直觉写成数学,增强就是一个带参数的变换函数。每个任务都有一族“专属变换”:图像族里有旋转、裁剪、翻转、色彩抖动;文本族里有同义词替换、回译、随机删除;时序族里有噪声注入、幅度缩放、时间扭曲;表格族里有 SMOTE、特征扰动。选增强方法的第一步,就是确认手里的食材属于哪个族群,然后只在对应族群里面挑手法。

老周常说,刀用对了,菜就成功了一半。任务类型画像就是帮你“选刀”:先搞清楚食材是土豆、豆腐还是鱼,再挑对应的刀法。这一步做扎实了,后面的火候、调料、搭配才有意义。

x~=Tθ(x),Tθ∈Θtask\tilde{x} = T_{\theta}(x), \quad T_{\theta} \in \Theta^{\text{task}}
这个式子说:增强不是乱改,而是在“任务允许的变形范围”内做一次受控的改造——像老周片鱼时顺着鱼骨下刀,既改了形,又不坏味。
  1. 增强后的样本 $\tilde{x}$波浪线表示“改造之后的版本”。土豆切成丝,原料还是那个土豆,但形态已经变了,模型的训练菜单上多了一道菜。
    x~\tilde{x}
  2. 带参数的变换 $T_{\theta}(x)$$T$ 是某项增强手艺,$\theta$ 是手艺的具体参数——旋转多少度、裁剪多大、加多少噪声。参数一改,同样名叫“旋转”的增强,做出来完全不同。
    Tθ(x)T_{\theta}(x)
  3. 任务专属变换族 $\Theta^{\text{task}}$所有适合当前任务类型的变换组成的集合。图像任务的 $\Theta$ 里没有“回译”,文本任务的 $\Theta$ 里没有“翻转”。这个集合就是老周那排挂着的刀,什么菜用哪把,清清楚楚。
    Θtask\Theta^{\text{task}}

决策树择法:老周的点菜心法

客人落座,老周心里就开盘算:点什么菜?食材够不够?客人是赶时间还是慢慢吃?这三问在脑中飞快过一遍,答案就出来了。这套“三问心法”放到数据增强里,就是一棵决策树。

决策树的第一层分叉看任务类型——图像、文本、时序还是表格,直接锁定变换族;第二层分叉看数据量——小样本、中量数据还是海量数据,决定增强力度;第三层分叉看当前瓶颈——如果是过拟合(模型把训练样本背下来了),就减轻增强、加正则化;如果是欠拟合(模型还没学会规律),就加大增强、换更大模型。三层分叉走完,一个具体的增强方案就落地了。

这棵决策树的价值在于“把经验显式化”。新手容易一上来就堆砌各种增强技巧,结果不知道是哪个起了作用、哪个在帮倒忙。决策树逼你先回答三个问题,答案一旦明确,可选的策略范围立刻从“几十种”缩小到“两三种”,后面只需在这两三种里做实验。

老周的三问心法听起来简单,难的是“每次都不跳步”。很多团队跳过了瓶颈检查,直接上强增强,结果模型越训越差还不知道原因。把决策树当成习惯,你的增强策略就不再靠拍脑袋,而是靠逻辑。

a∗=arg⁡max⁡a∈A  Suit(a∣τ,N,b)a^{*} = \arg\max_{a \in \mathcal{A}} \; \text{Suit}\bigl(a \mid \tau, N, b\bigr)
这个式子在说:每个候选增强策略都会得到一个“合适度”评分,评分依据是任务类型、数据量和当前瓶颈,最终选分数最高的那一个——就像老周在菜单上挑一道客人最满意、后厨又做得出的菜。
  1. 最优策略 $a^{*}$右上角的星号表示“从所有候选人里挑出的冠军”。
    a∗a^{*}
  2. 候选集合 $a \in \mathcal{A}$$\mathcal{A}$ 是全部增强方法的菜单,$a$ 是其中一道菜。
    a∈Aa \in \mathcal{A}
  3. 打分函数 $\text{Suit}(a \mid \tau, N, b)$给定任务 $\tau$、数据量 $N$、瓶颈 $b$ 条件下,给策略 $a$ 打“合适度”分数。竖线“$\mid$“读作”在……条件下“,这里表示”根据这些信息来评判”。
    Suit(a∣τ,N,b)\text{Suit}(a \mid \tau, N, b)
  4. 取最大值 $\arg\max$在所有候选里找出打分最高那个。这正是决策树三层分叉的数学化:逐层筛选,直到分数最高者出现。
    arg⁡max⁡\arg\max

数据量级评估:食材多少,决定怎么做

冰箱里只剩两个土豆时,老周会切丝、切片、蒸、炸来回琢磨,物尽其用;冰箱里堆满食材时,他反而随手取用,懒得折腾。“食材越少越要精打细算”,这句话是数据增强里最容易被忽略的真理。

小样本场景(几百到几千条)下,模型“吃不饱”,此时增强几乎是必需品——把每个样本通过多种变换变成一组样本,相当于一道菜做出好几个花样,有效扩充训练集;中量数据(几千到几万条)下,增强是“调味品”,适度组合使用提升泛化;海量数据(几十万条以上)下,增强反而要克制,因为大模型在大数据上已经能学到丰富规律,过多的增强只会把真实分布“带偏”。

经验法则可以浓缩成一个粗糙的负幂律:最优增强比例随数据量增大而下降。数据量翻倍,增强比例不是翻倍,而是成倍缩小。这也解释了为什么工业界的大模型训练往往只做轻量增强甚至不加增强。

老周说,“冰箱满的时候,我反而最清闲。”数据量大的团队常常焦虑“要不要上更多增强”,其实正确的答案是收敛、克制,把算力留给真正有用的事。判断自己属于哪个量级,是定增强强度之前必须先做的功课。

raug∗∝N−α,α>0r^{*}_{\text{aug}} \propto N^{-\alpha}, \quad \alpha > 0
数据量 $N$ 越大,最优增强比例 $r$ 越小。比例关系画成曲线,就是一条向右下走的斜坡——像老周面对堆满食材的冰箱,反而不再炫技,只做最家常的菜。
  1. 最优增强比例 $r^{*}_{\text{aug}}$训练集中由增强生成的新样本所占的比例,是我们要调节的核心旋钮。
    raug∗r^{*}_{\text{aug}}
  2. 正比符号 $\propto$表示“跟着同方向变化”。数据量变大,比例就变小;数据量变小,比例就变大。
    ∝\propto
  3. 数据量的负幂次 $N^{-\alpha}$$N$ 越大,$N^{-\alpha}$ 越小。$\alpha$ 是衰减快慢的调节旋钮,取正值,通常经验值在 0.3~0.8 之间。
    N−αN^{-\alpha}

增强强度控制:火候的学问

老周做红烧肉有个讲究:冰糖炒过头就发苦,炒不到火候就不上色。“多放一点”和“刚好”之间,往往只有十秒钟的距离。数据增强的强度,就是这十秒钟。

增强强度太低,模型见不到足够多的变化,欠拟合的老毛病还在;增强强度太高,样本被改得面目全非,甚至改变了语义——比如把数字“6“旋转 180 度变成”9“,把”我不喜欢“回译成”我讨厌“……这类”假样本“会教坏模型。强度旋钮要扭到”变化足够大,但语义不变”的位置上,这就是强度阈值设定的核心。

数学上,这个“刚好”可以描述为:增强后的数据分布与真实分布的差异不能超过某个阈值。KL 散度就是一把测量差异的尺子,它把“改到认不出”这件事量化出来——差异超过 $\varepsilon$,就说明增强过度了,需要往回拧。

“火候”是用实验喂出来的直觉。新项目可以先从保守强度起步,再逐步加大,每加一档就看验证集变化,这种渐进式增强的做法,就是老周试锅的翻版——先小火烧着,边看边调,烧到刚刚好的那一刻就收手。

DKL(Preal ∥ Paug)≤εD_{\mathrm{KL}}\bigl(P_{\mathrm{real}} \,\|\, P_{\mathrm{aug}}\bigr) \le \varepsilon
左边这把“尺子”量一量增强后的数据分布和真实数据分布差多远,右边是能容忍的最大偏差。超标就说明调料放多了,菜已经不是原来的菜了。
  1. KL 散度 $D_{\mathrm{KL}}$衡量两个概率分布之间差异的指标,值越大代表差异越大,为 0 时代表分布完全一致。它是“改得认不出”的量化标尺。
    DKLD_{\mathrm{KL}}
  2. 真实分布 $P_{\mathrm{real}}$原始数据的真实分布,代表“客人真正爱吃的口味”。
    PrealP_{\mathrm{real}}
  3. 增强后分布 $P_{\mathrm{aug}}$经过增强后模型实际看到的分布,代表“厨房端出来的口味”。
    PaugP_{\mathrm{aug}}
  4. 容差上限 $\varepsilon$允许的最大偏差。它是一个需要实验标定的小正数,类似“微调可以,改到客人认不出不行”的界线。
    ε\varepsilon

组合搭配法则:调料的艺术

老周的调料架分三层:底味层、香气层、收尾层。他说“葱姜蒜是底味,几乎什么菜都能放;但酸和碱不能同锅,发粉和小苏打不能共用。”增强策略的组合,也讲究这种搭配艺术。

经验法则是“互补正交优先”:几何类增强(旋转、翻转、裁剪)和颜色类增强(亮度、对比度、色彩抖动)作用在不同维度上,互不干扰,叠加起来让模型同时学到“形变不变性”和“颜色不变性”——这是互补性组合,也是正交性组合。文本里的同义词替换和回译也类似,一个改局部措辞,一个改整体句式。反过来,两个都“下重手”改变语义的增强(比如随机删除加回译)叠在一起,会叠加损坏标签,属于禁忌组合。

数学上,组合增强就是多个变换的复合(先做 $T_1$ 再做 $T_2$)。复合的顺序也有讲究——先做几何再做颜色,通常比反过来更自然,因为“形变了再调色”更符合真实世界的成像过程。设计组合时,可以用一个简单标准自我检查:每一步单独拿出来都不过度,组合起来后 KL 散度依然不超线。

老周有句口头禅:“调料不是越多越好,能互相成就的才放一起。”给项目配增强组合时,先把候选变换按作用维度归类,再按互补原则挑 2~3 个正交的叠加,宁缺毋滥——这比堆一长串增强列表要靠谱得多。

Tfinal=T1∘T2∘⋯∘TkT_{\mathrm{final}} = T_{1} \circ T_{2} \circ \cdots \circ T_{k}
最终端上桌的菜,是切、腌、炒一系列工序依次做下来的结果。组合增强就是把这些“工序”串成流水线,顺序和搭配决定了成品的好坏。
  1. 最终变换 $T_{\mathrm{final}}$流水线上所有工序完成后的总效果。
    TfinalT_{\mathrm{final}}
  2. 复合运算 $\circ$读作“复合”,表示“先做左边的变换,再做右边的变换”——注意顺序,$T_1 \circ T_2$ 和 $T_2 \circ T_1$ 通常不是一回事。
    ∘\circ
  3. 各步增强 $T_{1}, T_{2}, \dots, T_{k}$流水线上的每一步工序,$k$ 是工序总数。互补的工序叠加拓宽泛化,冲突的工序叠加放大损伤。
    T1,T2,…,TkT_{1}, T_{2}, \dots, T_{k}

实验验证流程:上桌之前先试菜

老周每天打烊前都要做一件固定的事:把第二天要上的新菜盛一小碟,自己先尝。淡了加盐,咸了兑汤,咸淡刚好才敢写进菜单。数据增强策略上线前,也要走这样一套“试菜流程”。

第一步是基线对比实验:在同一个模型、同一份数据上,跑一个“无增强”的基线,再跑一个“加增强”的实验,两者准确率之差就是增强策略的净贡献。第二步是消融实验分析:把组合里的增强逐个去掉,观察指标掉多少——掉得越多说明这个增强越关键,几乎不掉说明它在凑数。第三步是上线效果监控:增强的效果在测试集上验证过还不够,上线后还要持续对比线上指标,防止“训练有效、线上无效”的过拟合式幻觉。

消融实验的量化口径一般用相对提升率,也可以用 $F_1$、AUC 等其他指标替换。关键是三个实验都要用同一随机种子、同一验证集,保证只有增强策略这一个变量在变,否则对比出来的差异根本不知道来自哪里。

“试菜”看似多花时间,其实是省时间。老周宁可浪费一口菜,也不愿砸一道招牌;算法团队宁可多跑三组实验,也不愿把一套错误的增强策略带进生产环境。把验证流程固化到日常节奏里,策略选择才算真正闭环。

Δ=Aaug−AbaseAbase×100%\Delta = \frac{A_{\mathrm{aug}} - A_{\mathrm{base}}}{A_{\mathrm{base}}} \times 100\%
这是“试菜记录表”上的核心算式:用增强后的成绩减去基线的成绩,再除以基线成绩,得到提升百分比。涨了 5% 说明增强有效;掉了,说明这道菜做砸了。
  1. 增强后准确率 $A_{\mathrm{aug}}$加了调料(增强)之后模型的成绩。
    AaugA_{\mathrm{aug}}
  2. 基线准确率 $A_{\mathrm{base}}$原汁原味(无增强)的模型成绩,它是所有对比的参照系。
    AbaseA_{\mathrm{base}}
  3. 相对提升率 $\Delta$用差值除以基线的百分比。$\Delta > 0$ 表示增强带来净收益,$\Delta < 0$ 表示增强适得其反。
    Δ\Delta
  4. 乘以 100% $\times 100\%$把小数比值换算成百分数,方便人和报告阅读。
    ×100%\times 100\%

AI 应用场景

电商图像分类的增强策略选型

阶段:数据准备与模型训练

解决的问题:电商服饰类目图片标准统一,但真实用户拍摄图千奇百怪(倾斜、光照、遮挡),直接用原图训练容易过拟合。传统做法是人工收集更多实拍图,成本高、周期长;用决策树方法锁定“图像任务+中量数据+过拟合瓶颈”后,采用旋转、翻转、色彩抖动的适度增强组合,再以消融实验验证每一项的贡献。

具体案例:某电商平台服饰识别模型初始准确率 82%,使用适度增强组合(旋转 ±15°、水平翻转、亮度扰动)后验证集提升到 88%;消融实验发现旋转贡献最大、色彩抖动次之,随机裁剪反而掉点,于是被移除,最终方案只保留三个增强。

客服文本意图识别的回译增强

阶段:数据准备与模型迭代

解决的问题:客服语料往往只有几千条标注,直接训练意图分类模型容易过拟合。回译增强把中文语料翻译成英文再翻回中文,得到语义一致但表达多样的新样本——就像老周把同一道菜换三种装盘方式,客人吃到的还是那个味,但视觉上焕然一新。

具体案例:某银行智能客服“查余额”意图只有 800 条样本,使用回译增强扩到 4000 条后,意图识别 F1 从 0.71 提升到 0.79;再用消融实验确认回译比同义词替换贡献更大,为后续标注预算的分配提供了依据。

信贷风控表格数据的 SMOTE 增强

阶段:特征工程与模型训练

解决的问题:风控数据里违约样本稀少(正负比约 1:99),直接用原始表格训练会严重偏向多数类。SMOTE 在少数类样本之间插值生成新样本,缓解类别不平衡;同时用 KL 散度检查插值样本不偏离真实分布,避免增强过度。

具体案例:某消费金融公司用 SMOTE 将违约样本扩到原来的 3 倍后,坏账召回率提升 18%;实验验证流程中,先跑无增强基线,再跑 SMOTE 增强,最后做消融确认插值参数 $k$ 的敏感性,保证策略可解释、可复现。

Python 演示

python62 行
# -*- coding: utf-8 -*-"""数据增强策略选择:决策树 + 小实验验证(图像平移噪声增强)"""import numpy as npfrom sklearn.datasets import load_digitsfrom sklearn.linear_model import LogisticRegressionfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_score # 增强方法库:按任务类型分组AUG_POOL = {    "image": ["旋转", "翻转", "裁剪", "色彩抖动"],    "text": ["同义词替换", "回译", "随机删除"],    "time_series": ["噪声注入", "缩放", "时间扭曲"],    "table": ["SMOTE", "特征扰动"],} def select_strategy(task_type, data_size, bottleneck):    """决策树:先看任务类型,再看数据量,最后看瓶颈"""    if data_size < 2000:        intensity = "强增强"    elif data_size < 50000:        intensity = "适度增强"    else:        intensity = "轻增强"    if bottleneck == "过拟合":        intensity = "轻增强+正则化"    elif bottleneck == "欠拟合":        intensity = "强增强+更大模型"    methods = AUG_POOL.get(task_type, [])[:2]    return {"任务": task_type, "数据量": data_size,            "瓶颈": bottleneck, "推荐": intensity + ":" + "+".join(methods)} def augment_shift(X, y, shift=1, noise=0.01, seed=42):    """简单图像增强:像素循环平移 + 高斯噪声"""    rng = np.random.default_rng(seed)    X_aug, y_aug = [], []    for i in range(len(X)):        for s in range(-shift, shift + 1):            X_aug.append(np.roll(X[i], s) + rng.normal(0, noise, X[i].shape))            y_aug.append(y[i])    return np.array(X_aug), np.array(y_aug) if __name__ == "__main__":    # 决策树示例:三类典型场景    cases = [("image", 1500, "欠拟合"),             ("text", 30000, "过拟合"),             ("table", 200000, "过拟合")]    for c in cases:        print(select_strategy(*c))    # 实验验证:小样本图像任务,无增强 vs 适度增强    X, y = load_digits(return_X_y=True)    X = X / 16.0    X_train, X_test, y_train, y_test = train_test_split(        X, y, test_size=0.3, random_state=42)    base = LogisticRegression(max_iter=1000).fit(X_train, y_train)    X_aug, y_aug = augment_shift(X_train, y_train)    aug = LogisticRegression(max_iter=1000).fit(X_aug, y_aug)    acc_base = accuracy_score(y_test, base.predict(X_test))    acc_aug = accuracy_score(y_test, aug.predict(X_test))    print("无增强 acc: %.4f" % acc_base)    print("增强后 acc: %.4f" % acc_aug)    print("相对提升: %.2f%%" % ((acc_aug - acc_base) / acc_base * 100))
目的:把决策树择法落成可调用的函数,并在手写数字小样本任务上跑“无增强 vs 增强”的对比实验,验证增强策略的净贡献。
  1. AUG_POOL = {建立任务类型到增强方法的对照表,给决策树提供“可选菜单”
  2. def select_strategy(task_type, data_size, bottleneck):决策树主干,三个入参正好对应三层分叉
  3. if data_size < 2000:数据量分叉:小样本走“强增强”分支
  4. elif bottleneck == "过拟合":瓶颈分叉:过拟合时减轻增强并加正则化
  5. methods = AUG_POOL.get(task_type, [])[:2]按任务类型快速锁定前两个增强方法
  6. def augment_shift(X, y, shift=1, noise=0.01, seed=42):实验用的简单增强器:像素平移+高斯噪声
  7. X_aug.append(np.roll(X[i], s) + rng.normal(0, noise, X[i].shape))循环平移一个像素后叠加噪声,生成增强样本
  8. load_digits(return_X_y=True)加载手写数字集(1797 张 8×8 图),模拟小样本图像任务
  9. base = LogisticRegression(max_iter=1000).fit(X_train, y_train)训练无增强的基线模型
  10. aug = LogisticRegression(max_iter=1000).fit(X_aug, y_aug)用增强后的数据训练对照模型
  11. print("相对提升: %.2f%%" % ((acc_aug - acc_base) / acc_base * 100))打印相对提升率,这是实验验证的量化输出

常见误区

误区

正解

误区

正解

误区

正解

误区

正解

误区

正解

面试题

Q1. 图像分类任务中最常用且安全的增强手法是哪一类?

单选题 · easy

  • A.同义词替换和回译
  • B.旋转、翻转和裁剪← 正确答案
  • C.SMOTE 插值合成
  • D.随机删除和打乱

答案:B。图像数据经得起几何变换,旋转/翻转/裁剪是图像任务的基础增强;A 和 D 属于文本增强手法,C 属于表格数据增强。类比老周的刀法:切土豆用切菜刀,别拿片鱼刀,选增强先看任务类型。

Q2. 小样本场景下,最合理的数据增强策略是?

单选题 · easy

  • A.完全不做增强避免噪声
  • B.只做测试时增强提升稳性
  • C.强增强加预训练物尽其用← 正确答案
  • D.直接复制原始样本凑数

答案:C。小样本(几百到几千条)模型“吃不饱”,强增强把每个样本扩成一组,配合预训练是主流做法。直接复制样本不增加信息,测试时增强会污染评测。这正对应“食材少要精打细算”的量级评估法则。

Q3. 关于增强强度,以下哪种说法正确?

单选题 · mid

  • A.强度越大模型泛化越好
  • B.变化够大且语义不变最适宜← 正确答案
  • C.强度只看数据量不看任务
  • D.强度设定一次无需调参

答案:B。强度要落在“变化够大又不变语义”的甜区,可用 KL 散度衡量增强后分布与真实分布的偏差来检查;强度与任务和数据量都相关,且需要实验标定。类比老周炒糖色,差十秒就从甜变苦,强度是“火候”不是开关。

Q4. 消融实验的核心目的是?

单选题 · mid

  • A.提升模型的准确率
  • B.缩短模型的训练时间
  • C.确认单个增强的作用← 正确答案
  • D.取代基线的对比实验

答案:C。消融实验逐个移除某个增强,观察指标掉多少,从而定位每个增强的独立贡献。它不是为了提准确率或省时间,也不能取代基线对比——基线对比衡量“增强整体值不值”,消融衡量“每个增强值不值”,就像试菜先尝整体咸淡,再判断是盐多还是生抽多。

Q5. 下列哪些属于文本数据的增强方法?

多选题 · mid

  • A.同义词替换← 正确答案
  • B.回译改写← 正确答案
  • C.色彩抖动
  • D.随机删除← 正确答案

答案:ABD。同义词替换、回译、随机删除都是文本增强手法;C 是图像增强。类比:豆腐要有豆腐的做法,不能拿切土豆的手艺去对付它。文本数据注重语义保持,几何变换在这里没有意义。

Q6. 数据量从 1 万增大到 100 万时,最优增强比例的变化趋势是?

单选题 · hard

  • A.线性增大
  • B.保持不变
  • C.按负幂律下降← 正确答案
  • D.先降后升

答案:C。经验法则 $r^{*} \propto N^{-\alpha}$ 说明数据量越大,增强比例越小。海量数据下模型已能学到丰富规律,过多增强会带偏分布。这如同食材堆满冰箱时,厨师反而不用炫技,做最家常的菜就好。

Q7. 关于增强组合搭配,下列说法正确的有?

多选题 · hard

  • A.互补的增强叠加效果好← 正确答案
  • B.语义破坏增强可叠加
  • C.组合顺序会影响效果← 正确答案
  • D.组合越多效果就越强

答案:AC。互补正交的增强(几何+颜色)作用在不同维度,可以叠加;复合运算 $T_1 \circ T_2$ 与 $T_2 \circ T_1$ 通常结果不同,顺序有影响。两个语义破坏性增强叠加会加倍损坏标签,组合也并非越多越好,需用消融实验确认每项贡献。

Q8. 衡量增强后分布是否偏离真实分布的常用工具是?

单选题 · mid

  • A.交叉熵损失
  • B.KL 散度← 正确答案
  • C.余弦相似度
  • D.梯度范数

答案:B。KL 散度专门衡量两个概率分布的差异,增强后分布与真实分布的 KL 散度大于阈值就说明增强过度。交叉熵是训练损失,余弦相似度衡量向量方向,梯度范数反映训练动态,都与“分布偏离”没有直接关系。

Q9. 表格型数据的常见增强手段有?

多选题 · easy

  • A.SMOTE 插值法← 正确答案
  • B.特征扰动增强← 正确答案
  • C.全局旋转不变
  • D.回译改写文本

答案:AB。表格数据每列有业务含义,SMOTE 在少数类样本间插值,特征扰动添加少量噪声,两者都可用;旋转是图像手法,回译是文本手法。类比杂烩菜要用“和稀泥”的插值法,不能切块翻面,手法必须匹配数据类型。

Q10. 增强策略上线前,正确的实验验证顺序是?

单选题 · hard

  • A.消融实验再基线再监控
  • B.先上线监控再基线对比
  • C.基线对比再消融再监控← 正确答案
  • D.基线对比再监控再消融

答案:C。正确顺序:先跑无增强基线,看增强后的净提升;然后用消融实验拆分每个增强的贡献;最后上线持续监控效果。顺序错会导致结论链条断裂,就像不先尝原味就下结论说盐放多了——参照系都没立起来,后续判断全是空中楼阁。