3、机器学习基础:监督学习、无监督学习、强化学习的基本概念,以及分类、回归、聚类等任务

在嵌入式AI领域,我们经常听到“部署一个模型”这样的说法。但在真正把模型烧录到MCU之前,首先需要理解:机器学习到底在解决什么问题?它有哪些不同的学习范式?这些范式分别对应什么类型的任务?本章将系统梳理机器学习的三大基本范式——监督学习、无监督学习、强化学习,并深入解析分类、回归、聚类三类核心任务。这些概念是后续理解模型压缩、量化、推理引擎等嵌入式部署技术的前提。

机器学习三大范式与核心任务关系图 机器学习 监督学习 无监督学习 强化学习 分类 回归 聚类 降维 策略优化 价值评估 分类任务 • 输出离散类别标签 • 二分类:是/否 • 多分类:多个类别 • 典型算法:逻辑回归、 SVM、决策树、CNN 嵌入式案例: 关键词唤醒、手势识别 异常检测 回归任务 • 输出连续数值 • 预测趋势或数值 • 典型算法:线性回归、 多项式回归、神经网络 嵌入式案例: 电池SOC估算、温度 预测、振动幅度分析 聚类任务 • 无标签数据分组 • 发现数据内在结构 • 典型算法:K-Means、 DBSCAN、层次聚类 嵌入式案例: 传感器数据模式识别、 设备行为分群 监督学习 无监督学习 强化学习

3.1 监督学习:从标注数据中学习映射关系

3.1.1 核心原理

监督学习(Supervised Learning)是最常见、也是嵌入式AI中最广泛应用的机器学习范式。其核心思想是:给定一组输入特征 \( X \) 和对应的标签 \( Y \),模型学习一个映射函数 \( f: X \rightarrow Y \),使得对于新的输入 \( X_{new} \),能够预测出正确的输出 \( Y_{pred} \)。这里的“监督”体现在训练过程中,每个样本都有明确的“标准答案”(标签),模型通过不断比较预测值与真实标签的差异(损失函数),调整内部参数以减小误差。

在嵌入式场景中,监督学习通常用于解决两类问题:分类(Classification)和回归(Regression)。分类任务的输出是离散的类别标签,例如“检测到人”或“未检测到人”;回归任务的输出是连续的数值,例如“当前电池剩余电量百分比”。

3.1.2 分类任务详解

分类任务的目标是将输入样本划分到预定义的类别中。根据类别数量,可分为二分类(Binary Classification)和多分类(Multi-class Classification)。在嵌入式AI中,典型的分类应用包括:

  • 关键词唤醒(KWS):从麦克风音频流中识别“Hi, MCU”等唤醒词,属于二分类或多分类问题。
  • 图像分类:在资源受限的MCU上识别物体(如区分猫和狗),通常使用轻量级CNN模型。
  • 异常检测:监测工业设备振动信号,判断设备是否处于异常状态(正常/异常二分类)。

分类模型的输出层通常使用Softmax函数将原始得分转换为概率分布,最终取概率最大的类别作为预测结果。在MCU部署时,Softmax计算涉及指数运算,需要优化实现以避免数值溢出。

3.1.3 回归任务详解

回归任务与分类不同,其输出是连续数值。回归模型学习的是输入与输出之间的数值映射关系。在嵌入式领域,回归任务同样重要:

  • 电池SOC(State of Charge)估算:根据电池电压、电流、温度等特征,预测剩余电量百分比。
  • 温度补偿:根据环境温度传感器读数,预测并校正其他传感器的漂移值。
  • 电机转速预测:根据PWM占空比和负载电流,预测电机实际转速。

回归模型的输出层通常不使用激活函数(或使用线性激活),损失函数常用均方误差(MSE)。在嵌入式部署时,需要注意输出值的范围,必要时进行归一化或缩放处理。

3.1.4 监督学习在嵌入式部署中的关键考量

考量维度 分类任务 回归任务
输出类型 离散标签(0,1,2...) 连续数值(float)
损失函数 交叉熵(Cross-Entropy) 均方误差(MSE)/平均误差(MAE)
输出层激活 Softmax / Sigmoid 线性(无激活)
评估指标 准确率、精确率、召回率、F1-Score RMSE、MAE、R²
MCU部署要点 Softmax近似计算、类别数限制 浮点转定点、输出范围裁剪
经验提醒:在嵌入式AI项目中,分类任务的类别数不宜过多(建议不超过10类),否则会显著增加模型参数量和推理计算量。对于回归任务,务必在训练前对标签进行归一化(如缩放到[0,1]或[-1,1]),这有助于模型更快收敛,也便于后续定点量化。

3.2 无监督学习:从无标签数据中发现隐藏结构

3.2.1 核心原理

无监督学习(Unsupervised Learning)处理的是没有标签的数据。其目标是发现数据内部的结构、模式或分布规律。与监督学习不同,无监督学习没有“标准答案”可供比对,因此评估结果往往带有主观性。在嵌入式AI中,无监督学习主要用于数据探索、特征提取和异常检测等场景。

3.2.2 聚类任务详解

聚类(Clustering)是无监督学习中最具代表性的任务。它将相似的数据样本自动分组,使得同一组内的样本相似度高,不同组间的样本相似度低。常用的聚类算法包括:

  • K-Means:基于距离的划分方法,需要预先指定簇数K。计算速度快,适合嵌入式场景。
  • DBSCAN:基于密度的聚类方法,能发现任意形状的簇,且不需要预先指定簇数,但参数(ε, minPts)调优较复杂。
  • 层次聚类:生成树状层次结构,适合小规模数据。

在嵌入式应用中,聚类常用于传感器数据的离线分析阶段。例如,在部署异常检测模型之前,先用聚类算法分析正常工况下的传感器数据分布,确定正常数据的聚类中心,再基于距离阈值判断新数据是否异常。

3.2.3 降维任务

降维(Dimensionality Reduction)是无监督学习的另一重要任务。它通过线性或非线性变换,将高维数据映射到低维空间,同时尽量保留原始数据的关键信息。主成分分析(PCA)是最经典的线性降维方法。在嵌入式AI中,降维常用于:

  • 特征压缩:将高维传感器特征(如128维FFT频谱)压缩到16维或32维,减少MCU内存占用。
  • 可视化分析:将高维数据映射到2D/3D空间,便于开发人员直观理解数据分布。

3.2.4 无监督学习在嵌入式中的局限与应对

无监督学习在MCU上直接部署的案例较少,主要原因是其计算复杂度较高且结果不稳定。更常见的做法是:在PC端使用无监督学习进行数据预处理和特征分析,然后将分析结果(如聚类中心、PCA变换矩阵)固化到MCU端,作为轻量级推理的一部分。

风险提示:聚类结果对特征缩放非常敏感。在嵌入式场景中,不同传感器(如加速度计和温度计)的量纲差异巨大,必须在聚类前进行标准化(Z-score)或归一化(Min-Max),否则聚类结果会被量纲大的特征主导。

3.3 强化学习:通过与环境交互学习最优策略

3.3.1 核心原理

强化学习(Reinforcement Learning, RL)是一种通过“试错”机制学习决策策略的范式。智能体(Agent)在环境(Environment)中采取动作(Action),环境返回新的状态(State)和奖励(Reward),智能体根据累积奖励最大化原则调整策略。与监督学习不同,强化学习没有现成的输入-输出对,而是通过延迟奖励来学习。

3.3.2 强化学习的核心要素

要素 说明 嵌入式案例
状态(State) 环境当前的可观测信息 电机当前转速、温度、负载
动作(Action) 智能体可执行的操作 调整PWM占空比、切换控制模式
奖励(Reward) 环境对动作的即时反馈 转速误差的负值、能耗的负值
策略(Policy) 状态到动作的映射 神经网络或查找表

3.3.3 强化学习在嵌入式AI中的典型应用

虽然强化学习在MCU上直接训练不现实(计算和存储开销过大),但训练好的策略网络可以部署到MCU上执行推理。典型应用包括:

  • 自适应控制:无人机或机器人的电机控制策略,根据实时传感器输入调整控制参数。
  • 电源管理:根据负载变化动态调整CPU频率和电压,实现功耗优化。
  • 传感器调度:在多个传感器之间动态选择激活策略,平衡功耗与感知精度。

3.3.4 强化学习部署的挑战

将强化学习模型部署到MCU面临独特挑战:策略网络通常需要处理连续状态空间,且对推理延迟敏感。在MCU上,策略网络往往被量化为8位整数,并通过查表法替代部分激活函数计算。此外,强化学习模型的鲁棒性验证比监督学习更困难,因为环境交互的不确定性难以在离线测试中完全覆盖。

案例拆解:基于强化学习的MCU功耗管理
背景与约束:某电池供电的IoT设备,主控为Cortex-M4F MCU(主频80MHz,内置256KB Flash、64KB RAM)。设备需要周期性执行传感器采集和无线发送任务,但任务负载波动较大。目标是在满足实时性要求的前提下,最大化电池续航。
初始现象:固定频率运行(始终48MHz)导致功耗偏高,电池续航仅18小时。
关键输入数据:任务队列长度、当前电池电压、无线模块发送队列状态、实时时钟时间。
分析判断过程:传统DVFS(动态电压频率调整)依赖人工设定阈值,难以适应复杂负载变化。采用强化学习DQN算法,将MCU频率档位(16MHz/32MHz/48MHz/64MHz)作为动作空间,状态为(任务队列长度、电池电压、发送队列状态),奖励函数为 \( R = -(\alpha \cdot 延迟惩罚 + \beta \cdot 功耗) \)。
实际操作步骤:① 在PC端搭建环境模拟器,训练DQN策略网络(输入4维状态,输出4个动作的Q值);② 将训练好的全连接网络(2层,每层16个神经元)量化为8位定点模型;③ 将模型参数以C数组形式烧录到MCU Flash;④ 在MCU上实现前向推理(约需2.3ms);⑤ 每100ms执行一次策略推理,动态调整频率。
结果对比:部署强化学习策略后,平均功耗降低32%,电池续航从18小时提升至26小时,任务超时率仅增加0.3%。
风险与代价:策略网络在训练环境与真实环境之间存在差异(sim-to-real gap),初期出现频率频繁切换导致额外开销。通过增加“最小切换间隔”约束解决。
复盘经验:强化学习适合动态环境下的决策问题,但必须做好环境建模和策略鲁棒性验证。在MCU上部署时,模型量化精度(8位)对策略效果影响显著,建议在量化后重新评估策略性能。

3.4 三大范式对比与选型指南

3.4.1 核心对比

对比维度 监督学习 无监督学习 强化学习
数据要求 有标注数据 无标注数据 交互环境(无需标注)
学习目标 拟合输入-输出映射 发现数据内在结构 最大化累积奖励
反馈方式 即时标签比对 无反馈 延迟奖励
典型任务 分类、回归 聚类、降维 策略优化、价值评估
嵌入式部署难度 低-中(模型推理) 中(离线分析为主) 高(策略推理+环境适配)
MCU资源消耗 Flash/内存占用中等 训练阶段资源消耗大 推理阶段资源消耗中等

3.4.2 选型判断流程

在嵌入式AI项目启动时,可以按照以下流程选择合适的学习范式:

  1. 是否有标签数据? 如果有足够的高质量标注数据,优先选择监督学习。
  2. 问题是否可定义为分类或回归? 如果是离散类别判断,选分类;如果是连续数值预测,选回归。
  3. 如果没有标签,但需要发现数据模式? 选择无监督学习(聚类/降维),用于数据探索或预处理。
  4. 问题是否涉及序列决策和长期回报? 如果是(如控制策略、资源调度),考虑强化学习。
  5. MCU资源是否受限? 如果Flash < 256KB 或 RAM < 32KB,优先选择轻量级监督学习模型(如决策树、线性模型),避免复杂深度网络。

3.4.3 常见误区与总结

常见误区1:认为无监督学习“没有用”,因为无法直接给出预测结果。实际上,在嵌入式AI中,无监督学习常用于数据质量分析和特征工程阶段,是提升监督学习模型性能的重要前置步骤。
常见误区2:将强化学习视为“万能控制器”。强化学习需要大量交互试错,在真实硬件上直接训练成本极高,且策略不稳定可能导致硬件损坏。建议先在仿真环境中训练,再迁移到MCU。
常见误区3:忽略分类和回归在嵌入式部署中的差异。分类模型通常需要Softmax计算,而回归模型需要关注输出值的动态范围。在定点量化时,两者的数据表示策略完全不同。

3.4.4 本章总结

机器学习三大范式构成了嵌入式AI的理论基石。监督学习(分类/回归)是当前MCU部署的主流,适用于绝大多数感知和预测场景;无监督学习(聚类/降维)更多用于数据分析和特征预处理,为监督学习提供高质量输入;强化学习则面向动态决策问题,虽然部署难度较高,但在功耗管理、自适应控制等场景中展现出独特优势。理解三者的本质区别和适用边界,是后续学习模型压缩、量化部署和推理引擎优化的前提。在实际项目中,应根据数据条件、任务类型和硬件资源综合选型,避免“拿着锤子看什么都是钉子”的思维定式。