3、模型评估指标基础:准确率、召回率、F1分数、混淆矩阵、推理延迟、内存占用、能耗等关键指标

TinyML 模型的评估与传统机器学习模型有本质差异:我们不仅要回答“预测得准不准”,还要回答“在资源受限的 MCU 上跑不跑得动、耗不耗电、响应是否及时”。本章将系统梳理 TinyML 场景下的核心评估指标体系,从分类质量指标(准确率、召回率、F1、混淆矩阵)到资源指标(推理延迟、内存占用、能耗),并给出可落地的评估流程与常见误区。

TinyML 模型评估指标体系总览 分类质量指标 混淆矩阵 TP / FP / FN / TN 类别级错误分布 准确率 (Accuracy) 整体正确比例 召回率 (Recall) 正类被检出的比例 F1 分数 精确率与召回率的调和平均 资源与性能指标 推理延迟 (Latency) 单次推理耗时 (ms) P50 / P95 / 最坏情况 内存占用 (Memory) Flash + RAM 峰值 能耗 (Energy) mJ/推理 或 μAh/推理 模型体积 (Size) 量化后二进制大小 评估流程 ① 采集真实场景数据 ② 在目标硬件上部署 ③ 测量资源指标 ④ 计算分类质量指标 ⑤ 对比新旧模型 ⑥ 综合评分与决策

3.1 分类质量指标:从混淆矩阵到 F1 分数

分类质量指标回答的是“模型预测得对不对”的问题。在 TinyML 场景中,由于模型通常部署在传感器节点、可穿戴设备或工业控制器上,错误预测的代价往往比云端 AI 更高——例如误报可能导致产线停机,漏报可能导致安全事故。因此,不能只看准确率,必须深入混淆矩阵的每一个格子。

3.1.1 混淆矩阵:一切分类指标的基础

混淆矩阵是一个 N×N 的表格(N 为类别数),行代表真实标签,列代表预测标签。以二分类为例,四个格子分别表示:

  • TP(真阳性):实际为正类,预测也为正类。
  • FP(假阳性):实际为负类,但预测为正类(误报)。
  • FN(假阴性):实际为正类,但预测为负类(漏报)。
  • TN(真阴性):实际为负类,预测也为负类。

在多分类场景下,通常采用“一对多”的方式计算每个类别的 TP/FP/FN/TN。例如在关键词唤醒(KWS)任务中,类别包括“唤醒词”“其他语音”“噪声”,每个类别都可以单独计算混淆矩阵。

为什么 TinyML 必须看混淆矩阵? 因为准确率在类别不平衡时极具欺骗性。假设一个工业异常检测任务中 99% 的数据是正常样本,模型只要全部预测为“正常”就能达到 99% 准确率,但这个模型毫无用处。混淆矩阵能直观暴露模型对少数类的识别能力。

3.1.2 准确率、召回率与 F1 分数的计算与解读

基于混淆矩阵,可以推导出以下核心指标:

指标公式含义TinyML 场景示例
准确率 (Accuracy)(TP+TN)/(TP+TN+FP+FN)所有样本中预测正确的比例手势识别中 100 次预测有 92 次正确
精确率 (Precision)TP/(TP+FP)预测为正类的样本中真正为正类的比例在 10 次“唤醒”预测中,8 次是真的唤醒词
召回率 (Recall)TP/(TP+FN)实际为正类的样本中被正确检出的比例在 20 次真实唤醒中,模型成功捕捉到 18 次
F1 分数2×P×R/(P+R)精确率与召回率的调和平均当精确率和召回率都重要时使用

在 TinyML 中,精确率和召回率往往存在此消彼长的关系。例如在语音唤醒中,提高召回率(更灵敏地捕捉唤醒词)通常会增加误报(FP),降低精确率。F1 分数通过调和平均来平衡两者,避免单一指标误导决策。

3.1.3 多分类场景下的宏平均与微平均

当类别数超过 2 时,需要决定如何聚合各类别的指标:

  • 宏平均(Macro-average):先计算每个类别的指标,再取算术平均。每个类别权重相同,适合类别数量均衡的场景。
  • 微平均(Micro-average):将所有类别的 TP/FP/FN 汇总后再计算指标。大类别对结果影响更大,适合类别不平衡的场景。

在 TinyML 模型对比中,建议同时报告宏平均和微平均 F1,以便全面了解模型在不同类别上的表现差异。

3.2 资源指标:推理延迟、内存占用与能耗

分类质量指标只回答了“准不准”,而资源指标回答的是“能不能跑、跑多快、耗多少电”。TinyML 模型通常运行在 Cortex-M 系列 MCU 上,主频几十到几百 MHz,RAM 从几 KB 到几百 KB,Flash 从几十 KB 到几 MB。这些硬约束决定了模型能否实际部署。

3.2.1 推理延迟(Latency)

推理延迟指从输入数据准备好到模型输出结果之间的时间间隔,单位通常为毫秒(ms)。在 TinyML 中,延迟受以下因素影响:

  1. 模型结构:卷积层、深度可分离卷积、全连接层的计算量差异巨大。
  2. 量化类型:INT8 量化通常比 FP32 快 2-4 倍,但可能带来精度损失。
  3. 硬件加速:部分 MCU 带有 DSP 指令或硬件加速器(如 CMSIS-NN)。
  4. 时钟频率:MCU 运行频率越高,延迟越低,但功耗越高。

延迟测量不能只取平均值,应记录 P50(中位数)、P95(95 分位)和最坏情况。在实时控制场景(如电机故障检测),最坏情况延迟比平均延迟更重要,因为偶发的长延迟可能导致控制失效。

注意: 延迟测量必须在目标硬件上进行,而不是在 PC 或开发板上。PC 上的延迟数据与 MCU 实际表现可能相差 10-100 倍。此外,要关闭调试接口和日志输出,否则会严重干扰测量结果。

3.2.2 内存占用(Memory Footprint)

TinyML 模型的内存占用分为两部分:

  • Flash 占用:模型权重、偏置、激活函数表等静态数据,以及代码段大小。INT8 量化后模型体积约为 FP32 的 1/4。
  • RAM 占用:推理过程中的中间激活值、输入输出缓冲区、临时变量。峰值 RAM 通常出现在某一层计算时。

评估内存时,需要关注以下关键指标:

指标说明典型范围(Cortex-M4)
模型体积量化后二进制文件大小10 KB - 500 KB
峰值 RAM推理过程中最大 RAM 占用5 KB - 100 KB
静态 RAM模型常驻 RAM 大小(权重常驻时)1 KB - 50 KB

在模型版本对比中,如果新模型体积减少了 30%,但峰值 RAM 增加了 20%,可能导致原本可用的 MCU 内存不足。因此,必须同时评估 Flash 和 RAM 两个维度。

3.2.3 能耗(Energy Consumption)

能耗是 TinyML 区别于传统嵌入式 AI 的核心指标。对于电池供电的设备(如智能手表、环境传感器),能耗直接决定续航时间。能耗通常用以下单位表示:

  • mJ/推理:单次推理消耗的能量(毫焦耳)。
  • μAh/推理:单次推理消耗的电量(微安时),便于与电池容量直接换算。

能耗的计算公式为:能耗 = 平均功耗 × 推理时间。平均功耗取决于 MCU 的工作状态(活跃、睡眠、深度睡眠)以及外设(传感器、无线模块)的功耗。在评估时,应区分:

  1. 纯计算能耗:仅 MCU 执行推理的能耗。
  2. 系统级能耗:包括传感器采样、数据预处理、推理、无线传输的完整链路能耗。

在模型对比中,如果新模型推理延迟降低 20%,但需要更频繁地唤醒传感器(例如为了获取更高分辨率输入),系统级能耗可能反而增加。因此,建议以“端到端任务能耗”为最终评估标准。

3.3 评估流程与实操案例:新旧模型对比

下面通过一个完整的案例,展示如何对旧模型(V1)和新模型(V2)进行自动化评估与对比。该案例基于一个工业振动异常检测场景,模型运行在 STM32L4 系列 MCU 上。

3.3.1 案例背景与初始数据

某工厂在旋转机械上部署了振动传感器,需要实时检测异常振动模式。旧模型 V1 为 FP32 模型,新模型 V2 为 INT8 量化模型。评估目标是确定 V2 是否可以在不显著降低检测质量的前提下,降低延迟和能耗。

测试数据集包含 2000 个振动信号片段,其中 1600 个正常样本,400 个异常样本。在目标硬件上分别部署两个模型,测量结果如下:

指标V1(FP32)V2(INT8)变化
准确率96.5%95.8%-0.7%
召回率(异常类)92.0%90.5%-1.5%
F1 分数(异常类)0.890.87-0.02
推理延迟(P50)45 ms18 ms-60%
峰值 RAM48 KB22 KB-54%
模型体积128 KB34 KB-73%
单次推理能耗2.1 mJ0.8 mJ-62%

3.3.2 分析判断过程

从表面数据看,V2 在资源指标上全面领先,但分类质量略有下降。关键问题是:0.7% 的准确率下降和 1.5% 的召回率下降是否可以接受?

进一步分析混淆矩阵发现,V2 的误报(FP)数量从 V1 的 12 次增加到 18 次,漏报(FN)从 32 次增加到 38 次。虽然数量不大,但在工业场景中,漏报意味着异常未被发现,可能导致设备损坏。因此,需要结合业务风险来判断。

通过计算,V2 的能耗降低 62%,意味着电池续航可以从 30 天延长到约 79 天。对于部署在偏远地区的传感器节点,这是一个巨大的优势。最终决策是:接受 V2 作为新版本,但增加一个后处理逻辑——当连续 3 次预测为异常时才触发报警,以降低误报率。

3.3.3 操作流程清单

在实际的模型版本对比中,建议遵循以下标准化流程:

  1. 准备测试集:确保测试数据来自真实部署场景,包含各种环境噪声和边缘情况。
  2. 部署到目标硬件:使用相同的编译选项和优化级别,避免编译器差异影响结果。
  3. 测量资源指标:使用硬件计时器测量延迟,使用内存分析工具(如 ARM MAP)测量 RAM 峰值,使用功耗分析仪(如 Joulescope)测量能耗。
  4. 计算分类指标:在 PC 上运行测试集,生成混淆矩阵并计算准确率、召回率、F1 等。
  5. 生成对比报告:将新旧模型的指标并列展示,标注变化幅度和是否满足阈值。
  6. 综合决策:根据业务需求权衡分类质量与资源效率,必要时进行模型微调或后处理优化。

3.4 常见误区与总结复盘

在 TinyML 模型评估中,以下误区经常导致错误的版本决策:

误区一:只关注准确率。 在类别不平衡或错误代价不对称时,准确率会掩盖严重问题。必须结合混淆矩阵、召回率和 F1 分数综合判断。
误区二:在 PC 上测量延迟。 PC 的 CPU 架构、缓存大小与 MCU 完全不同,测量结果没有参考价值。必须在目标硬件上测量。
误区三:忽略最坏情况延迟。 平均延迟达标不代表实时性达标。在控制类应用中,P95 或最大延迟才是关键指标。
误区四:只比较模型体积,不比较峰值 RAM。 模型体积小不代表 RAM 占用低。某些量化模型虽然 Flash 占用小,但反量化操作需要额外 RAM。