2. 基础知识
在多数据集联合训练与域适配工程中,最先需要厘清的不是模型结构,而是一组高频术语之间的边界与关系。很多工程失败并非算法本身错误,而是把“数据集”当成“域”、把“联合训练”当成“域适配”、把“迁移学习”当成万能解药。本节用一张关系图把这些概念放在同一坐标系中,再逐一辨析。
一、核心术语的定义与边界
数据集(Dataset)是样本的集合,通常带有采集条件、标注规范、划分方式等元信息。它回答的是“有哪些样本”。域(Domain)则由特征空间与边缘分布共同刻画,记作 D = {X, P(X)}。它回答的是“样本从什么分布中来”。同一个数据集可以只对应一个域,也可以因采集设备、时间段、地点不同而包含多个子域。
分布偏移(Distribution Shift)描述训练分布与目标分布不一致的现象。常见类型包括:协变量偏移 P(X) 变化而 P(Y|X) 不变;标签偏移 P(Y) 变化;概念偏移 P(Y|X) 本身变化。分布偏移是“问题”,域适配是“应对手段”之一。
联合训练(Joint Training)指把多个数据集混合后共同优化一个模型,通常共享参数、合并损失。它解决的是“数据量不足、覆盖不全”的问题,但不保证跨域泛化。域适配(Domain Adaptation)则明确以“源域到目标域”为设定,通过对齐特征、重加权、伪标签等手段缩小域间差异。迁移学习(Transfer Learning)是更大的范畴,域适配、微调、多任务学习都可视为其子集。
一句话辨析:数据集是“材料”,域是“材料背后的分布”,分布偏移是“分布之间的差距”,联合训练是“把材料混在一起用”,域适配是“针对差距做对齐”,迁移学习是“把已有知识搬到新任务”的总称。
二、方法流程:从多数据集到目标域
工程上通常按以下顺序推进,避免概念混用导致的方案错配:
- 盘点数据集:列出每个数据集的采集设备、时间、地点、标注规范,判断它们是否属于同一域。
- 刻画域:对每个数据集估计
P(X)与P(Y|X),用可视化或统计检验确认域边界。 - 识别偏移类型:若
P(X)差异大而P(Y|X)稳定,优先考虑协变量偏移与域适配;若P(Y|X)变化,则需重新标注或引入概念偏移方法。 - 选择策略:数据量不足时先联合训练;跨域差距明显时叠加域适配;目标域有少量标注时用微调。
- 验证与复盘:在目标域上单独评估,避免被源域指标掩盖。
三、案例场景:工业质检的多产线联合训练
某工厂有三条产线,分别用不同相机采集缺陷图像。若直接把三条产线数据混合做联合训练,模型在产线 A 上表现良好,但在产线 C 上漏检率上升。原因在于产线 C 的光照与背景构成不同的 P(X),属于协变量偏移。此时正确做法是:先以联合训练获得基础模型,再在产线 C 上使用域适配(如特征对齐或样本重加权),最后用产线 C 的少量标注做微调。若误把联合训练当作域适配,就会得到“平均指标好看、单域崩溃”的结果。
四、常见误区与复盘清单
| 误区 | 表现 | 纠正方式 |
|---|---|---|
| 把数据集等同于域 | 认为“多数据集=多域”,忽略同一数据集内的子域 | 按采集条件拆分域,先做域边界分析 |
| 把联合训练当域适配 | 混合训练后期望跨域自动泛化 | 明确联合训练只解决覆盖,域适配才解决对齐 |
| 忽略偏移类型 | 对概念偏移使用协变量偏移方法 | 先检验 P(Y|X) 是否稳定,再选方法 |
| 只在源域验证 | 源域指标高,目标域部署失败 | 建立目标域独立验证集与回归测试 |
| 迁移学习万能论 | 任何新任务都直接微调,不做域分析 | 先判断域差距与标注量,再决定策略 |
复盘时可用三问定位问题:数据来自几个域?偏移属于哪一类?当前手段是在解决覆盖还是在对齐?三问答案清晰,方案基本不会跑偏。
注意:域适配并不保证一定优于联合训练。当目标域与源域差距极小、目标域标注充足时,直接微调往往更简单有效。方法选择应服从域差距与标注预算,而非术语的“高级感”。
五、参数与配置示例
在配置文件中显式区分“数据集”“域”“策略”,可减少团队沟通歧义:
datasets:
- name: line_a
domain: camera_a_day
path: /data/line_a
- name: line_b
domain: camera_b_night
path: /data/line_b
training:
mode: joint # joint | adaptation | finetune
adaptation:
method: coral # 特征对齐
weight: 0.3
finetune:
lr: 1e-4
epochs: 10
evaluation:
target_domain: camera_b_night
metrics: [accuracy, recall, f1]