训练策略与正则化
一、Warmup机制
1.1 基本原理
| 维度 | 说明 |
|---|---|
| 问题背景 | 大模型训练极易发生Loss爆炸(训飞),即第一轮还有Evaluation结果,第二轮第三轮直接变成零 |
| 实现方式 | 设置0.1到0.2的比率,让学习率从0缓慢爬升,给予底层参数缓冲的时间 |
| 核心目的 | 实现前后层同步优化,防止训飞 |
1.2 深度原理
| 维度 | 说明 |
|---|---|
| 学习率曲线 | Warmup使学习率先从零升高到一个预定最大值,然后再下降 |
| 深层网络问题 | BERT Base有12层,梯度回传是从后向前的过程 |
| 梯度消失现象 | 如果一开始学习率设得较大,靠近输出端的权重更新得特别好特别快,但前面靠近输入的层因梯度消失没有更新好 |
| 训飞本质 | 模型后端在"不稳定的基础"上进行更新,就像盖房子没有建立好地基 |
| Warmup的作用 | 用较小学习率让后端权重更新慢一点,等待前端权重也逐步更新,实现"参数同化"过程 |
| Warmup比例 | 建议设置为总训练步数的0.1(10%),或大约1个Epoch |
| Scheduler Step | 每训练完一步后学习率进行相应变化,Warmup体现在Scheduler中 |
二、梯度截断(Gradient Clipping)
| 维度 | 说明 |
|---|---|
| FP16训练场景 | 开启FP16半精度训练时,梯度会变得特别大,不进行截断模型特别容易训飞 |
| FP32全精度场景 | 全精度训练时梯度大概每个Batch在0.8~0.9左右,加不加作用不大 |
| 阈值设置 | 建议设置为1,不需要设太大 |
| 额外收益 | 加上梯度截断能提高模型泛化能力,在验证集和Leaderboard上都有一定提升 |
| 与梯度累加配合 | 使用梯度累加时必须配合梯度截断,防止累加梯度爆炸 |
三、梯度累加(Gradient Accumulation)
| 维度 | 说明 |
|---|---|
| 问题背景 | 大型模型极大,普通显卡往往只能把Batch Size设为1 |
| 导致后果 | Batch Size为1会导致梯度更新方向剧烈震荡、难以收敛 |
| 解决方案 | 通过开启"梯度累加"(比如设为4),可以在低显存下模拟出Batch Size为4的平滑稳定训练效果 |
| 配套措施 | 配合梯度截断来防止累加的梯度爆炸 |
| 最终效果 | 保障模型精度 |
四、学习率调度器(Scheduler)
4.1 调度策略对比
| 策略 | 曲线特征 | 适用场景 | 参数 |
|---|---|---|---|
| 线性递减 | 线性下降 | 通用 | - |
| Cosine退火 | 平滑下降到最低 | 竞赛常用,比线性递减更优 | T_max, eta_min |
| Cosine退火+重启 | 周期性下降重启 | 跳出局部最优 | T_0, T_mult |
| OneCycleLR | 先升后降 | 快速收敛 | max_lr, pct_start |
| WarmUp + Cosine | 先升后降 | 大模型训练必备 | warmup_epochs |
4.2 分层学习率与逐层衰减
| 维度 | 说明 |
|---|---|
| 分层学习率 | 未经过预训练的层(如随机初始化的分类器或被替换的Embedding)应设置较高的学习率(如10^-4级别),而预训练主体应设置较低的学习率(如10^-5级别) |
| 逐层衰减 | 可更细粒度地逐层衰减学习率,如第12层最高,越浅层越低 |
| 适用场景 | 微调大型预训练模型时,不同层需要不同的学习率以平衡新旧知识 |
五、Multi-Dropout / Multi-Sample Dropout
5.1 核心原理
| 维度 | 说明 |
|---|---|
| 传统Dropout局限 | 一次前向传播只产生一个输出,一对一关系 |
| 核心思想 | 将Dropout视为数据扩充手段,在池化结果之后、分类层之前进行多次Dropout采样 |
| 实现方式 | 在BERT等模型提取出特征后,外接多个具有不同丢弃率的Dropout层 |
| 实现流程 | 同一个样本经过多次随机Dropout生成多个版本的向量表征,分别通过分类层得到多个Logits,最后求和或取平均 |
| 计算开销 | 网络主体已跑完,仅在最后全连接层做多次计算,额外开销相对整个网络较小 |
| 核心作用 | 能起到类似对比学习的作用,促进参数同化 |
| 收敛优势 | 相同训练时间内,Validation Set错误率曲线最终会降至传统Dropout下方,收敛更快 |
5.2 超参细节
| 维度 | 说明 |
|---|---|
| 更高的Dropout容忍度 | 由于该机制本质是内部集成了多个子网络的输出,模型可以承受比常规更大的Dropout Rate。常规设为0.1,应用此方法时提高到0.3甚至0.4反而能达到更优的泛化效果 |
| 采样次数 | 通常设置为4或8次即可(再高收益边际递减) |
| 融合方式 | 得到多个Logits后,可以直接求和(Sum)进入Softmax,不一定非要取平均(Average) |
六、对抗训练(FGM / PGD / AWP)
6.1 FGM
| 维度 | 说明 |
|---|---|
| 实现方式 | 在模型梯度下降的相反方向上,人为对Word Embedding(词嵌入层)施加扰动噪声 |
| 核心目的 | 迫使模型在带有恶意干扰的情况下依然能做出正确预测 |
| 本质作用 | 作为一种正则化手段来抵抗过拟合和提高抗干扰能力 |
6.2 PGD(投影梯度下降)
| 维度 | 说明 |
|---|---|
| 与FGM区别 | 相比FGM的单步直接扰动,PGD采用"多步走并限制在球内"策略 |
| 投影操作 | 每走一小步(步长为alpha),如果扰动超出设定的半径epsilon球面,就强行将其"投影"拉回到球面上 |
| 优势 | 生成质量更高的对抗样本 |
6.3 对抗训练进阶设定
| 维度 | 说明 |
|---|---|
| 攻击目标层扩展 | 不仅攻击word_embeddings,还可配置同时攻击BERT的头几层(如第0层、第1层)的参数 |
| 对抗执行比例(Attack Ratio) | 对抗训练会导致训练耗时翻倍,可设置执行比例(如0.5),即只有50%的迭代步数进行对抗扰动更新,剩下50%使用干净样本常规更新,兼顾速度与鲁棒性 |
七、SWA(随机权重平均)
| 维度 | 说明 |
|---|---|
| 问题背景 | 防止单次验证集保存的最佳模型出现"有偏估计" |
| 实现方式 | 在训练末期的最后几个Epoch内维持一个较高的固定学习率进行额外训练 |
| 权重处理 | 将这几个Epoch生成的模型权重(Checkpoints)进行算术平均 |
| 最终效果 | 作为最终更加稳健的融合权重 |
| CV中的应用 | 训练末期最后5~10个epoch,维持较高固定学习率,对权重取算术平均;有交叉验证时SWA收益更明显 |
八、对比学习(Contrastive Learning)
8.1 有监督对比学习
| 维度 | 说明 |
|---|---|
| Supervised Contrastive Learning | 利用标签信息将具有相同标签的样本在向量空间中拉近,不同标签的推远,为分类器提供更好的特征表示 |
| 实现方式 | 在分类任务中直接增加对比学习损失,与交叉熵损失加权求和 |
8.2 SimCSE框架
| 维度 | 说明 |
|---|---|
| 核心方法 | 让同一句子两次通过带Dropout的BERT模型,利用Dropout的随机性产生两个不同表征作为正样本对,Batch内其他样本作为负样本 |
| 优势 | 实现更优雅,代码持续维护,优先使用SimCSE方案 |
8.3 ConSERT框架
| 维度 | 说明 |
|---|---|
| 核心方法 | 在Embedding层直接施加Dropout作为数据扩充,构造正负样本对进行对比学习 |
8.4 深度细节优化
| 维度 | 说明 |
|---|---|
| 引入标签特征(Label Embedding) | 将分类层的权重参数矩阵视作"类别的向量表征"加入对比学习损失计算 |
| 温度参数(Temperature)调优 | 通常基于经验选取0.5的效果会比0.07更好 |
| 构造困难负样本(Hard Negatives) | 故意抽取不同类别但极易混淆的句子作为困难负样本辅助训练 |
8.5 避免表征坍缩(Representation Collapse)
| 维度 | 说明 |
|---|---|
| 问题背景 | 普通BERT不做处理时,往往会将所有句子的相似度压缩在0.6~1.0之间,导致无法有效区分差异 |
| 坍缩表现 | BERT将所有句子编码到语义空间的某个局部区域,本质不同的句子完全无法区分 |
| 评估指标 | 利用Alignment(正样本对齐度)和Uniformity(整体分布均匀度)两个指标来评估模型 |
| SimCSE/ConSERT改进 | 能显著改善表征分布,使不同语义句子在向量空间中均匀分布 |
8.6 对比学习的级联迁移训练
| 维度 | 说明 |
|---|---|
| 第一阶段(外部有监督NLI预热) | 寻找外部开源的NLI数据集,利用标签明确的句子对进行第一波对比学习训练 |
| 第二阶段(领域内自监督迁移) | 将NLI任务上训练好的模型移步到赛题官方提供的无标签脱敏语料上,再进行一轮自监督的对比学习微调 |
| 核心优势 | 经过"外部知识注入→领域内适应→最终任务微调"的级联过程,句向量表征质量大幅超越单一数据集训练 |
九、早停法与模型检查点
| 维度 | 说明 |
|---|---|
| 早停法(Early Stopping) | 监控验证集性能,性能不提升时停止训练,防止过拟合 |
| 耐心值(Patience) | 设置等待轮数,如3-5轮无提升则停止 |
| 模型检查点 | 保存最佳模型权重,支持断点续训 |
| 多模型融合基础 | 保存多个检查点用于后续模型融合 |
十、EMA(指数移动平均)
| 维度 | 说明 |
|---|---|
| 核心思想 | 训练过程中维护一份模型参数的指数移动平均版本,推理时使用平均后的参数 |
| 更新公式 | shadow_param = decay * shadow_param + (1 - decay) * model_param,decay通常取0.999或0.9999 |
| 与SWA区别 | EMA是逐步累积平均,SWA是训练末期对几个checkpoint取算术平均 |
| 效果 | 平滑参数更新轨迹,提升泛化能力,在CV竞赛中广泛使用 |
| 适用场景 | 大模型微调、CV分类/检测任务 |
十一、知识蒸馏基础
| 维度 | 说明 |
|---|---|
| 核心思想 | 用大模型(Teacher)的输出概率分布指导小模型(Student)训练 |
| 软标签 | Teacher输出的概率分布比one-hot硬标签包含更丰富的类间关系信息 |
| 温度参数 | 蒸馏时提高softmax温度T(如T=4~20),使概率分布更平滑,传递更多暗知识 |
| 损失函数 | loss = alpha * KL(soft_teacher, soft_student) + (1-alpha) * CE(hard_label, student_output) |
| 适用场景 | Code Submission赛等对推理时间和内存有严格限制的比赛 |
| 与Self-Distillation区别 | Self-Distillation是同模型内部的知识迁移,传统蒸馏是跨模型的知识迁移 |
十二、训练稳定性综合保障
| 维度 | 说明 |
|---|---|
| Warmup比例 | 建议设置为总训练步数的0.1(10%),或大约1个Epoch |
| Scheduler选择 | Cosine调度器比线性递减更优,被比赛中广泛采用 |
| Dropout推理时关闭 | 推理时Dropout会自动关闭,训练时用了多个Dropout不影响推理一致性 |
| 断点续训 | 训练中断后直接加载模型权重进行Inference即可,不需要重新训练 |
| 数据打乱 | 增加随机性表现,提高网络泛化性能,避免batch数据过于有规律 |
十三、模型收敛问题排查
| 维度 | 说明 |
|---|---|
| 训飞表现 | 第一轮有Evaluation结果,第二轮第三轮Evaluation直接变成零 |
| 排查步骤 | 检查Warmup是否设置、梯度截断是否开启、学习率是否过大 |
| 解决方案 | 设置Warmup为0.1,开启Gradient Clipping,降低学习率 |
| 验证方法 | 观察训练Loss曲线是否平稳下降,验证集分数是否稳定 |
十四、显存优化综合策略
| 维度 | 说明 |
|---|---|
| 梯度检查点 | 训练时丢弃部分中间层的激活值,反向传播时重新计算,用"计算时间换显存",可提升Batch Size数倍 |
| 梯度累加 | 低显存下模拟大Batch Size训练效果 |
| FP16混合精度 | 部分计算使用FP16,关键计算保持FP32,显存占用减半,训练速度提升约30%-50%,必须配合梯度截断 |
| 模型卸载 | 将部分参数卸载到CPU,进一步降低显存占用 |
| 动态填充 | DataCollatorWithPadding按batch内最长填充,短文本训练加速75% |
| 组合使用 | 多种策略组合使用可在有限显存下训练更大模型 |
十五、R-Drop(一致性正则)
| 维度 | 说明 |
|---|---|
| 核心思想 | 同一样本两次前向传播(不同Dropout mask),用KL散度约束两次输出分布一致 |
| 与Multi-Sample Dropout区别 | Multi-Sample Dropout是对多次Dropout输出的Logits求和/平均;R-Drop是约束两次输出的概率分布尽量一致,多了输出一致性约束 |
| 损失函数 | loss = CE_loss + alpha * KL(p1 \|\| p2) + KL(p2 \|\| p1),双向KL取平均 |
| alpha权重 | 通常取1~5,需根据验证集调整 |
| 训练开销 | 每个样本需两次前向,训练时间约翻倍 |
| 适用场景 | NLP分类/NER任务,上分明显;与FGM等对抗训练可叠加 |
| 竞赛价值 | 简单有效,几行代码即可实现,NLP竞赛中常作为独立上分点 |
十六、FreeLB(对抗训练升级)
| 维度 | 说明 |
|---|---|
| 全称 | Free Large-Batch Adversarial Training |
| 与FGM/PGD区别 | FGM/PGD是单点扰动;FreeLB在扰动区间内取多个点的平均梯度,更稳定 |
| 核心方法 | 在Embedding周围epsilon球内均匀采样多个扰动点,对这些点的梯度取平均作为更新方向 |
| 优势 | 比FGM更稳定,比PGD更快(不需要多步迭代),BERT官方对抗训练方案 |
| epsilon取值 | 通常1e-5~1e-4,比FGM的扰动范围更小 |
| 与FGM关系 | 可视为FGM的平滑升级版,推荐在NLP对抗训练中优先尝试 |
十七、SAM(Sharpness-Aware Minimization)
| 维度 | 说明 |
|---|---|
| 核心思想 | 优化时同时关注loss值和loss曲面的平坦度,寻找平坦极小值,泛化更好 |
| 第一步 | 计算当前参数的梯度,找到扰动方向:epsilon = rho * grad / \|\|grad\|\| |
| 第二步 | 在扰动后的参数处重新计算梯度,用该梯度更新原始参数 |
| rho参数 | 控制对平坦度的关注程度,通常取0.05~0.1 |
| 计算开销 | 每步需要两次前向+反向,训练时间约翻倍 |
| 与FGM区别 | FGM是对输入加扰动做正则化;SAM是对参数加扰动寻找平坦极小值 |
| 竞赛价值 | CV竞赛近年热门,尤其在小数据集上效果显著 |
十八、Lookahead Optimizer
| 维度 | 说明 |
|---|---|
| 核心思想 | 在Adam等基础优化器外层包一层"前瞻"机制:先快步探索,再慢步确认 |
| 快权重(Fast Weights) | 基础优化器(如Adam)正常更新k步 |
| 慢权重(Slow Weights) | 将快权重和慢权重做线性插值:slow = slow + alpha * (fast - slow) |
| k值 | 通常5~10,即快权重走5~10步后慢权重同步一次 |
| alpha值 | 通常0.5,慢权重向快权重靠拢的比例 |
| 优势 | 几乎无额外计算开销,收敛更稳定,减少对学习率的敏感性 |
| 适用场景 | 通用,可与任何优化器组合,适合作为默认优化器增强 |
十九、渐进式解冻(Gradual Unfreezing)
| 维度 | 说明 |
|---|---|
| 核心思想 | 微调时先冻结预训练层只训练分类头,再逐层解冻,由顶向底逐步放开 |
| 与分层学习率区别 | 分层学习率是所有层同时训练但学习率不同;渐进式解冻是逐层放开训练,更保守 |
| 典型流程 | Epoch 1: 只训练分类头 → Epoch 2: 解冻最后2层 → Epoch 3: 解冻最后4层 → ... → 全部解冻 |
| 适用场景 | 小数据微调防灾难性遗忘,预训练模型与目标任务差异大时 |
| 竞赛价值 | 数据量少于1000条时效果明显,可防止微调初期大梯度破坏预训练表征 |
二十、课程学习(Curriculum Learning)
| 维度 | 说明 |
|---|---|
| 核心思想 | 先用简单样本训练,再逐步加入困难样本,模拟人类学习过程 |
| 难度定义 | 可按样本长度(短=简单)、预测置信度(高=简单)、标注一致性(一致=简单)等定义 |
| 实现方式 | (1) 预排序:训练前按难度排序,逐步加入;(2) 动态调整:每个epoch根据loss排序 |
| 与Anti-Curriculum对比 | Anti-Curriculum是先学困难样本,某些场景反而更优,需实验对比 |
| 适用场景 | 数据噪声大、样本难度差异大时有效 |
| 竞赛价值 | 数据质量参差不齐时可作为上分手段,但需额外实验验证 |
二十一、Flooding
| 维度 | 说明 |
|---|---|
| 核心思想 | 设定loss下限b,当训练loss低于b时将梯度取反,使loss在b附近波动,防止过拟合 |
| 公式 | loss = \|\|loss - b\|\| + b,即loss > b时正常下降,loss < b时反弹 |
| b值选取 | 通常取训练loss即将收敛时的值,如0.01~0.1 |
| 本质 | 类似隐式正则化,阻止模型过度拟合训练数据 |
| 优势 | 实现极简(一行代码),可与任何优化器/调度器组合 |
| 竞赛价值 | 简单有效,适合后期冲刺时防止过拟合 |
二十二、Stochastic Depth / DropPath
| 维度 | 说明 |
|---|---|
| 核心思想 | 训练时以概率p随机跳过整个残差块(直接用恒等映射),推理时使用全部层 |
| 与Dropout区别 | Dropout跳过神经元;DropPath跳过整个残差块/层,粒度更大 |
| 生存概率 | 浅层概率高(接近1),深层概率低(如0.5),线性衰减:p_l = 1 - l/L * (1 - p_L) |
| 适用场景 | ViT/DeiT/Swin Transformer等深层模型训练标配 |
| 竞赛价值 | CV竞赛中使用ViT系列模型时必用,不设DropPath深层ViT极易过拟合 |
| 典型取值 | 最大丢弃率p_L通常0.1~0.3(分类),0.2~0.5(检测/分割) |
二十三、梯度中心化(Gradient Centralization)
| 维度 | 说明 |
|---|---|
| 核心思想 | 对梯度按特征维度做中心化(减均值),约束梯度均值为零 |
| 公式 | grad = grad - grad.mean(dim=0) |
| 优势 | 加速收敛 + 提升泛化 + 几乎零额外计算开销 |
| 实现位置 | 在optimizer.step()之前对梯度做中心化处理 |
| 适用场景 | 通用,一行代码即可集成,适合作为默认训练流程的一部分 |
| 竞赛价值 | 几乎无成本的正则化手段,适合快速实验 |
二十四、Weight Standardization
| 维度 | 说明 |
|---|---|
| 核心思想 | 对卷积层权重做标准化(减均值除标准差),替代对输入统计量的依赖 |
| 与BatchNorm区别 | BatchNorm依赖batch统计量,小BS时不稳定;WS只依赖权重自身,不受BS影响 |
| 公式 | W_hat = (W - mean(W)) / sqrt(var(W) + eps) |
| 适用场景 | 小Batch Size场景(如BS=1~4的大模型微调),WS+GN组合可替代BN |
| 竞赛价值 | 显存受限只能用小BS时,WS比BN更稳定 |
二十五、LayerScale
| 维度 | 说明 |
|---|---|
| 核心思想 | 在Transformer残差分支中加可学习的逐通道缩放因子,初始化为极小值(如1e-4) |
| 公式 | x = x + LayerScale * Attention(x),LayerScale初始化接近0 |
| 作用 | 训练初期残差分支贡献极小,等效于恒等映射,训练稳定;随训练推进缩放因子逐步增大 |
| 适用场景 | 深层ViT(>12层)训练稳定的关键,DeiT III等模型标配 |
| 竞赛价值 | 使用深层ViT/Swin时必加,否则深层模型训练不稳定 |
二十六、半监督训练方法
Mean Teacher
| 维度 | 说明 |
|---|---|
| 核心思想 | 维护一个EMA版本的模型作为Teacher,Student向Teacher的预测对齐 |
| Teacher更新 | teacher_params = alpha * teacher_params + (1-alpha) * student_params,alpha通常0.999 |
| 一致性损失 | L_consistency = MSE(student_output, teacher_output) |
| 优势 | Teacher参数更平滑,提供更稳定的伪标签 |
| 适用场景 | 时序/CV半监督竞赛,有大量无标签数据时 |
VAT(Virtual Adversarial Training)
| 维度 | 说明 |
|---|---|
| 核心思想 | 在对抗训练基础上扩展到无标签数据,对无标签样本施加最小扰动能改变输出的方向 |
| 与FGM区别 | FGM只用于有标签数据;VAT可用于无标签数据,不依赖标签计算对抗方向 |
| 局部平滑性 | VAT鼓励模型在输入空间局部邻域内输出平滑,提升泛化 |
| 适用场景 | 半监督+NLP,有大量无标签文本时 |
FixMatch
| 维度 | 说明 |
|---|---|
| 核心思想 | 强增强+弱增强结合:弱增强高置信预测作为伪标签,强增强做一致性约束 |
| 流程 | (1) 对无标签样本做弱增强,模型预测取高置信(>0.95)的作为伪标签;(2) 对同一样本做强增强,约束其预测与弱增强伪标签一致 |
| 关键参数 | 置信度阈值通常0.95,弱增强(翻转/平移),强增强(RandAugment/CutMix) |
| 适用场景 | CV半监督SOTA,图像分类+大量无标签数据 |
TSA(Training Signal Annealing)
| 维度 | 说明 |
|---|---|
| 核心思想 | 来自UDA,逐步释放训练信号,初期只用高置信样本,后期才用全部 |
| 阈值调度 | 随训练推进逐步提高阈值,低于阈值的样本才参与损失计算 |
| 作用 | 防止模型在训练初期被噪声标签误导 |
| 适用场景 | 小数据+大无标注语料的半监督场景 |
二十七、竞赛常用损失函数补充
ASL(Asymmetric Loss)
| 维度 | 说明 |
|---|---|
| 核心思想 | 对正负样本用不同gamma,比Focal Loss更适合多标签分类 |
| 非对称性 | 正样本gamma-(通常0),负样本gamma+(通常2~4),负样本被抑制更多 |
| 概率偏移 | 对负样本概率做偏移(概率人为降低),进一步抑制易分负样本 |
| 适用场景 | 多标签分类竞赛,正样本稀疏时 |
| 与Focal Loss对比 | Focal Loss对称处理正负样本;ASL专门针对多标签场景优化 |
Bi-Tempered Loss
| 维度 | 说明 |
|---|---|
| 核心思想 | 用两个温度参数分别处理outlier和噪声标签,比Label Smoothing更鲁棒 |
| t1(内温度) | 控制对outlier的容忍度,t1 > 1时对outlier更鲁棒 |
| t2(外温度) | 控制对噪声标签的容忍度,t2 < 1时对噪声标签更鲁棒 |
| 适用场景 | 噪声标签场景,标注质量差的数据集 |
| 竞赛价值 | 比Label Smoothing更精细的噪声标签处理方案 |
AUC Loss
| 维度 | 说明 |
|---|---|
| 核心思想 | 直接优化AUC指标的近似损失函数,替代交叉熵 |
| 实现方式 | 基于pairwise ranking loss,正样本得分应高于负样本得分 |
| 适用场景 | 评价指标为AUC时,直接优化目标指标 |
| 注意事项 | 训练开销比CE大(需采样正负对),通常先用CE预训练再切换AUC Loss微调 |
LDAM Loss(Label-Distribution-Aware Margin Loss)
| 维度 | 说明 |
|---|---|
| 核心思想 | 给小类更大的分类边界(margin),大类边界小,边界与类别频率的1/4次方成反比 |
| 公式 | margin_i = C / n_i^(1/4),n_i为类别i的样本数 |
| 与Focal Loss区别 | Focal Loss通过调整损失权重;LDAM通过调整分类边界,本质不同 |
| 适用场景 | 长尾分类,类别频率差异极大时 |
| 竞赛价值 | 长尾分类竞赛中与Focal Loss互补,可组合使用 |
二十八、Mixup/CutMix的正则化视角
| 维度 | 说明 |
|---|---|
| 数据增强视角 | Mixup/CutMix通常被归类为数据增强方法(见01章),但它们本质也是强正则化手段 |
| 正则化机制 | (1) 决策边界平滑化:混合样本迫使模型输出平滑过渡;(2) 隐式模型集成:每个混合样本等价于两个子网络的隐式平均;(3) 梯度噪声注入:混合比例lambda引入额外随机性 |
| 与Dropout对比 | Dropout是神经元级正则化;Mixup是样本级正则化,两者可叠加 |
| 与Label Smoothing对比 | Label Smoothing是标签级软化;Mixup是输入+标签同时软化,信息更丰富 |
| 竞赛建议 | 分类任务后期过拟合时,Mixup/CutMix + Label Smoothing + Dropout 三重正则化组合效果最佳 |
二十九、原型对比学习(Prototype Contrastive Learning)
| 维度 | 说明 |
|---|---|
| 核心思想 | 为每个类别学习多个原型向量,通过对比损失拉近样本与同类原型、推远异类原型 |
| 原型数量 | 每类 2 个或更多原型,捕获类内多模态分布 |
| 分类方式 | 基于原型向量的余弦相似度进行分类(原型余弦头) |
| 损失函数 | 原型对比损失 + 分类 BCE 损失联合训练 |
| 与Metric Learning区别 | Metric Learning学习全局嵌入空间;原型对比学习为每类学习多个代表性原型 |
| 适用场景 | 细粒度分类、类内差异大的任务(如鸟类识别) |
| 竞赛价值 | 多模态类别表现提升明显,配合时序建模效果更佳 |
三十、分类学辅助损失(Taxonomic Auxiliary Loss)
| 维度 | 说明 |
|---|---|
| 核心思想 | 利用分类学层级关系(界门纲目科属种)作为多任务学习的辅助目标 |
| 实现方式 | 主任务:物种分类 BCE 损失;辅助任务:科/属级别分类损失 |
| 损失权重 | 主任务权重高,辅助任务权重低(如 1.0 vs 0.2) |
| 优势 | 利用分类学先验知识,提升稀有物种泛化能力 |
| 适用场景 | 生物分类、具有层级标签体系的任务 |
| 竞赛价值 | 稀有物种/长尾类别表现提升,与主任务互补 |