3、机器学习基础:监督学习、无监督学习、强化学习的基本概念,以及分类、回归、聚类等任务
在嵌入式AI领域,我们经常听到“部署一个模型”这样的说法。但在真正把模型烧录到MCU之前,首先需要理解:机器学习到底在解决什么问题?它有哪些不同的学习范式?这些范式分别对应什么类型的任务?本章将系统梳理机器学习的三大基本范式——监督学习、无监督学习、强化学习,并深入解析分类、回归、聚类三类核心任务。这些概念是后续理解模型压缩、量化、推理引擎等嵌入式部署技术的前提。
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近似计算、类别数限制 | 浮点转定点、输出范围裁剪 |
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端,作为轻量级推理的一部分。
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位整数,并通过查表法替代部分激活函数计算。此外,强化学习模型的鲁棒性验证比监督学习更困难,因为环境交互的不确定性难以在离线测试中完全覆盖。
背景与约束:某电池供电的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项目启动时,可以按照以下流程选择合适的学习范式:
- 是否有标签数据? 如果有足够的高质量标注数据,优先选择监督学习。
- 问题是否可定义为分类或回归? 如果是离散类别判断,选分类;如果是连续数值预测,选回归。
- 如果没有标签,但需要发现数据模式? 选择无监督学习(聚类/降维),用于数据探索或预处理。
- 问题是否涉及序列决策和长期回报? 如果是(如控制策略、资源调度),考虑强化学习。
- MCU资源是否受限? 如果Flash < 256KB 或 RAM < 32KB,优先选择轻量级监督学习模型(如决策树、线性模型),避免复杂深度网络。
3.4.3 常见误区与总结
常见误区2:将强化学习视为“万能控制器”。强化学习需要大量交互试错,在真实硬件上直接训练成本极高,且策略不稳定可能导致硬件损坏。建议先在仿真环境中训练,再迁移到MCU。
常见误区3:忽略分类和回归在嵌入式部署中的差异。分类模型通常需要Softmax计算,而回归模型需要关注输出值的动态范围。在定点量化时,两者的数据表示策略完全不同。
3.4.4 本章总结
机器学习三大范式构成了嵌入式AI的理论基石。监督学习(分类/回归)是当前MCU部署的主流,适用于绝大多数感知和预测场景;无监督学习(聚类/降维)更多用于数据分析和特征预处理,为监督学习提供高质量输入;强化学习则面向动态决策问题,虽然部署难度较高,但在功耗管理、自适应控制等场景中展现出独特优势。理解三者的本质区别和适用边界,是后续学习模型压缩、量化部署和推理引擎优化的前提。在实际项目中,应根据数据条件、任务类型和硬件资源综合选型,避免“拿着锤子看什么都是钉子”的思维定式。