3、异常检测方法概述:监督学习、无监督学习、半监督学习在异常检测中的区别,以及为何在设备监测中常用无监督或半监督方法
在工业设备状态监测场景中,异常检测的核心目标是回答一个看似简单但实际复杂的问题:“这台设备当前的行为是否偏离了它应有的健康状态?”然而,这个问题的难点在于“应有状态”的定义方式。根据训练数据中标签的可用性和质量,异常检测方法可以划分为监督学习、无监督学习和半监督学习三大类。这三类方法在假设前提、数据需求、适用场景和工程代价上存在本质差异。理解这些差异,是选择Edge Impulse中合适分析模块(如Anomaly Detection、Classification或Regression)的前提,也是避免“模型训练完却无法落地”这一常见陷阱的关键。
3.1 核心原理:三类学习范式在异常检测中的本质差异
异常检测本质上是一个“分布外检测”(Out-of-Distribution Detection)问题。监督学习、无监督学习和半监督学习对这个问题的建模方式截然不同,这种差异决定了它们在设备监测中的适用边界。
监督学习将异常检测视为一个多分类问题。模型需要学习“正常”和“每一种已知异常”的特征边界。在训练阶段,输入数据必须包含完整的标签集合,例如“正常”、“轴承内圈故障”、“轴承外圈故障”、“滚动体故障”等。模型通过最小化分类损失函数,学习一个决策边界,将不同类别的样本在特征空间中分开。这种方法的优势在于,一旦训练完成,模型不仅能判断“是否异常”,还能直接输出“属于哪一类异常”,为后续维修决策提供直接依据。然而,它的致命弱点是:无法识别训练集中未出现过的异常类型。在真实工业场景中,设备故障模式往往具有长尾分布——最常见的故障可能只占所有故障类型的20%,而剩余80%是各种罕见、复合或渐变性故障。
无监督学习则完全抛弃了标签信息。它基于一个核心假设:正常数据在特征空间中占据高密度区域,而异常数据则偏离这些区域。模型只使用正常状态下的振动数据(或未标注的混合数据)进行训练,学习正常数据的分布模式。在推理阶段,计算新样本与正常分布的距离或重构误差,若超过阈值则判定为异常。无监督学习的最大优势在于其“开放性”——它不预设任何故障类型,因此理论上可以发现任何偏离正常模式的异常行为。这在设备监测中极具价值,因为很多故障在发生初期并没有明确的“教科书式”特征。
半监督学习处于两者之间。它利用大量无标签数据(通常是正常数据)建立基线模型,然后使用少量有标签的异常样本对模型进行校准或微调。例如,先用正常振动数据训练一个自编码器,然后收集少量已知故障样本,计算它们在自编码器上的重构误差分布,从而设定更合理的异常阈值。半监督学习的核心价值在于:它既保留了无监督方法对未知异常的敏感性,又通过少量标注样本提升了已知故障的识别精度。
| 对比维度 | 监督学习 | 无监督学习 | 半监督学习 |
|---|---|---|---|
| 训练数据标签 | 需要完整标签(正常+所有异常类型) | 无需标签,仅需正常数据 | 正常数据为主 + 少量异常标签 |
| 异常识别能力 | 仅能识别已知异常类型 | 可发现未知异常模式 | 兼顾已知与未知异常 |
| 输出结果 | 异常类别标签 | 异常分数/二分类结果 | 异常分数 + 已知类别标签 |
| 数据标注成本 | 极高(需大量故障样本) | 极低(仅需正常数据) | 中等(需少量故障样本) |
| Edge Impulse对应模块 | Classification(Keras/迁移学习) | Anomaly Detection(K-means) | 组合使用(先无监督后分类) |
| 典型应用阶段 | 故障类型已知且样本充足 | 新设备/新产线初期部署 | 运行一段时间后积累少量故障样本 |
3.2 判断方法:如何根据数据条件选择合适的学习范式
在Edge Impulse项目中,选择哪种学习范式不是凭偏好,而是由数据条件决定的。以下是工程实践中常用的判断流程:
- 第一步:评估标签可用性。检查当前数据集中是否包含故障样本。如果只有正常数据(这是设备监测项目最常见的初始状态),则只能选择无监督学习。如果已有部分故障样本,但数量不足以支撑分类训练(通常每类至少需要50-100个样本),则考虑半监督学习。只有当每类故障样本超过100个且故障类型覆盖全面时,才适合监督学习。
- 第二步:评估故障模式的已知程度。如果设备是全新型号或运行在新型工况下,故障模式未知,必须使用无监督学习。如果设备已有多年运行历史,故障模式相对明确,可以逐步过渡到半监督或监督学习。
- 第三步:考虑部署环境的计算约束。Edge Impulse支持将模型部署到MCU或低功耗嵌入式设备。无监督学习模型(如K-means)通常体积小、推理速度快,适合边缘部署。而复杂的监督学习模型(如深度卷积网络)可能需要更多内存和算力,在资源受限的MCU上可能无法实时运行。
- 第四步:评估误报与漏报的代价。在设备监测中,漏报(未检测出异常)可能导致设备损坏和生产停机,误报(正常设备报警)则导致不必要的停机检查。无监督学习通常对未知异常更敏感,但误报率也相对较高。如果误报代价极高,可以通过半监督学习引入少量故障样本进行阈值校准,降低误报率。
3.3 案例拆解:某注塑机轴承监测项目的学习范式选型实战
某汽车零部件工厂有一条注塑机生产线,需要在注塑机主轴承上安装振动传感器,实现状态监测。项目启动时面临以下约束:
- 背景与约束:该注塑机为新采购设备,无历史故障记录;工厂要求监测系统在1个月内上线;边缘网关采用STM32H743 MCU,内存1MB,Flash 2MB;不允许将数据上传云端处理。
- 初始现象与目标:设备处于健康状态,需要建立基线模型。目标是在轴承出现早期异常(如点蚀、磨损、润滑不良)时发出预警,避免突发性停机。
- 关键输入数据:使用ADXL345加速度传感器,采样率4kHz,每次采集4096个样本(约1秒数据)。提取特征包括:RMS、峰值因子、峭度、频谱质心、3个频带能量比(低频0-500Hz、中频500-1500Hz、高频1500-2000Hz),共7维特征。
分析判断过程:由于没有任何故障样本,监督学习被排除。半监督学习虽然理论上可行,但同样需要至少少量故障样本进行校准,当前阶段无法满足。因此,选择无监督学习中的K-means聚类方法,在Edge Impulse的Anomaly Detection模块中实现。
实际操作步骤:
- 在Edge Impulse中创建新项目,上传采集到的正常振动数据(共采集了2小时数据,切分为7200个样本窗口)。
- 使用频谱分析模块(Spectral Analysis)自动提取特征,选择“Anomaly Detection (K-means)”作为学习模块。
- 设置聚类数K=8(根据经验,正常状态通常需要5-10个簇来覆盖不同转速和负载下的正常变化)。
- 训练完成后,Edge Impulse会输出每个簇的中心点和异常阈值。将阈值设置为P99(即正常数据中99%的样本距离其最近簇中心的距离小于该值)。
- 部署模型到STM32H743,模型大小仅为12KB,推理时间约3ms,完全满足实时性要求。
结果对比与复盘:系统上线运行4个月后,模型成功检测到一次轴承润滑脂劣化导致的早期异常。当时振动RMS值仅上升了15%,传统阈值报警(RMS超过设定值)尚未触发,但K-means模型检测到样本距离最近簇中心的距离超过了P99阈值,发出了预警。停机检查发现轴承滚道出现轻微点蚀,更换润滑脂后恢复正常。复盘发现,如果使用监督学习,由于没有历史故障数据,根本无法建立模型;如果使用简单的RMS阈值报警,则会漏掉这次早期异常。
3.4 常见误区与总结复盘
在设备监测项目中,关于学习范式的选择存在几个常见误区,需要特别注意:
误区一:认为监督学习一定比无监督学习“高级”或“准确”。实际上,在异常检测场景中,监督学习的准确率高度依赖于训练数据对真实故障分布的覆盖程度。如果训练集中缺少某种故障类型,模型在实际部署中遇到该故障时,会将其误判为“正常”或“其他已知故障”,这种错误比“无法分类”更危险。无监督学习虽然不能给出具体的故障类型,但至少能可靠地发出“有异常”的信号。
误区二:忽视数据分布漂移问题。设备监测中的数据分布会随着设备磨损、环境温度变化、负载波动而缓慢漂移。无监督学习模型对数据分布变化非常敏感,原本正常的样本可能因为分布漂移而被误判为异常。解决方法是定期用最近的数据重新训练模型,或者使用滑动窗口更新聚类中心。
误区三:在Edge Impulse中盲目增加特征维度。虽然特征越多理论上信息越丰富,但在无监督学习中,高维特征会导致“维度灾难”——样本间距离趋于均匀,聚类效果退化。在设备振动监测中,7-15维特征通常已经足够。Edge Impulse的自动特征提取功能会生成大量特征,建议使用“Feature Importance”工具筛选出对异常检测贡献最大的特征子集。
误区四:将异常检测与故障诊断混为一谈。异常检测只回答“是否异常”的问题,故障诊断才回答“什么故障”的问题。在项目初期,应优先解决异常检测问题,建立可靠的预警机制。待积累足够故障样本后,再逐步引入监督学习进行故障分类。试图一步到位实现故障诊断,往往导致项目周期过长、模型过拟合。