4、异常检测基础:回顾TinyML中常用的异常检测方法及其适用条件

TinyML设备(如振动传感器节点、电机监测器、工业数据采集器)长期部署在物理环境中,其采集到的信号往往呈现高度重复的模式。异常检测的核心任务,就是从这些看似“正常”的数据流中识别出偏离预期的模式。在资源受限的MCU上,我们无法运行复杂的深度学习模型,因此需要根据数据特性、算力预算和部署环境,选择最合适的检测策略。本章将系统回顾阈值检测、统计方法、自编码器和孤立森林四类主流方法,并重点分析它们在采样漂移、安装松动和噪声干扰场景下的适用边界。

TinyML异常检测方法选型与适用条件 传感器数据流 振动/温度/电流 数据特性 · 采样漂移 · 安装松动 · 噪声干扰 方法选型 ① 阈值检测 ② 统计方法 ③ 自编码器 ④ 孤立森林 (按算力/数据量排序) 部署约束 · RAM ≤ 32KB · Flash ≤ 256KB · 实时性要求 异常判定 报警/日志/降级 关键判断逻辑: 1. 数据是否平稳?→ 是:阈值/统计;否:自编码器/孤立森林 2. 算力是否充足?→ 是:自编码器;否:阈值/统计 3. 异常类型是否已知?→ 是:阈值/统计;否:孤立森林/自编码器

上图展示了TinyML异常检测方法选型的整体逻辑。传感器数据流经过特性分析(采样漂移、安装松动、噪声干扰)后,结合部署约束(RAM、Flash、实时性),在四种方法中做出选择。下面我们将逐一深入分析每种方法的原理、实现要点和适用场景。

4.1 阈值检测:最直接但最脆弱的防线

核心原理

阈值检测是最基础的异常检测方法,其核心思想是:如果某个特征值(如振动加速度的RMS值、峰值、温度读数)超出预设的上下限,则判定为异常。在TinyML中,这通常表现为对传感器原始数据或简单统计特征(均值、峰值、峰峰值)的实时比较。

// 阈值检测伪代码示例
float threshold_high = 12.5f;  // 高阈值
float threshold_low = 2.0f;    // 低阈值
float current_rms = compute_rms(sensor_buffer, 128);

if (current_rms > threshold_high || current_rms < threshold_low) {
    trigger_alarm();
}

判断方法

  • 固定阈值:在部署前通过实验确定阈值,适用于工况稳定的场景。
  • 自适应阈值:根据历史数据的滑动窗口动态调整阈值,适应缓慢漂移。
  • 多级阈值:设置警告阈值和报警阈值,分级响应。

案例拆解:电机轴承磨损监测

某工厂在电机轴承上部署了加速度传感器,采样率4kHz,每次采集256个样本。初始时,轴承振动RMS值为5.0±0.3。工程师设定高阈值为8.0,低阈值为3.0。运行3个月后,RMS值缓慢上升至7.2,但未触发报警。第4个月,RMS值突然跳变至9.5,触发报警。停机检查发现轴承已严重磨损。

风险提示:固定阈值无法捕捉缓慢漂移型故障。上述案例中,如果使用滑动窗口(窗口大小=100个样本)计算均值和标准差,当均值超过“历史均值+3σ”时报警,可以提前2周发现问题。

常见误区

  • 阈值设置过紧导致频繁误报,过松导致漏报。
  • 忽略传感器自身噪声对阈值的影响。
  • 未考虑温度变化对振动信号的影响。

4.2 统计方法:利用分布特征识别异常

核心原理

统计方法假设正常数据服从某种概率分布(如高斯分布),通过计算新样本与分布模型的偏离程度来判断异常。常用方法包括:Z-score、Grubbs检验、3σ原则、以及基于滑动窗口的统计过程控制(SPC)。

方法计算复杂度内存占用适用场景
Z-scoreO(n)低(仅需均值/方差)平稳信号,单变量
滑动窗口SPCO(n)中(需缓存窗口数据)缓慢漂移检测
多元高斯O(n²)高(协方差矩阵)多传感器融合

判断方法

  1. 计算历史正常数据的均值μ和标准差σ。
  2. 对每个新样本计算Z-score = (x - μ) / σ。
  3. 若|Z| > 3,则判定为异常(置信度99.7%)。

案例拆解:环境温度补偿

某户外监测节点采集环境温度,用于补偿振动传感器的零漂。正常温度范围为20-30℃,但夏季中午可达35℃。若直接使用固定阈值,35℃会被误判为异常。采用滑动窗口统计方法后,窗口大小为24小时,计算每个时刻的均值和标准差。当温度超过“当前时刻历史均值+2σ”时,才触发异常。这样既避免了误报,又能捕捉到异常温升。

经验:统计方法对计算资源要求低,适合在MCU上实时运行。但需注意,当数据分布非高斯时(如重尾分布),3σ原则可能失效。此时可考虑使用中位数和MAD(中位差)替代均值和标准差。

4.3 自编码器:利用重构误差检测异常

核心原理

自编码器是一种神经网络,通过编码器将输入压缩为低维表示,再通过解码器重构输入。训练时仅使用正常数据,使重构误差最小化。推理时,若重构误差超过阈值,则判定为异常。在TinyML中,通常使用1D-CNN或LSTM自编码器处理时序信号。

// 自编码器模型结构(TensorFlow Lite Micro示例)
model = Sequential([
    Input(shape=(64, 1)),        // 64个时间步,单通道
    Conv1D(16, 3, activation='relu'),
    MaxPooling1D(2),
    Conv1D(8, 3, activation='relu'),
    UpSampling1D(2),
    Conv1D(1, 3, activation='linear')
])
// 训练后转换为.tflite格式,部署到MCU

判断方法

  • 重构误差指标:MSE(均方误差)或MAE(平均误差)。
  • 阈值设定:在验证集上计算误差分布,取95%或99%分位数作为阈值。
  • 窗口化处理:对连续时间序列,使用滑动窗口(如64个样本)输入模型。

案例拆解:泵体振动异常检测

某水泵站部署了振动传感器,采样率2kHz。使用64点窗口的1D-CNN自编码器,模型大小约12KB,RAM占用8KB。训练数据为正常运行3天的振动信号(约500万样本)。验证集上MSE均值为0.002,标准差0.001。设定阈值为0.005(均值+3σ)。部署后第7天,MSE突然升至0.02,触发报警。检查发现泵体地脚螺栓松动,紧固后MSE恢复正常。

关键参数:自编码器的压缩维度(latent dimension)决定了模型容量。压缩维度太小,模型无法捕捉正常模式;太大则容易过拟合噪声。建议从输入维度的一半开始调试。

常见误区

  • 训练数据中混入异常样本,导致模型“学会”重构异常。
  • 未对输入数据进行归一化,导致重构误差被量纲主导。
  • 忽略时间相关性,将每个样本独立输入,丢失时序特征。

4.4 孤立森林:高效的多变量异常检测

核心原理

孤立森林基于随机森林思想,通过随机分割特征空间来“孤立”异常点。异常点通常位于特征空间的稀疏区域,因此需要更少的分割次数就能被隔离。在TinyML中,由于内存限制,通常使用简化版(如iForest-Lite)或仅使用少量树(如10棵)。

判断方法

  1. 构建t棵孤立树,每棵树随机选择特征和分割值。
  2. 计算每个样本在所有树中的平均路径长度。
  3. 路径长度越短,异常得分越高。
  4. 设定异常得分阈值(如0.6)进行判定。

案例拆解:多传感器融合的异常检测

某工业机器人关节部署了6个传感器(3轴加速度+3轴陀螺仪)。使用孤立森林检测异常,每棵树最大深度10,树数量20。特征维度为6,每个特征归一化到[0,1]。训练数据为正常运行100小时的样本(约10万条)。测试时,当机器人碰撞到障碍物时,异常得分从0.2升至0.85,成功触发报警。而使用单变量阈值检测,由于碰撞信号持续时间极短(<50ms),难以捕捉。

注意:孤立森林对高维数据有效,但树的数量和深度直接影响内存占用。在MCU上,建议树数量≤20,深度≤10,否则Flash和RAM可能超限。

常见误区

  • 特征未标准化,导致某些维度主导分割。
  • 树数量过多,超出MCU内存限制。
  • 未考虑时间窗口,将瞬时噪声误判为异常。

4.5 方法对比与选型决策

方法算力需求内存需求抗噪能力漂移适应性多变量支持部署难度
阈值检测极低极低弱差否极简
统计方法低低中中有限简单
自编码器中高中强强是复杂
孤立森林中中中中是中等

选型决策流程

  • 第一步:评估数据特性。若数据平稳且单变量,优先选择阈值或统计方法。
  • 第二步:评估算力预算。若Flash < 64KB且RAM < 8KB,排除自编码器。
  • 第三步:评估异常类型。若异常为突发脉冲,阈值检测可能有效;若为缓慢漂移,统计方法更合适。
  • 第四步:考虑多传感器融合需求。若需融合多个信号,孤立森林或自编码器更合适。
实战建议:在TinyML项目中,建议采用“两级检测”策略:第一级使用阈值或统计方法进行快速筛查,第二级对疑似异常使用自编码器或孤立森林进行精确判定。这样既能保证实时性,又能提高准确率。

4.6 总结与复盘

本章回顾了四种TinyML异常检测方法,每种方法都有其独特的适用边界。阈值检测简单但脆弱,适合工况稳定的场景;统计方法在平稳数据上表现良好,且计算开销低;自编码器能捕捉复杂模式,但需要充足的训练数据和算力;孤立森林擅长多变量异常检测,但需注意内存限制。在实际项目中,没有“万能”的方法,必须根据数据特性、硬件约束和业务需求进行综合选型。

核心要点:采样漂移问题可通过滑动窗口统计或自适应阈值缓解;安装松动通常表现为振动信号的低频分量增加,可通过频域特征辅助检测;噪声干扰则需结合滤波预处理和统计方法。建议在部署前,使用历史数据离线仿真不同方法的检测效果,选择最优方案。