158、TinyML模型训练最佳实践:持续学习

📅 2026/8/1 5:12:27 👁️ 阅读次数 📝 编程学习
158、TinyML模型训练最佳实践:持续学习

TinyML模型训练最佳实践:持续学习

昨晚调试一块STM32U5上的手势识别模型,发现部署三周后准确率从92%掉到了78%。用户新增了几个自定义手势,模型开始把“滑动”误判成“点击”。这不是过拟合,是典型的“灾难性遗忘”——新知识覆盖了旧知识,而TinyML设备又不能像云端那样随时全量重训。

这个问题在嵌入式ML领域太常见了。今天聊聊持续学习(Continual Learning)在TinyML场景下的落地实践,不是理论堆砌,是踩过坑后的血泪经验。

为什么TinyML的持续学习比云端更难

云端做持续学习,你有GPU集群、无限存储、随时可以回放历史数据。嵌入式设备呢?Flash可能就2MB,RAM 256KB,没有文件系统,甚至没有操作系统。更致命的是——你不能让用户等待模型重训。

我见过一个团队在Cortex-M4上跑全量重训,每次15分钟,电池直接崩了。用户反馈:“这设备用着用着就卡死了。”这不是持续学习,这是持续崩溃。

TinyML的持续学习核心矛盾在于:模型需要适应新数据,但资源不允许保留所有旧数据。解决方案不是硬扛,是策略性妥协。

弹性权重巩固:给重要参数上“锁”

先解决灾难性遗忘。EWC(Elastic Weight Consolidation)在学术界被吹上天,但在嵌入式上直接跑会炸——计算Fisher信息矩阵需要反向传播,对MCU来说太奢侈。

我的做法是离线计算+在线冻结。在训练阶段,用PC计算每个参数对旧任务的重要性