一句话定义
视觉训练调优围绕三条主线:用几何/光度数据增强扩充有效样本、用迁移学习在预训练权重上微调、用严谨的验证协议诊断过拟合与选择模型,任何一条走偏都会让指标虚高或训练发散。
为什么重要
同一份代码、同一批数据,调优得当与不当的最终 mAP 可以相差十个百分点以上;更重要的是「指标可信」比「指标高」重要——在测试集上调参、增强破坏标签对齐这类错误产出的模型,上线即翻车。
直观类比
数据增强像给运动员变换训练场地(不同光照的球场、不同角度的风),逼出泛化能力;迁移学习像聘用一位有十年经验的老师傅再教三个月,而不是从学徒带起;验证协议像考试前绝不给学生看真题——看过真题的模拟分毫无意义。
前置知识
kp-025(数据集与标注);kp-016(分类训练框架)。
核心概念
- 几何增强:翻转、缩放、裁剪、旋转;必须同步变换标注框/掩码。
- 光度增强:亮度、对比度、HSV 抖动、模糊与噪声注入,模拟成像差异。
- Mosaic / MixUp / CutMix:多图拼合类增强,检测训练的标准配置,提升小目标与上下文多样性。
- 迁移学习:ImageNet/自监督预训练权重 + 冻结骨干或全量微调,小数据场景的默认路径。
- 学习率调度:warmup 起步、余弦退火或阶梯衰减,微调时学习率比从零训练小一个量级。
- 过拟合信号:训练损失持续下降而验证损失回升,train/val 差距扩大。
- 早停(Early Stopping):以验证指标为准则保留最佳权重,防过拟合并省算力。
- 消融实验纪律:一次只改一个变量,全部结论来自 val 集,test 集只动一次。
原理与机制
增强的有效性来自「标签不变的变换扩大数据流形」:几何变换改变外观而保留类别与位置(标签随之变换),光度变换模拟传感器差异;Mosaic 把四图拼一图,同时等效增大 batch 内目标密度与尺度多样性,是小目标涨点的头号功臣。迁移学习的机理是卷积浅层特征跨域通用:小数据集冻结骨干只训头部,中大数据集低学习率全量微调;学习率过大会把预训练权重「冲掉」,等效从零训练。诊断闭环必须建立在「val 只用于决策、test 只用于终评」的纪律上——任何依据 test 的调整(选 epoch、选阈值、选模型)都是泄漏。
公式与模型
余弦退火学习率: η_t = η_min + 0.5(η_0 − η_min)(1 + cos(πt / T))
标签同步变换: box′ = T(box) (T 为与图像同一几何变换)
早停准则: 保留 argmax_t mAP(val, epoch_t)图示
实例与案例
小数据分类(每类 200 张):ImageNet 权重冻结骨干 + 头部 10 epoch,再解冻以 1e-5 微调,比从零训练高 15 个点以上。检测实战配方:YOLO 系默认开启 Mosaic + HSV 抖动 + 水平翻转,最后若干 epoch 关闭 Mosaic(关闭增强精调)还能再涨点。失败案例:增强管线里做了「随机水平翻转」但数据是车牌/文字,标签没镜像也没翻转字符——训练损失正常、线上指标崩塌,根因是增强破坏了标签语义。
tfm = A.Compose([
A.HorizontalFlip(p=0.5),
A.RandomBrightnessContrast(0.2, 0.2, p=0.5),
A.HueSaturationValue(10, 15, 10, p=0.3),
], bbox_params=A.BboxParams(format='pascal_voc', label_fields=['cls'])) # 框随图同步变换
sched = torch.optim.lr_scheduler.CosineAnnealingLR(opt, T_max=epochs, eta_min=1e-6)常见误区
- 在测试集上调参/选模型:test 一旦参与决策即被污染;一切决策依据 val,test 只在收官时碰一次。
- 增强破坏标签:翻转/旋转后框、关键点顺序、文字方向必须同步变换;文本与医学方向敏感场景禁用几何翻转。
- 微调学习率照搬从零训练:预训练权重的任务应使用小一个量级的学习率并配 warmup,否则把知识冲掉。
- 只看平均指标:长尾类别被平均掩盖,必须分诊断每类 AP/召回,问题类别单独补数据。
- 把 val 指标波动当趋势:单次评估受随机性影响,重要结论需多种子平均或至少观察趋势一致性。
与其他知识点的关系
输入来自 kp-025 的数据工程;产物交给 kp-027 部署;增强配方与 kp-018 的 Mosaic、kp-019 的 Dice 损失等任务技巧衔接;「泄漏式调参」是 kp-031 之外工程侧最常见的可信度问题。
自测题
- 几何增强为什么必须同步变换标注?
答案要点:框/掩码/关键点定义在像素坐标系上,图像几何变了而标注不变,监督信号即错误,模型学出系统性错位。
- 迁移学习中「先冻结后解冻」各阶段的意义是什么?
答案要点:先冻结只训头部,用稳定特征快速对齐新任务;再低学习率解冻全量微调,让骨干适配域差异。
- 如何判断模型过拟合?两个可操作信号?
答案要点:验证损失开始回升且训练损失继续下降;train 与 val 指标差距持续扩大。对策是早停、增强、正则或补数据。
延伸阅读
- Shorten 与 Khoshgoftaar 2019《A survey on Image Data Augmentation for Deep Learning》
- kp-027 看训练好的模型如何走完部署最后一公里