3、异常检测核心概念:异常类型(点异常、上下文异常、集体异常)、监督/半监督/无监督方法对比

在TinyML异常检测模型部署到Ethos-U NPU之前,必须首先建立对异常检测问题本身的清晰认知。异常检测(Anomaly Detection)的核心任务是识别数据中那些显著偏离正常行为模式的样本或模式。对于资源受限的嵌入式系统而言,理解异常的类型和对应的学习范式,直接决定了后续模型架构选择、数据标注策略、特征工程方向以及NPU上的算子映射方式。本章将系统梳理异常检测的三大类型与三种学习范式,并结合工业振动监测、设备温度监控等典型场景,为后续在Ethos-U上部署模型奠定理论基础。

异常检测核心概念框架 异常类型 点异常 单点偏离 上下文异常 条件偏离 集体异常 序列/群体偏离 学习范式 监督 全标注 半监督 仅正常数据 无监督 无标注 Ethos-U部署考量 量化 INT8/INT16 算子映射 Conv/FC 内存 SRAM/Flash 部署决策路径 数据标注情况 → 异常类型识别 → 学习范式选择 → 模型架构 → NPU量化部署 方法 适用场景 NPU友好度 监督 标签充足 高 半监督 仅正常样本 中高

上图展示了异常检测核心概念的整体框架。异常类型决定了我们如何定义“异常”,而学习范式决定了我们如何利用数据来训练模型。在TinyML场景下,这两者共同约束了模型在Ethos-U NPU上的实现方式。下面将逐一展开分析。

3.1 异常类型的本质与识别

3.1.1 点异常:最基础的异常形态

点异常(Point Anomaly)是指单个数据实例相对于整体数据分布呈现出显著偏离。在工业传感器数据中,一个突然的电压尖峰、一次意外的温度跳变,都是典型的点异常。这类异常的特点是:个体独立性——不需要参考前后数据,仅凭当前值即可判断异常。在Ethos-U部署中,点异常检测通常采用基于距离或密度的算法,如局部离群因子(LOF)或单类支持向量机(One-Class SVM),这些算法经过量化后可以高效映射为NPU上的矩阵运算。

判断点异常的核心方法是建立正常数据的统计边界。例如,对于电机振动信号,可以计算正常状态下的均值和标准差,当实时采集的振动幅值超过μ+3σ阈值时,判定为点异常。这种方法计算开销极小,非常适合在Cortex-M内核上配合Ethos-U实现实时检测。

实战要点:在Ethos-U上部署点异常检测时,建议将统计阈值计算放在MCU侧,而将特征提取(如FFT、小波变换)放在NPU侧。这样既利用了NPU的并行计算能力,又避免了频繁的MCU-NPU数据交互。

3.1.2 上下文异常:依赖场景的异常

上下文异常(Contextual Anomaly)是指数据值本身在全局范围内可能正常,但在特定上下文条件下却显得异常。最典型的例子是:室外温度在夏季白天达到35°C是正常的,但在冬季夜间出现35°C则是异常。上下文异常检测必须引入时间、位置、工况等上下文信息作为条件变量。

在TinyML场景中,上下文异常检测通常需要构建条件模型。例如,在预测性维护中,设备的正常振动频率会随转速变化,因此需要建立“转速-振动”联合分布模型。当实际振动值偏离该联合分布时,即使振动绝对值在正常范围内,也会被判定为上下文异常。实现上,可以使用条件变分自编码器(CVAE)或基于LSTM的序列模型,但这些模型在NPU上的部署需要特别注意时序算子的支持情况。

异常类型定义典型场景NPU部署难度
点异常单点值显著偏离全局分布电压尖峰、温度突变低(统计方法)
上下文异常在特定条件下值偏离条件分布不同转速下的振动异常中(需条件建模)
集体异常一组数据点联合出现异常模式传感器漂移、周期性干扰高(需序列建模)

3.1.3 集体异常:序列与群体的异常模式

集体异常(Collective Anomaly)关注的是数据点集合的联合行为。单个数据点可能完全正常,但它们的组合模式却异常。例如,在连续时间段内,振动信号的频率逐渐漂移,每个时刻的幅值都在正常范围内,但整体趋势却表明设备正在劣化。集体异常检测在工业预测性维护中尤为重要,因为它能捕捉早期退化信号。

实现集体异常检测通常需要序列建模能力。在Ethos-U上,可以部署轻量级的时间卷积网络(TCN)或1D-CNN,通过滑动窗口提取时序特征。值得注意的是,Ethos-U对RNN/LSTM的支持有限,因此在实际部署中更推荐使用基于注意力机制或卷积的序列模型。集体异常检测的输入通常是固定长度的窗口数据,输出为异常得分或重构误差。

部署风险提示:集体异常检测模型往往需要较大的时序窗口(如256个采样点),这会显著增加NPU的SRAM占用。在Ethos-U55上,建议将窗口大小限制在128点以内,并优先使用深度可分离卷积来降低参数量。

3.2 监督/半监督/无监督学习范式对比

3.2.1 监督异常检测:依赖完整标注

监督异常检测将异常检测视为二分类问题,需要同时提供正常和异常样本的标签。在工业场景中,这意味着需要收集足够多的故障样本。监督方法的优势在于可以学习复杂的决策边界,准确率通常较高;但劣势也很明显——异常样本往往稀少且难以获取,导致类别不平衡问题严重。

在Ethos-U部署中,监督模型通常采用轻量级CNN或MLP结构。由于NPU对卷积和全连接层的优化较好,这类模型可以高效运行。但需要特别注意:训练时的数据增强和类别平衡策略会直接影响模型在NPU上的泛化能力。建议使用焦点损失(Focal Loss)或过采样技术来处理类别不平衡。

// 监督异常检测模型伪代码(训练阶段)
model = Sequential([
    Conv1D(16, kernel_size=3, activation='relu', input_shape=(128, 1)),
    MaxPooling1D(2),
    Conv1D(32, kernel_size=3, activation='relu'),
    GlobalAveragePooling1D(),
    Dense(1, activation='sigmoid')
])
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

3.2.2 半监督异常检测:仅需正常数据

半监督异常检测是最适合TinyML场景的范式。它假设训练数据全部来自正常工况,模型学习正常数据的分布特征,在推理时通过重构误差或距离度量来识别异常。这种范式的核心优势在于:无需收集异常样本,这在工业现场极具实用价值,因为故障数据往往难以获取。

常见的半监督方法包括自编码器(AE)、变分自编码器(VAE)和生成对抗网络(GAN)。在Ethos-U上,自编码器是最实用的选择,因为其编码器-解码器结构可以拆分为两个子网络,分别映射到NPU的不同执行阶段。重构误差的计算可以在MCU侧完成,从而减少NPU的额外开销。

经验分享:在部署半监督自编码器时,建议将编码器输出维度控制在16-32维之间。过高的维度会增加解码器的计算量,而过低的维度会导致重构误差无法有效区分正常与异常。在Ethos-U55上,一个128维输入、32维瓶颈的自编码器,推理延迟可控制在5ms以内。

3.2.3 无监督异常检测:无标注的探索

无监督异常检测不依赖任何标签,通过数据的内在结构发现异常。聚类方法(如K-Means、DBSCAN)和基于距离的方法(如LOF)是典型代表。在TinyML场景中,无监督方法通常用于数据探索阶段,帮助工程师理解数据分布,为后续选择监督或半监督方法提供依据。

无监督方法在NPU上的部署面临挑战:聚类算法通常需要迭代计算,且难以直接映射为神经网络算子。因此,在实际部署中,更常见的做法是使用自编码器+聚类的混合方案:先用自编码器提取低维特征,再在特征空间中进行聚类。这样既利用了NPU的特征提取能力,又保持了无监督的灵活性。

3.3 学习范式选择与NPU部署的匹配策略

3.3.1 选择决策流程

在Ethos-U项目启动时,选择合适的学习范式需要遵循以下决策流程:

  1. 评估数据标注情况:如果已有大量标注数据(包括正常和异常),优先考虑监督方法;如果只有正常数据,选择半监督方法;如果完全没有标注,先进行无监督探索。
  2. 分析异常类型:点异常适合简单的统计或浅层模型;上下文异常需要条件建模;集体异常需要序列模型。
  3. 评估NPU资源:检查Ethos-U的MAC阵列大小、SRAM容量和算子支持列表。复杂的序列模型可能无法在低端Ethos-U55上运行。
  4. 考虑量化影响:监督模型通常对量化更敏感,因为决策边界可能很尖锐;半监督模型的重构误差对量化相对鲁棒。

3.3.2 典型部署案例:工业电机振动监测

以工业电机振动监测为例,说明学习范式的选择过程。项目背景:需要在一条生产线的10台电机上部署异常检测系统,每台电机安装一个三轴加速度传感器,采样频率为2kHz,Ethos-U55 NPU负责推理。

初始约束:只有正常运行数据,故障数据需要数月才能积累;每台电机的振动特征存在差异;要求误报率低于1%。

方案选择:由于只有正常数据,选择半监督自编码器方案。具体步骤如下:

  • 数据预处理:对振动信号进行带通滤波(10Hz-1kHz),去除直流分量。
  • 特征提取:计算每个时间窗口(128点)的RMS、峰值因子、频谱质心等特征。
  • 模型训练:在MCU侧使用CMSIS-NN库训练一个3层自编码器,输入为8维特征向量,瓶颈层为2维。
  • NPU部署:将自编码器转换为TFLite格式,使用Vela编译器优化,映射到Ethos-U55。
  • 阈值设定:在正常数据上计算重构误差的99.9%分位数作为异常阈值。

结果对比:部署后,系统在3个月的运行中成功检测到2起轴承早期磨损故障,误报率为0.7%。相比传统固定阈值方法,误报率降低了60%。

风险与代价:半监督方法无法检测训练数据中未出现的正常工况变化。例如,当电机更换新轴承后,振动特征发生变化,可能导致误报。解决方案是定期用新数据微调模型,或引入在线学习机制。

3.4 常见误区与总结复盘

3.4.1 误区一:忽视异常类型的区分

很多工程师在项目初期不区分异常类型,直接套用通用的异常检测算法。这会导致模型性能不佳。例如,使用点异常检测方法处理集体异常,会漏掉缓慢漂移的故障信号。正确的做法是:先通过可视化分析(如t-SNE、时序图)确定异常类型,再选择匹配的算法。

3.4.2 误区二:盲目追求复杂模型

在Ethos-U上部署时,模型复杂度与检测性能需要平衡。一个包含数百万参数的深度网络可能在GPU上表现优异,但在NPU上可能无法满足实时性要求。建议遵循“最小有效模型”原则:从简单模型开始,逐步增加复杂度,直到满足性能指标。

3.4.3 误区三:忽略量化对异常检测的影响

INT8量化会引入信息损失,对于重构误差类指标影响尤为明显。在部署前,必须使用Vela编译器进行量化感知训练(QAT),并在目标硬件上验证量化后的检测性能。建议在量化前后分别计算AUC指标,确保性能下降不超过2%。

学习范式数据需求模型复杂度NPU部署建议典型应用
监督正常+异常标注中-高使用深度可分离卷积已知故障模式检测
半监督仅正常数据低-中自编码器结构未知故障发现
无监督无标注低特征提取+聚类数据探索、预筛选

3.4.4 总结复盘

本章的核心要点可以归纳为:异常类型决定了检测策略,学习范式决定了数据利用方式,而NPU部署约束决定了模型实现形式。在实际项目中,建议按照以下流程推进:首先进行数据探索,明确异常类型;然后评估数据标注情况,选择学习范式;接着设计轻量级模型,进行量化感知训练;最后在Ethos-U上验证性能,并根据实际运行数据持续优化。记住,在TinyML场景中,简单、鲁棒、低功耗往往比追求极致准确率更重要。