4. 数据漂移与概念漂移

在自动驾驶模型上线之后,模型面对的世界并不是训练集里那个被冻结、被清洗、被标注过的世界。道路参与者、天气、光照、传感器固件、地图版本、交通规则乃至驾驶策略本身都在持续变化。模型监控的核心任务之一,就是识别这些变化是否已经让“训练时学到的规律”与“当前输入—输出关系”发生偏离。数据漂移与概念漂移正是描述这类偏离的两个基础概念。

一句话区分:数据漂移关注输入分布 P(X) 的变化,概念漂移关注输入到输出的条件分布 P(Y|X) 的变化。前者是“看到的东西变了”,后者是“同样的东西含义变了”。

一、定义与数学直觉

设模型输入为 X,输出标签为 Y。训练阶段学习的是联合分布 Ptrain(X,Y),推理阶段实际面对的是 Plive(X,Y)。当两者不一致时,就发生了漂移。按分解方式可写成:

P(X, Y) = P(X) · P(Y|X)

数据漂移(Data Drift / Covariate Shift):
  P_live(X) ≠ P_train(X),但 P(Y|X) 近似不变

概念漂移(Concept Drift):
  P_live(Y|X) ≠ P_train(Y|X),输入相同但正确输出改变

标签漂移(Label / Prior Shift):
  P_live(Y) ≠ P_train(Y),类别先验比例变化

对自动驾驶而言,数据漂移常表现为新场景、新天气、新传感器特性带来的输入像素或点云分布变化;概念漂移则更隐蔽,例如同一段道路因施工导致“可行驶区域”定义改变,或交通规则调整后“红灯右转”的语义发生变化。

二、类型划分与成因

工程上通常把漂移分为突变型、渐变型、周期型和复现型。突变型如传感器固件升级、地图大版本切换;渐变型如季节更替导致光照与植被变化;周期型如早晚高峰与昼夜循环;复现型如每年雨季积水场景再次出现。不同类型对应不同的检测窗口与告警策略。

漂移类型变化对象典型成因对模型的影响监控信号示例
数据漂移P(X)新城市、新天气、传感器脏污、固件升级特征分布偏移,置信度整体下降输入均值/方差、点云密度、图像亮度直方图
概念漂移P(Y|X)施工改道、交规调整、驾驶策略变更相同输入下预测语义错误,漏检/误检上升按场景分层的准确率、召回率、混淆矩阵
标签漂移P(Y)目标类别比例变化、标注规范更新类别不平衡加剧,阈值失效预测类别分布、正样本率
特征漂移单特征 P(xi)标定参数漂移、时间同步偏差局部特征失真,融合模块退化单特征 PSI、KS 统计量

三、对自动驾驶模型性能的影响路径

漂移不会直接“报错”,而是通过性能指标缓慢或突然退化体现。其影响路径可概括为:输入分布变化 → 特征提取层激活分布偏移 → 中间表示与训练时不一致 → 输出置信度校准失效 → 下游规划控制收到错误感知结果。对于端到端模型,这种影响更直接,因为中间没有显式规则兜底。

数据漂移与概念漂移的影响链路 数据漂移 P(X) 新天气 / 新城市 / 传感器 概念漂移 P(Y|X) 施工改道 / 交规调整 特征分布偏移 激活值 / 点云密度 决策边界失配 置信度校准失效 感知性能退化 漏检 / 误检 / 定位漂移 规划控制风险 急刹 / 误转向 / 接管 监控闭环:分布统计 → 漂移告警 → 场景回灌 → 再训练/微调 PSI / KS / MMD / 置信度分布 / 分层指标

从图中可以看到,数据漂移与概念漂移最终都会汇聚到“决策边界失配”,但前者更多影响特征层,后者直接改变标签语义。监控系统需要在不同层级设置探针,才能区分二者。

四、典型场景与工程案例

  • 场景一:跨城市泛化。模型在 A 城训练,部署到 B 城后,车道线颜色、交通标志样式、骑行行为分布不同,属于典型数据漂移。表现为车道线检测置信度下降,但语义定义未变。
  • 场景二:施工区域改道。同一路口因施工临时改变通行规则,输入图像相似,但“可行驶区域”标签含义变化,属于概念漂移。此时仅靠输入分布监控难以发现,必须结合分层准确率与人工复核。
  • 场景三:传感器固件升级。摄像头 ISP 参数调整导致图像色调、对比度整体偏移,属于特征漂移。若未同步更新标定与归一化参数,融合模型会系统性退化。
  • 场景四:季节与昼夜循环。冬季积雪、夏季强光、夜间低照度造成周期性数据漂移。监控应使用滑动窗口与同比基线,避免把正常周期误判为异常。
常见误区:只监控模型输出置信度,不监控输入分布;只做全局指标,不做场景分层;把概念漂移误判为数据漂移,导致只做数据增强而忽略标签与规则更新。

五、检测与应对要点

检测层面,常用 PSI、KS、MMD、JS 散度等统计量对比训练集与在线窗口的输入分布;用分层召回率、混淆矩阵、置信度校准曲线捕捉概念漂移。应对层面,数据漂移可通过场景回灌、重采样、域适应缓解;概念漂移则需要重新标注、更新标签规范,甚至调整模型输出定义。

# 漂移监控配置示例(伪代码)
drift_monitor:
  input_features: [image_brightness, pointcloud_density, speed]
  window: 7d
  baseline: training_set_v3
  metrics: [psi, ks]
  thresholds:
    psi_warn: 0.1
    psi_alert: 0.25
  concept_probes:
    - scene: construction_zone
      metric: recall
      min: 0.85
    - scene: night_rain
      metric: precision
      min: 0.80

只有把数据漂移与概念漂移分开建模、分开监控、分开处置,才能避免“指标下降就盲目加数据”的低效循环,让自动驾驶模型在持续变化的环境中保持可解释、可追溯的性能表现。