3、无监督学习核心概念:无监督学习与监督/半监督学习的区别,为何在缺少故障样本时选择无监督
TinyML 设备(如振动传感器、电机控制器、可穿戴健康监测器)在实际部署中面临一个极为现实的困境:故障样本极其稀缺,甚至为零。设备在正常工况下运行数月,可能只积累了几十秒的异常数据,而正常数据却以 GB 计。在这种数据分布严重失衡的情况下,监督学习(Supervised Learning)和半监督学习(Semi-Supervised Learning)往往难以落地,而无监督学习(Unsupervised Learning)则成为唯一可行的建模路径。本章将系统梳理三类学习范式的本质区别,并深入剖析为何在“无故障样本”这一约束下,无监督异常检测是 TinyML 场景中的最优解。
3.1 核心原理:三种学习范式的本质差异
要理解为何在 TinyML 异常检测中选择无监督学习,首先需要厘清监督学习、半监督学习和无监督学习在数据需求和建模目标上的根本区别。监督学习假设训练数据包含完整的输入-输出对,即每个样本都有明确的标签(正常/故障)。模型通过最小化预测标签与真实标签之间的误差来学习决策边界。在工业异常检测中,这意味着需要收集足够多的故障样本,并标注其故障类型和严重程度。然而,TinyML 设备通常部署在关键基础设施或生产线上,故障本身是低概率事件,且一旦发生往往立即导致停机或损坏,很难在受控条件下采集到多样化的故障数据。
半监督学习则处于两者之间,它利用少量标注数据(通常是故障样本)和大量未标注数据(通常是正常数据)进行训练。常见的半监督异常检测方法包括 PU Learning(Positive-Unlabeled Learning),即只使用正样本(正常)和未标注数据(可能包含少量故障)来训练分类器。这种方法在理论上可行,但在 TinyML 场景中面临两个现实问题:第一,即使只有 1-2 个故障样本,这些样本也可能无法代表所有故障模式(如轴承磨损、齿轮断裂、润滑失效等),导致模型对未见过的故障类型失效;第二,TinyML 设备的计算资源极其有限(通常为 Cortex-M4 或 RISC-V 内核,内存仅几十 KB),复杂的半监督算法难以在设备端实时运行。
无监督学习则完全摒弃了对标签的依赖。它仅使用正常数据来学习数据的“正常模式”,然后将任何偏离该模式的新样本判定为异常。其核心假设是:正常数据在特征空间中形成紧凑的簇或流形,而异常数据则远离这些簇或流形。在 TinyML 中,这一假设通常成立,因为设备在稳定工况下的振动信号、温度曲线或电流波形具有高度的重复性和规律性。无监督学习的优势在于:正常数据极易获取(设备一上电就开始产生),无需人工标注,且模型可以持续在线更新以适应缓慢的工况漂移。
| 对比维度 | 监督学习 | 半监督学习 | 无监督学习 |
|---|---|---|---|
| 训练数据需求 | 正常 + 故障,且需标注 | 正常 + 少量故障标注 | 仅正常数据 |
| 故障样本要求 | 覆盖所有故障类型 | 至少 1 个代表性故障 | 完全不需要 |
| 模型复杂度 | 高(需学习复杂边界) | 中(需处理标签噪声) | 低(只需拟合正常分布) |
| TinyML 适配性 | 差(内存/算力不足) | 较差(算法复杂) | 优(轻量级算法多) |
| 在线更新能力 | 需重新标注训练 | 需维护标签库 | 可增量学习 |
| 典型算法 | SVM、随机森林、CNN | PU Learning、自训练 | 自编码器、孤立森林、K-means |
3.2 判断方法:如何根据数据条件选择学习范式
在实际的 TinyML 项目启动阶段,工程师应首先进行数据可用性审计,以确定当前数据条件下最适合的学习范式。审计过程分为三步:第一步,统计正常数据和故障数据的样本量。如果故障样本为 0,直接选择无监督学习;如果故障样本少于 10 个且无法覆盖多种故障模式,仍建议使用无监督学习,但需结合专家规则进行辅助验证。第二步,评估故障样本的代表性。如果故障样本来自实验室模拟而非真实现场,其分布可能与实际故障差异较大,此时监督学习模型容易过拟合到模拟故障特征,导致现场误报率升高。第三步,考虑标注成本。在 TinyML 场景中,标注数据需要专业工程师逐条查看波形或频谱,成本极高,而正常数据的采集和清洗则相对简单。
一个实用的判断准则是:当故障样本数量少于特征维度的 10 倍时,监督学习模型极易过拟合。例如,若使用 32 维的频域特征(如 FFT 频谱的 32 个频段能量),则至少需要 320 个故障样本才能训练一个稳定的分类器。而大多数 TinyML 项目在初期根本无法提供如此规模的故障数据。相比之下,无监督学习只需正常数据即可完成模型训练,且正常数据的采集可以自动化进行——设备在出厂前或安装后的调试阶段即可大量收集。
操作流程:数据条件评估与范式选择
- 统计现有数据:正常样本数 N_normal,故障样本数 N_fault。
- 若 N_fault == 0 → 直接采用无监督学习。
- 若 0 < N_fault < 10 → 优先无监督学习,将故障样本作为验证集而非训练集。
- 若 N_fault ≥ 10 且覆盖多种故障模式 → 可尝试半监督学习,但仍需对比无监督基线。
- 若 N_fault ≥ 100 且标注质量高 → 才考虑监督学习。
3.3 案例拆解:电机轴承故障检测中的范式选择
某工业物联网公司开发了一款基于 TinyML 的电机状态监测器,部署在工厂车间的传送带电机上。设备使用加速度计采集振动信号,采样率 4 kHz,每次采集 256 个样本(64 ms),提取时域和频域特征共 24 维。项目初期,团队希望训练一个监督学习模型来区分正常、轴承磨损、转子不平衡和齿轮故障四类状态。然而,在为期 3 个月的现场数据收集中,他们只获得了 2 次轴承磨损故障(均发生在夜间无人值守时段,数据由设备自动保存),其余故障类型完全没有出现。
团队面临的关键约束是:故障样本仅有 2 个,且无法确认是否覆盖所有故障模式。如果强行使用监督学习,模型会将这 2 个样本作为“标准故障模式”,导致对转子不平衡等未见过的故障完全失效。更严重的是,由于故障样本过少,模型在训练时会将正常数据中的噪声误判为故障特征,造成极高的误报率。
最终团队选择了无监督学习方案:使用自编码器(Autoencoder)对正常振动信号进行重构。模型结构为 24-12-6-12-24 的全连接网络,参数量约 800 个,量化后仅占用 3.2 KB Flash 和 1.5 KB RAM,完全满足设备端部署要求。训练数据为 10,000 条正常振动样本(覆盖不同负载和转速工况),训练目标是最小化重构误差。部署后,团队设定了动态阈值——以训练集重构误差的 99.5 百分位数作为初始阈值,并在设备运行过程中每 24 小时更新一次阈值以适应当前工况。
在后续 6 个月的运行中,设备成功检测到 1 次轴承早期磨损(重构误差超过阈值 3.2 倍),并提前 72 小时发出预警,避免了电机烧毁。同时,误报率控制在每月 0.3 次,远低于监督学习方案在模拟测试中的 2.1 次/月。复盘时团队发现,如果当初采用半监督学习(将 2 个故障样本作为正样本),模型会过度关注这 2 个样本的特定频率特征,反而忽略了更普遍的异常模式。无监督学习通过“学习正常、检测偏离”的策略,天然具备对未知故障的泛化能力。
经验提醒:在 TinyML 异常检测中,无监督学习不是“退而求其次”的选择,而是面对故障样本稀缺时的主动策略。其核心价值在于:模型只学习正常模式,因此对任何未知的异常都敏感。即使未来收集到更多故障样本,也建议保留无监督模型作为基线,用监督模型作为辅助分类器来区分故障类型。
3.4 常见误区与总结复盘
在无监督异常检测的实践中,工程师常陷入以下误区:误区一:认为无监督学习不需要数据预处理。实际上,无监督模型对特征尺度极其敏感,如果不对原始振动信号进行归一化或标准化,自编码器的重构误差会被幅值较大的特征主导,导致小幅度但关键的异常被淹没。正确的做法是使用 Z-score 标准化或 Min-Max 归一化,并在训练和推理时使用相同的预处理参数。
误区二:忽略工况变化对“正常模式”的影响。电机在不同转速、负载下的振动特征差异显著,如果只用单一工况的正常数据训练模型,在工况切换时会产生大量误报。解决方案是采用工况条件化建模——根据转速或负载信号将数据分为多个子集,为每个子集训练独立的无监督模型,或者将工况参数作为自编码器的额外输入。
误区三:阈值设定过于静态。设备运行数月后,由于机械磨损、环境温度变化等因素,正常数据的分布会缓慢漂移。如果阈值固定不变,模型会逐渐失效。建议采用滑动窗口动态阈值——每 N 个样本更新一次阈值,使用最近 M 个正常样本的重构误差分布来确定新的阈值。
误区四:认为无监督学习不需要验证。虽然无监督学习不需要标签训练,但必须使用少量已知故障样本(即使只有 1-2 个)来验证模型的检测能力。如果连一个故障样本都没有,至少应通过注入合成异常(如添加随机脉冲、频率偏移)来测试模型的敏感性。
风险提示:无监督异常检测的“无故障样本”假设在长期运行中可能被打破——设备可能经历从未见过的正常工况(如极端温度、电压波动),这些工况会被误判为异常。因此,在生产部署时务必设计人工复核机制:当模型触发告警时,维护人员需确认是否为真实故障,并将确认结果反馈到系统中,用于后续的阈值调整或模型微调。
总结而言,在 TinyML 缺少故障样本的场景中,无监督学习不仅是可行的选择,更是最稳健的工程方案。它通过建模正常数据的分布规律,将异常检测问题转化为“偏离度评估”问题,从而规避了故障样本稀缺的根本矛盾。工程师在实施时,应重点关注特征工程、工况适应性和动态阈值设计,并始终保留人工复核通道,以确保系统在真实工业环境中的可靠性。