4、数据标注与标签设计:分类、回归与异常检测任务的标签定义与标注工具使用
在Edge Impulse的模型训练流程中,数据标注与标签设计是决定模型性能上限的关键环节。无论采集到的传感器数据多么干净、特征多么丰富,如果标签定义混乱、标注粒度不一致或标注工具使用不当,训练出的模型都会出现“垃圾进、垃圾出”的问题。本章将围绕分类、回归与异常检测三类核心任务,系统讲解标签的语义定义、标注策略、工具链操作流程以及常见陷阱,帮助你在项目启动阶段就建立起规范、可复现的标注体系。
4.1 分类任务的标签定义:离散语义的边界划分
核心原理:分类任务的目标是让模型学习将输入样本映射到有限个离散类别之一。在Edge Impulse中,分类标签通常对应一个动作、状态或事件类型。标签定义的核心挑战在于类别边界的清晰度——如果两个类别在物理特征上高度重叠,模型将难以收敛。例如,在人体活动识别中,“走路”和“快走”之间的加速度波形差异可能非常细微,若标注时没有明确的速度阈值或步频标准,标注人员会凭主观感觉打标,导致同一段数据在不同批次中被赋予不同标签。
标签设计操作流程:
- 定义类别清单:列出所有需要区分的状态,每个类别必须有可操作的物理定义。例如“静止”定义为三轴加速度方差小于0.05g持续2秒以上。
- 确定窗口长度:Edge Impulse默认使用滑动窗口(如100ms~2s),标签作用于整个窗口。窗口长度应覆盖一个完整动作周期,例如步态识别通常取500ms~1s。
- 分配标签:在Edge Impulse的“Labeling”界面中,选中时间序列片段后直接输入或选择类别名称。支持快捷键操作以提高效率。
- 平衡性检查:在“Data”页面查看每个类别的样本数量,目标是最少类别样本数不低于最多类别的30%,否则需补充采集或使用数据增强。
某工厂需对电机轴承进行状态监测,分类为“正常”、“磨损”、“缺油”三类。初始标注时,工程师仅凭振动幅值大小区分,导致“磨损”和“缺油”大量混淆。复盘后发现,两类故障在时域波形上幅值相近,但频域特征不同——磨损以高频冲击为主,缺油则以中频谐波为主。重新定义标签后,要求标注人员必须同时参考时域波形和FFT频谱图,并规定“磨损”需在2kHz~5kHz频段有明显峰值,“缺油”需在500Hz~1kHz出现边频带。调整后模型准确率从71%提升至93%。
4.2 回归任务的标签设计:连续数值的精度与范围
核心原理:回归任务输出的是连续数值,例如关节角度、负载重量、环境温度等。与分类不同,回归标签不是离散的类别名,而是每个窗口对应的一个或多个浮点数值。标签设计的核心在于数值精度和参考基准。如果传感器数据与目标数值之间存在非线性关系(如应变片输出电压与重量的关系),需要确保标注值经过正确的标定转换,而非直接使用原始电压值。
标签设计操作流程:
- 确定目标变量:明确要预测的物理量及其单位,例如“膝关节屈曲角度(度)”。
- 同步采集真值:使用高精度参考传感器(如光学动捕系统、电子秤)与Edge Impulse采集设备同步记录。时间戳对齐误差应小于一个采样周期。
- 窗口内聚合:对于每个滑动窗口,标签值通常取窗口中心时刻的真值,或窗口内真值的均值。需在文档中明确聚合方式。
- 数据归一化:在Edge Impulse的“Features”或“Parameters”中设置标签的缩放范围(如0~1或-1~1),有助于模型收敛。
| 任务类型 | 标签形式 | 典型工具 | 标注粒度 | 质量验证方法 |
|---|---|---|---|---|
| 分类 | 离散字符串/整数 | Edge Impulse内置标注器 | 窗口级 | 类别分布直方图、混淆矩阵 |
| 回归 | 浮点数数组 | CSV导入 + 时间戳对齐 | 窗口级(聚合) | 预测值vs真值散点图、R² |
| 异常检测 | 仅“正常”标签 | 自动分割 + 人工筛选 | 窗口级 | 重构误差分布、误报率 |
4.3 异常检测任务的标签设计:单类学习的特殊策略
核心原理:异常检测(Anomaly Detection)在Edge Impulse中采用“仅正常数据”训练策略。模型学习正常数据的特征分布,推理时计算新样本与正常分布的偏离程度(即异常得分)。因此,标签设计的目标不是标记“异常”类别,而是筛选出纯净、覆盖全面的正常样本。异常样本仅用于最终测试集验证,不参与训练。
操作流程:
- 采集正常数据:覆盖所有正常工况,包括不同负载、不同转速、不同环境条件。例如旋转机械的“正常”应包含启动、稳定运行、停机三个阶段。
- 自动分割与过滤:在Edge Impulse的“Auto Split”功能中设置窗口长度和步长,然后人工浏览每个窗口的时域波形,剔除包含瞬态冲击、传感器饱和或人为干扰的片段。
- 设置阈值:在“Anomaly Detection”配置中,选择“Autoencoder”或“GMM”作为算法,并设置异常得分阈值。阈值通过验证集(包含少量异常样本)的F1分数来确定。
某团队需监测服务器风扇的异常振动。初始方案直接采集“正常”和“故障”两类数据做分类,但故障样本极难获取(风扇很少突然损坏,多为渐进退化)。改用异常检测后,仅采集了20台风扇在正常负载下的振动数据,每台采集10分钟。标注时发现部分数据包含散热片共振引起的瞬时高幅值,这些片段被人工剔除。训练完成后,在测试阶段人为注入不平衡质量块模拟故障,模型在0.5秒内即触发报警,而传统阈值法(仅监测RMS值)延迟了3秒且误报率高出4倍。复盘关键点:正常数据的覆盖范围决定了模型的鲁棒性,必须包含不同转速和温度区间。
4.4 标注工具链与效率优化
核心原理:Edge Impulse提供了两种标注路径:内置图形化标注器和外部数据导入。内置标注器适合中小规模数据集(<1000个窗口),支持鼠标拖拽选择时间范围并分配标签。外部导入适合大规模或已有标注数据的场景,通过CSV文件携带标签列,或通过JSON格式定义窗口边界。
工具使用对比:
| 维度 | 内置标注器 | CSV/JSON导入 |
|---|---|---|
| 适用规模 | 小样本、快速原型 | 大规模、批量处理 |
| 标签类型 | 分类标签为主 | 分类、回归、元数据均可 |
| 时间对齐 | 手动拖拽 | 需预先对齐时间戳 |
| 效率 | 低-中 | 高(可脚本化) |
| 错误率 | 人工疲劳易出错 | 依赖源数据质量 |
效率优化建议:
- 预分割:使用Python脚本(如pandas)预先将连续数据按固定窗口切分,并生成带标签的CSV,再上传至Edge Impulse。
- 快捷键配置:内置标注器支持数字键快速分配标签,减少鼠标操作。
- 多人协作:将数据集拆分为多个部分,由不同标注人员处理,最后合并。需提前制定统一的标签规范文档。
- 自动标注辅助:先训练一个初步模型,对未标注数据做预测,人工仅修正置信度低的样本(主动学习策略)。
数据标注不是一次性的体力劳动,而是需要反复迭代的工程环节。建议在项目初期预留20%的时间专门用于标签体系的验证和修正。当模型训练效果不佳时,优先检查标签是否存在边界模糊、样本不平衡或标注错误,而非急于调整网络结构。一个经过精心标注的数据集,往往能让简单的决策树模型达到与复杂神经网络相当的性能,同时具备更好的可解释性和部署效率。