3、传感器分类与异常检测任务概述
在TFLite时序模型量化的实际落地场景中,传感器分类与异常检测是最具代表性的两类任务。无论是可穿戴设备上的人体活动识别(HAR)、工业旋转机械上的故障诊断,还是环境监测站点的空气质量异常预警,其本质都是从连续采样的传感器时序数据中提取有效特征,并映射到离散的类别标签或异常分数。理解这些任务类型、数据标注方式以及评估指标的适用边界,是后续进行模型量化、部署和调优的前提。本章将系统梳理常见任务类型、数据标注与评估指标,并结合一个设备故障检测案例,展示从指标选择到模型评估的完整闭环。
3.1 常见任务类型:从信号到决策的三种范式
传感器时序任务虽然形态多样,但按决策输出的性质可归纳为三大类:人体活动识别(HAR)、设备故障检测与环境监测。这三类任务在数据形态、模型输出和部署约束上存在显著差异。
| 任务类型 | 典型传感器 | 输出形式 | 部署设备 | 量化敏感度 |
|---|---|---|---|---|
| 人体活动识别 | 加速度计、陀螺仪 | 多分类(走、跑、跳、静止) | 手表、手机 | 中(需保持时序特征) |
| 设备故障检测 | 振动、电流、温度 | 二分类/多分类(正常、轴承磨损、齿轮断裂) | 工业网关、PLC | 高(微小故障特征易丢失) |
| 环境监测 | 温湿度、PM2.5、气体 | 回归/异常分数 | 物联网节点 | 低(数值范围相对稳定) |
人体活动识别通常采用滑动窗口将连续加速度信号切分为1-3秒的片段,每个片段对应一个活动标签。设备故障检测则更关注频域特征,如振动信号的FFT谱包络,因为早期故障往往表现为特定频带的能量异常。环境监测任务常面临概念漂移问题——季节变化导致温湿度基线偏移,需要模型具备在线自适应能力。
3.2 数据标注:质量决定模型上限
传感器数据的标注比图像文本更困难,因为信号本身缺乏直观语义。标注方式直接影响模型可学习的信息边界。
3.2.1 标注粒度与策略
- 时间点标注:适用于事件型任务,如设备故障发生瞬间。标注成本高,但时间精度高。
- 区间标注:适用于活动识别,标注一段连续时间内的状态。需注意边界模糊问题(如从走到跑的过渡段)。
- 弱标签:仅标注整个文件或批次的状态,如“该设备运行了3小时后出现故障”。适合大规模预训练,但模型无法定位具体时间点。
对于异常检测任务,标注策略更为特殊。多数场景下,我们只能获得正常数据的可靠标注,异常样本稀缺且形态多样。此时常采用半监督或无监督方法:仅用正常数据训练自编码器或单类分类器,将重建误差或距离分数作为异常指标。
3.2.2 标注质量验证
标注完成后需进行一致性检查。常用方法包括:随机抽取10%样本由第二位专家复标,计算Cohen's Kappa系数;对于连续信号,可检查相邻窗口标签的平滑性(活动标签不应在1秒内频繁跳变)。若Kappa值低于0.7,需重新培训标注人员或简化标注规则。
3.3 评估指标:选择与业务目标匹配的度量
不同任务对误报和漏报的容忍度不同,评估指标必须反映业务代价。以下是指标选择的决策框架。
3.3.1 分类任务核心指标
- 准确率(Accuracy):所有样本中预测正确的比例。适用于类别均衡的场景,如四类活动识别(各占25%)。
- 精确率(Precision):预测为正类的样本中实际为正类的比例。高精确率意味着误报少。
- 召回率(Recall):实际为正类的样本中被正确预测的比例。高召回率意味着漏报少。
- F1分数:精确率与召回率的调和平均,适用于类别不平衡场景。
对于多分类任务,通常计算宏平均F1(每个类别F1的算术平均)和加权平均F1(按类别样本量加权)。宏平均更关注小类别的表现,加权平均更反映整体性能。
3.3.2 异常检测的专属指标
异常检测通常输出连续分数而非硬标签,因此需要阈值化处理。此时AUC(ROC曲线下面积)是首选指标,它衡量模型在不同阈值下的综合排序能力,不受阈值选择影响。但AUC对类别不平衡不敏感——即使异常样本只占1%,AUC仍能有效评估。若更关注低误报率下的召回表现,可使用PR曲线(精确率-召回率曲线)及其下面积AP。
# 计算AUC与AP的Python示例
from sklearn.metrics import roc_auc_score, average_precision_score
# y_true: 真实标签(0正常,1异常), y_score: 模型输出的异常分数
auc = roc_auc_score(y_true, y_score)
ap = average_precision_score(y_true, y_score)
print(f"AUC: {auc:.3f}, AP: {ap:.3f}")
3.3.3 量化部署后的指标重评估
模型经过TFLite INT8量化后,输出分数分布会发生变化。建议在量化前后分别计算指标,并关注以下差异:
- 若AUC下降超过0.02,说明量化损失显著,需考虑QAT或混合量化。
- 若精确率下降但召回率不变,说明量化导致误报增多,可适当提高决策阈值。
- 若召回率下降,说明模型对正类样本的区分能力减弱,需检查敏感层的量化误差。
3.4 案例拆解:工业风机轴承故障检测的指标选型与评估
某风电企业需要在边缘网关(ARM Cortex-A53,1GB RAM)上部署轴承故障检测模型。传感器为加速度计,采样率25.6kHz,每10分钟采集一段4秒的振动信号。历史数据显示,正常样本占比98.5%,故障样本仅1.5%(包括内圈磨损、外圈裂纹、滚动体点蚀三类)。
初始目标:在误报率不超过2%的前提下,尽可能提高故障召回率。业务约束:每次误报会导致运维人员无效巡检,成本约200元;每次漏报可能导致轴承彻底损坏,更换成本约5万元。
分析过程:由于类别极度不平衡,准确率指标无意义(模型全部预测正常即可达到98.5%准确率)。团队决定采用宏平均F1作为主要优化目标,同时监控PR曲线。经过特征工程(提取RMS、峰值因子、频带能量等12维特征)和随机森林训练,浮点模型在验证集上达到:AUC=0.97,宏F1=0.82,误报率1.8%,召回率91%。
量化与重评估:将随机森林转换为TFLite模型并应用动态范围量化(权重INT8,激活浮点)。量化后指标变化如下:
| 指标 | 浮点模型 | 动态范围量化 | 变化 |
|---|---|---|---|
| AUC | 0.970 | 0.961 | -0.009 |
| 宏F1 | 0.820 | 0.795 | -0.025 |
| 误报率 | 1.8% | 2.3% | +0.5% |
| 召回率 | 91.0% | 87.5% | -3.5% |
风险与代价:误报率上升0.5%意味着每月增加约36次无效巡检(按每月720次推断),成本增加7200元;召回率下降3.5%意味着每100次真实故障中约有3.5次漏报,潜在损失约1750元/次。综合评估,量化后模型仍满足业务要求(误报率<3%,召回率>85%),但需在部署时设置自适应阈值:当模型输出的异常分数超过0.7时触发告警,低于0.5时自动忽略,中间区域由人工复核。
复盘经验:量化对树模型的影响小于神经网络,但特征数值范围仍需归一化。此外,由于故障样本极少,团队采用SMOTE过采样扩充训练集,但量化后模型对合成样本的泛化能力下降,最终改为类别权重方案,在损失函数中加大故障类别的权重,量化后指标更稳定。
3.5 常见误区与总结复盘
在传感器分类与异常检测任务中,以下误区会直接影响量化部署效果:
- 误区一:盲目追求高准确率。在类别不平衡场景下,准确率会掩盖模型失效。应优先查看混淆矩阵和类别召回率。
- 误区二:忽略时间依赖。传感器数据天然具有时间相关性,若随机打乱训练集和验证集,会高估模型性能。应使用时间序列分割(按时间顺序划分训练/验证集)。
- 误区三:量化后不重评估。量化会改变输出分布,必须重新计算阈值和指标,不能沿用浮点模型的阈值。
- 误区四:异常检测只用AUC。AUC反映排序能力,但实际部署需要具体阈值。应结合PR曲线和业务代价选择操作点。
总结而言,传感器分类与异常检测任务的核心在于:明确业务代价、选择合适的指标、严格的时间序列数据划分、量化后重评估。在TFLite部署链路中,这些步骤决定了模型从实验到生产的可靠性。下一阶段将深入探讨时序模型的结构选择与量化适配策略。