3、异常检测方法概述:监督学习、无监督学习、半监督学习在异常检测中的区别,以及为何在设备监测中常用无监督或半监督方法

在工业设备状态监测场景中,异常检测的核心目标是回答一个看似简单但实际复杂的问题:“这台设备当前的行为是否偏离了它应有的健康状态?”然而,这个问题的难点在于“应有状态”的定义方式。根据训练数据中标签的可用性和质量,异常检测方法可以划分为监督学习、无监督学习和半监督学习三大类。这三类方法在假设前提、数据需求、适用场景和工程代价上存在本质差异。理解这些差异,是选择Edge Impulse中合适分析模块(如Anomaly Detection、Classification或Regression)的前提,也是避免“模型训练完却无法落地”这一常见陷阱的关键。

三类异常检测方法对比与设备监测选型逻辑 监督学习 标签要求 正常 + 全部异常类型标签 典型算法 随机森林、XGBoost、CNN分类 设备监测适用性 低(异常样本稀缺) Edge Impulse模块 Classification(需大量标注) ⚠ 需预先知道所有故障模式 ⚠ 新故障类型无法识别 无监督学习 标签要求 无需标签,仅需正常数据 典型算法 K-Means、孤立森林、自编码器 设备监测适用性 高(无需故障样本) Edge Impulse模块 Anomaly Detection(K-means) ✓ 可发现未知异常模式 ✓ 部署简单,适合边缘端 半监督学习 标签要求 仅正常数据 + 少量异常样本 典型算法 单类SVM、隔离森林+微调 设备监测适用性 中高(少量故障样本可获取) Edge Impulse模块 异常检测 + 分类器组合 → 平衡标注成本与精度 → 可识别已知故障类型 设备监测选型逻辑:优先无监督 → 积累故障样本后 → 升级半监督/监督

3.1 核心原理:三类学习范式在异常检测中的本质差异

异常检测本质上是一个“分布外检测”(Out-of-Distribution Detection)问题。监督学习、无监督学习和半监督学习对这个问题的建模方式截然不同,这种差异决定了它们在设备监测中的适用边界。

监督学习将异常检测视为一个多分类问题。模型需要学习“正常”和“每一种已知异常”的特征边界。在训练阶段,输入数据必须包含完整的标签集合,例如“正常”、“轴承内圈故障”、“轴承外圈故障”、“滚动体故障”等。模型通过最小化分类损失函数,学习一个决策边界,将不同类别的样本在特征空间中分开。这种方法的优势在于,一旦训练完成,模型不仅能判断“是否异常”,还能直接输出“属于哪一类异常”,为后续维修决策提供直接依据。然而,它的致命弱点是:无法识别训练集中未出现过的异常类型。在真实工业场景中,设备故障模式往往具有长尾分布——最常见的故障可能只占所有故障类型的20%,而剩余80%是各种罕见、复合或渐变性故障。

无监督学习则完全抛弃了标签信息。它基于一个核心假设:正常数据在特征空间中占据高密度区域,而异常数据则偏离这些区域。模型只使用正常状态下的振动数据(或未标注的混合数据)进行训练,学习正常数据的分布模式。在推理阶段,计算新样本与正常分布的距离或重构误差,若超过阈值则判定为异常。无监督学习的最大优势在于其“开放性”——它不预设任何故障类型,因此理论上可以发现任何偏离正常模式的异常行为。这在设备监测中极具价值,因为很多故障在发生初期并没有明确的“教科书式”特征。

半监督学习处于两者之间。它利用大量无标签数据(通常是正常数据)建立基线模型,然后使用少量有标签的异常样本对模型进行校准或微调。例如,先用正常振动数据训练一个自编码器,然后收集少量已知故障样本,计算它们在自编码器上的重构误差分布,从而设定更合理的异常阈值。半监督学习的核心价值在于:它既保留了无监督方法对未知异常的敏感性,又通过少量标注样本提升了已知故障的识别精度。

对比维度 监督学习 无监督学习 半监督学习
训练数据标签 需要完整标签(正常+所有异常类型) 无需标签,仅需正常数据 正常数据为主 + 少量异常标签
异常识别能力 仅能识别已知异常类型 可发现未知异常模式 兼顾已知与未知异常
输出结果 异常类别标签 异常分数/二分类结果 异常分数 + 已知类别标签
数据标注成本 极高(需大量故障样本) 极低(仅需正常数据) 中等(需少量故障样本)
Edge Impulse对应模块 Classification(Keras/迁移学习) Anomaly Detection(K-means) 组合使用(先无监督后分类)
典型应用阶段 故障类型已知且样本充足 新设备/新产线初期部署 运行一段时间后积累少量故障样本

3.2 判断方法:如何根据数据条件选择合适的学习范式

在Edge Impulse项目中,选择哪种学习范式不是凭偏好,而是由数据条件决定的。以下是工程实践中常用的判断流程:

  1. 第一步:评估标签可用性。检查当前数据集中是否包含故障样本。如果只有正常数据(这是设备监测项目最常见的初始状态),则只能选择无监督学习。如果已有部分故障样本,但数量不足以支撑分类训练(通常每类至少需要50-100个样本),则考虑半监督学习。只有当每类故障样本超过100个且故障类型覆盖全面时,才适合监督学习。
  2. 第二步:评估故障模式的已知程度。如果设备是全新型号或运行在新型工况下,故障模式未知,必须使用无监督学习。如果设备已有多年运行历史,故障模式相对明确,可以逐步过渡到半监督或监督学习。
  3. 第三步:考虑部署环境的计算约束。Edge Impulse支持将模型部署到MCU或低功耗嵌入式设备。无监督学习模型(如K-means)通常体积小、推理速度快,适合边缘部署。而复杂的监督学习模型(如深度卷积网络)可能需要更多内存和算力,在资源受限的MCU上可能无法实时运行。
  4. 第四步:评估误报与漏报的代价。在设备监测中,漏报(未检测出异常)可能导致设备损坏和生产停机,误报(正常设备报警)则导致不必要的停机检查。无监督学习通常对未知异常更敏感,但误报率也相对较高。如果误报代价极高,可以通过半监督学习引入少量故障样本进行阈值校准,降低误报率。
工程经验:在Edge Impulse中,推荐采用“两阶段策略”。第一阶段使用Anomaly Detection模块(基于K-means聚类)建立基线异常检测模型,仅使用正常数据训练。第二阶段,当设备运行3-6个月后,收集到实际发生的故障样本,再使用Classification模块训练一个分类器,专门识别已出现的故障类型。两个模型可以并行运行:异常检测模型负责“广撒网”发现未知问题,分类模型负责“精准定位”已知故障。

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模块中实现。

实际操作步骤:

  1. 在Edge Impulse中创建新项目,上传采集到的正常振动数据(共采集了2小时数据,切分为7200个样本窗口)。
  2. 使用频谱分析模块(Spectral Analysis)自动提取特征,选择“Anomaly Detection (K-means)”作为学习模块。
  3. 设置聚类数K=8(根据经验,正常状态通常需要5-10个簇来覆盖不同转速和负载下的正常变化)。
  4. 训练完成后,Edge Impulse会输出每个簇的中心点和异常阈值。将阈值设置为P99(即正常数据中99%的样本距离其最近簇中心的距离小于该值)。
  5. 部署模型到STM32H743,模型大小仅为12KB,推理时间约3ms,完全满足实时性要求。

结果对比与复盘:系统上线运行4个月后,模型成功检测到一次轴承润滑脂劣化导致的早期异常。当时振动RMS值仅上升了15%,传统阈值报警(RMS超过设定值)尚未触发,但K-means模型检测到样本距离最近簇中心的距离超过了P99阈值,发出了预警。停机检查发现轴承滚道出现轻微点蚀,更换润滑脂后恢复正常。复盘发现,如果使用监督学习,由于没有历史故障数据,根本无法建立模型;如果使用简单的RMS阈值报警,则会漏掉这次早期异常。

风险提示:无监督学习模型并非一劳永逸。当设备工况发生永久性变化(如更换了不同型号的轴承、改变了生产工艺参数)时,原有的“正常”分布可能不再适用,需要重新采集数据并更新模型。建议在Edge Impulse中设置定期重新训练机制,例如每3个月用最近1个月的数据重新训练一次模型。

3.4 常见误区与总结复盘

在设备监测项目中,关于学习范式的选择存在几个常见误区,需要特别注意:

误区一:认为监督学习一定比无监督学习“高级”或“准确”。实际上,在异常检测场景中,监督学习的准确率高度依赖于训练数据对真实故障分布的覆盖程度。如果训练集中缺少某种故障类型,模型在实际部署中遇到该故障时,会将其误判为“正常”或“其他已知故障”,这种错误比“无法分类”更危险。无监督学习虽然不能给出具体的故障类型,但至少能可靠地发出“有异常”的信号。

误区二:忽视数据分布漂移问题。设备监测中的数据分布会随着设备磨损、环境温度变化、负载波动而缓慢漂移。无监督学习模型对数据分布变化非常敏感,原本正常的样本可能因为分布漂移而被误判为异常。解决方法是定期用最近的数据重新训练模型,或者使用滑动窗口更新聚类中心。

误区三:在Edge Impulse中盲目增加特征维度。虽然特征越多理论上信息越丰富,但在无监督学习中,高维特征会导致“维度灾难”——样本间距离趋于均匀,聚类效果退化。在设备振动监测中,7-15维特征通常已经足够。Edge Impulse的自动特征提取功能会生成大量特征,建议使用“Feature Importance”工具筛选出对异常检测贡献最大的特征子集。

误区四:将异常检测与故障诊断混为一谈。异常检测只回答“是否异常”的问题,故障诊断才回答“什么故障”的问题。在项目初期,应优先解决异常检测问题,建立可靠的预警机制。待积累足够故障样本后,再逐步引入监督学习进行故障分类。试图一步到位实现故障诊断,往往导致项目周期过长、模型过拟合。

总结:在设备状态监测项目中,学习范式的选择应遵循“数据驱动”原则。当只有正常数据时,无监督学习是唯一可行且高效的选择;当积累到少量故障样本时,半监督学习可以提升已知故障的识别精度;只有当故障样本充足且类型覆盖全面时,监督学习才成为更优选择。Edge Impulse的模块化设计恰好支持这种渐进式演进路径:从Anomaly Detection起步,逐步叠加Classification模块,实现从“异常预警”到“故障诊断”的能力升级。