1. 实验数据异常发现工程导论
实验数据异常发现工程,研究的不是某一个孤立的算法,而是一条从数据产生到结论落地的完整链路。它的核心问题是:在实验数据从采集、传输、存储、处理到分析的全生命周期中,如何用可复现、可解释、可运维的工程方法,把"看起来不对"的数据识别出来,并判断它究竟是噪声、是设备故障、是操作失误,还是真正值得关注的科学发现。
一、实验数据的全生命周期
实验数据通常经历五个阶段,每个阶段都可能引入或暴露异常:
- 采集:传感器、采集卡、相机、日志系统把物理量转为数字信号。此阶段的异常包括量程溢出、采样丢点、时间戳漂移、通道接错。
- 传输:数据经总线、网络或文件中转。异常表现为丢包、乱序、重复、编码错误。
- 存储:写入数据库、文件或对象存储。异常包括字段截断、单位不一致、精度丢失、分区错位。
- 处理:清洗、对齐、重采样、特征计算。异常包括插值过度、滤波相位偏移、归一化基准错误。
- 分析:建模、检测、可视化、结论输出。异常包括标签泄漏、阈值误设、统计假设不成立。
理解这条链路的意义在于:同一个异常现象,可能来自完全不同的阶段。例如某温度曲线出现尖峰,可能是传感器受电磁干扰(采集),也可能是传输丢包后插值造成(传输),还可能是清洗时误用了错误的平滑窗口(处理)。如果只在分析阶段做检测,就会把工程问题误判为数据问题。
二、异常的定义与分类
在工程语境下,"异常"不能简单定义为"数值大或小",而应定义为偏离预期生成机制的数据模式。预期生成机制可以来自物理模型、历史统计分布、同类实验对照,或人工标注的正常样本集。定义不同,检测方法就不同。
按结构可分为四类:
- 点异常:单个样本显著偏离,如温度传感器瞬间跳到 200°C。检测常用 3σ、IQR、孤立森林。
- 上下文异常:数值本身正常,但在特定工况下不合理。例如电机在 3000 rpm 时振动 2 mm/s 正常,在 500 rpm 时同样 2 mm/s 就异常。
- 集体异常:单个点都正常,但序列整体模式异常。如心电信号中连续出现规律性伪迹。
- 概念漂移:数据分布随时间缓慢变化,导致旧模型失效。如设备老化后基线整体上移。
按来源又可分为:物理异常(真实故障)、测量异常(传感器/采集问题)、标注异常(标签错误)、处理异常(算法引入)。工程上必须区分这四类,因为处理策略完全不同:物理异常要报警,测量异常要修设备,标注异常要重标,处理异常要改代码。
三、智能发现工程的目标边界
智能异常发现工程的目标不是"找到所有异常",而是在可接受的误报率下,尽可能提高召回率,并给出可解释、可追溯的判断依据。它有三个明确边界:
- 不替代领域判断:算法输出的是"可疑片段+证据",最终定性仍需实验人员结合工况确认。
- 不追求零误报:实验数据噪声大、标注少,零误报意味着零召回。工程上更关注 ROC 曲线下的工作点选择。
- 必须可复现:同一份数据、同一套参数、同一版本代码,必须得到相同结果。这要求固定随机种子、记录数据版本、保存模型与阈值。
四、典型场景与工程落点
不同实验场景对异常发现的要求差异很大,下面用三个典型场景说明工程落点:
| 场景 | 数据特点 | 主要异常类型 | 工程落点 |
|---|---|---|---|
| 传感器长期监测 | 高频、单变量、连续 | 点异常、概念漂移 | 在线流式检测 + 基线自适应 |
| 多通道实验台 | 多变量、同步采样 | 上下文异常、集体异常 | 多变量关系建模 + 残差检测 |
| 批次实验记录 | 低采样、人工录入 | 标注异常、缺失 | 规则校验 + 缺失模式分析 |
以多通道实验台为例,一个可落地的做法是:先对每个通道做滑动窗口统计(均值、方差、峰峰值),再用 PCA 或自编码器建立通道间正常关系模型,最后对重构残差设定阈值。假设某实验台有 8 个通道,采样率 1 kHz,窗口长度 1 s,步长 0.1 s。正常工况下残差均方根约为 0.02,设定阈值为 0.06(约 3 倍基线)。当某通道传感器松动时,残差会持续超过阈值,系统输出"通道 3 在 12:03:15–12:03:42 残差超限"的告警,并附带原始波形与残差曲线供人工复核。这里的数值均为教学示例,实际阈值需根据基线数据重新标定。