4、异常检测方法概览:基于统计、基于距离、基于重构、基于分类的方法,以及适合TinyML的轻量级算法选择

振动异常检测是预测性维护与设备状态监测的核心环节。在TinyML场景下,模型需要部署在内存以KB计、算力以MHz计的MCU上,因此异常检测算法的选择不能仅看准确率,更要综合考量计算复杂度、内存占用、实时性与鲁棒性。本章从四类主流异常检测方法出发,剖析其核心原理、适用边界与TinyML适配性,并给出轻量级算法选型决策框架。

TinyML振动异常检测方法分类与选型框架 振动异常检测 基于统计 基于距离 基于重构 基于分类 · 均值/方差阈值 · 3σ准则 · 概率密度估计 · k近邻距离 · 局部离群因子 · 聚类中心距离 · 自编码器 · PCA重构误差 · 稀疏编码 · 一类SVM · 隔离森林 · 决策树/随机森林 TinyML选型四维评估 ① 内存占用 ≤ 50KB ② 单次推理 ≤ 10ms ③ 无需外部存储 ④ 支持增量更新/在线学习

上图展示了四类异常检测方法在TinyML场景下的整体框架。基于统计的方法假设正常数据服从某种分布;基于距离的方法依赖样本间的相似性度量;基于重构的方法通过模型对输入的还原能力判断异常;基于分类的方法则利用正常/异常样本的标签信息。四类方法各有优劣,下面逐一展开。

4.1 基于统计的方法:从分布假设到轻量阈值

核心原理

基于统计的异常检测假设正常振动数据服从某一概率分布(如高斯分布、泊松分布),异常样本则显著偏离该分布。在TinyML中,最常用的是均值-方差阈值法:对正常振动信号提取特征(如RMS、峰值、峭度),计算其均值μ与标准差σ,当新样本特征超出μ±kσ(通常k=3)时判定为异常。该方法计算量极小,仅需维护两个浮点数,非常适合MCU实时计算。

判断方法或操作流程

  1. 特征提取:从原始振动波形中提取时域特征(RMS、峰值因子、峭度)或频域特征(主频幅值、频带能量)。
  2. 离线训练:采集设备正常运转时的振动数据,计算特征均值μ与标准差σ。
  3. 阈值设定:根据3σ准则或业务容忍度设定上下限阈值。
  4. 在线检测:实时计算新样本特征,与阈值比较,超限即报警。
方法计算量内存占用适用场景TinyML适配度
3σ阈值O(1)2个浮点数平稳转速设备★★★★★
概率密度估计O(n)需存储样本分布复杂场景★★☆☆☆
卡方统计量O(d²)协方差矩阵多特征联合检测★★★☆☆

案例拆解:风扇轴承早期磨损检测

某数据中心风扇在恒定转速下运行,初始振动RMS值为0.12g,标准差0.02g。部署3σ阈值模型后,设定报警阈值为0.18g。运行3个月后,RMS值缓慢上升至0.17g,未触发报警;第4个月某天RMS突增至0.25g,系统立即报警。经拆检发现轴承已出现明显磨损。复盘发现,缓慢漂移型故障用固定阈值容易漏报,后续引入滑动窗口均值更新策略,每24小时用最近7天数据重新计算μ和σ,使检测灵敏度提升40%。

常见误区:统计方法假设数据分布稳定,但实际振动信号常受转速、负载变化影响,导致分布漂移。若直接使用固定阈值,会产生大量误报或漏报。建议定期更新统计参数,或采用自适应阈值策略。

4.2 基于距离的方法:几何空间中的离群点识别

核心原理

基于距离的方法将每个振动样本视为特征空间中的一个点,正常样本在空间中聚集紧密,异常样本则远离正常簇。TinyML中常用k近邻(kNN)距离和聚类中心距离两种简化形式。kNN方法计算新样本与训练集中k个最近邻的平均距离,超过阈值即判异常;聚类方法则先用K-Means等算法对正常样本聚类,再计算新样本到最近聚类中心的距离。

判断方法或操作流程

  • 特征降维:对高维振动特征(如FFT频谱)进行PCA或自编码器降维,保留前2-5个主成分。
  • 离线建模:用正常样本训练聚类模型(如K-Means,k=3~5),记录各簇中心坐标。
  • 距离计算:在线计算新样本到最近簇中心的欧氏距离或马氏距离。
  • 动态阈值:以训练集中所有样本到簇中心距离的95%分位数作为阈值。
工程提示:在MCU上实现kNN时,无需存储全部训练样本,只需保存聚类中心(每个中心d维浮点数)。例如3个簇、5维特征,仅需15个浮点数,内存占用约60字节,非常适合TinyML。

实战场景:电机负载突变检测

某工业电机在正常工况下振动特征(1x频幅、2x频幅、RMS)形成紧密簇。部署基于K-Means(k=3)的距离检测模型后,当电机负载突然增加20%时,振动特征点迅速偏离原簇中心,距离从平均0.35跃升至1.82,超过阈值0.8,系统在200ms内完成报警。相比统计方法,距离方法对多特征联合变化更敏感,能捕捉到单一特征未超限但组合特征异常的情况。

经验总结:距离方法的关键在于特征选择与归一化。不同特征量纲差异大时,需先做Z-score标准化,否则距离计算会被量纲大的特征主导。建议在离线阶段用验证集评估不同特征组合的分离度。

4.3 基于重构的方法:自编码器与PCA的降维重构误差

核心原理

基于重构的方法利用模型对正常数据的"压缩-还原"能力。自编码器(AE)通过编码器将输入压缩到低维瓶颈层,再由解码器还原;PCA则通过线性投影实现类似功能。模型仅用正常样本训练,因此对正常数据重构误差小,对异常数据重构误差大。TinyML中常用线性自编码器(即PCA的神经网络实现)或小型深度自编码器(2-3层全连接)。

判断方法或操作流程

  1. 模型设计:输入层维度=特征维度(如32维FFT幅值),隐藏层维度=8~16,输出层=输入维度。
  2. 离线训练:用正常振动数据训练模型,最小化重构误差(MSE)。
  3. 阈值标定:计算训练集所有样本的重构误差,取99%分位数作为阈值。
  4. 在线推理:将新样本输入模型,计算重构误差,超过阈值即判异常。
模型参数量推理计算量重构能力MCU可行性
线性AE(PCA)d×hO(d×h)线性特征高
2层全连接AEd×h+h×dO(2×d×h)非线性特征中高
卷积AE较大高局部特征低

案例拆解:齿轮箱断齿故障的早期预警

某减速齿轮箱正常运行时,振动频谱以啮合频率及其谐波为主。采集1024点FFT幅值作为输入特征(32维),训练一个隐藏层16节点的自编码器。正常样本重构误差均值0.02,阈值设为0.05。当齿轮出现微小裂纹时,高频分量发生变化,重构误差升至0.11,系统提前72小时预警。相比统计方法(RMS未超限),重构方法能捕捉频谱形状的细微变化。但代价是模型训练需要较多样本(约5000组正常数据),且MCU上需存储权重矩阵(32×16+16×32=1024个浮点,约4KB)。

常见误区:自编码器并非越深越好。在TinyML中,过深的网络不仅增加计算量,还容易过拟合正常样本,导致对轻微异常的灵敏度下降。建议从线性AE开始,逐步增加复杂度,以验证集重构误差分布作为选择依据。

4.4 基于分类的方法:监督学习与一类分类

核心原理

基于分类的方法分为两类:一类是传统二分类(正常vs异常),需要大量标注数据;另一类是一类分类(One-Class Classification),仅用正常样本训练,如One-Class SVM、隔离森林。TinyML中更常用后者,因为异常样本难以获取且种类多样。隔离森林通过随机切分特征空间,异常样本更容易被孤立,路径长度更短。

判断方法或操作流程

  • 数据准备:仅需正常振动数据,提取特征并标准化。
  • 模型训练:训练隔离森林(树数量50~100,每棵树深度限制8~10)或One-Class SVM(RBF核)。
  • 异常评分:隔离森林输出异常分数(0~1),SVM输出到超平面的距离。
  • 阈值设定:用验证集正常样本的分数分布确定阈值。
TinyML适配要点:隔离森林在MCU上部署时,可将每棵树的切分条件(特征索引+阈值)存储为结构体数组。100棵树、深度8时,约需存储800个切分节点,每个节点4字节(特征索引2字节+阈值2字节),共3.2KB,可接受。推理时平均路径长度约8次比较,计算量极低。

实战场景:泵阀气蚀检测

某水泵在气蚀初期产生高频冲击振动。采集正常数据2000组,训练隔离森林(100棵树,深度8)。部署后,气蚀初期异常分数从0.35升至0.78(阈值0.6),成功预警。对比发现,统计方法需RMS超限15%才报警,而隔离森林在RMS仅超限5%时即捕获异常,提前量约3小时。但隔离森林对特征分布漂移敏感,设备转速变化时需重新训练。

选型建议:若设备工况稳定、特征分布集中,优先选统计方法(最简单);若有多维特征且存在组合异常,选距离方法;若需捕捉频谱形状变化,选重构方法;若异常类型未知且需高灵敏度,选隔离森林。实际项目中常组合使用:统计方法做粗筛,重构或分类方法做精判。

4.5 TinyML轻量级算法选择决策框架

核心原理

算法选择需综合评估四个维度:内存预算、计算实时性、检测灵敏度、鲁棒性。TinyML设备通常具备以下约束:Flash 256KB~1MB,RAM 16~256KB,CPU主频 80~240MHz,单次推理时间需控制在10ms内。

决策流程

  1. 评估特征维度:若特征维度≤8,统计方法即可;若>8,考虑距离或重构方法。
  2. 评估异常类型:若为幅值突变型,统计方法有效;若为频谱形状变化,重构方法更优;若为组合特征异常,距离或隔离森林更合适。
  3. 评估内存余量:RAM<32KB时,仅考虑统计或距离方法;RAM≥64KB时,可部署小型自编码器或隔离森林。
  4. 评估实时性:若需1kHz采样率下逐样本检测,统计方法(O(1))是唯一选择;若可接受10ms窗口批量处理,其他方法均可。
约束条件推荐算法典型内存推理时间(80MHz MCU)
RAM≤16KB, 特征≤43σ阈值0.1KB<0.1ms
RAM≤32KB, 特征≤8K-Means距离1KB0.5ms
RAM≤64KB, 特征≤32线性自编码器4KB2ms
RAM≤128KB, 特征≤64隔离森林(100棵树)8KB3ms

案例拆解:无线振动传感器节点算法选型

某工业无线传感器节点采用Cortex-M4 80MHz MCU,RAM 64KB,Flash 256KB,电池供电,需每5分钟采集一次振动数据(1024点,采样率10kHz),并通过BLE上传结果。初始方案采用自编码器(隐藏层32节点),模型推理时间3.2ms,内存占用12KB,满足要求。但实际部署后发现,电池续航从预期6个月降至3个月,因为每次推理需唤醒MCU并加载权重。优化方案:改用K-Means距离检测(k=4,特征降维至6维),推理时间0.8ms,内存占用2KB,电池续航恢复至5.5个月。检测准确率仅下降2%(从97%降至95%),但功耗降低60%。

关键提醒:算法选择不能只看准确率,必须结合功耗预算。在TinyML中,每次推理的能耗=计算量×单位能耗+内存访问能耗。距离方法因计算量小、内存访问少,往往比深度模型更节能。建议在选型阶段用功耗分析工具(如ULPBench)评估不同算法的能效比。

总结复盘

四类异常检测方法各有适用边界:统计方法适合简单场景、资源极度受限;距离方法在中等特征维度下表现均衡;重构方法能捕捉复杂模式但需较多内存;分类方法(隔离森林)灵敏度高但需注意分布漂移。实际TinyML项目中,建议采用"两级检测"策略:第一级用统计方法做快速粗筛,第二级用距离或重构方法做精确判断。这种组合既能保证实时性,又能提升检测精度,且总内存占用可控制在10KB以内。