159、TinyML模型训练最佳实践:模型验证与测试
TinyML模型训练最佳实践:模型验证与测试去年冬天调试一个智能门磁项目,模型在PC端跑测试准确率98%,部署到STM32F4上直接崩了——不是精度下降,是推理结果全是0。查了三天,最后发现是测试集里混了一个训练样本,模型在验证时“作弊”了。这种坑,踩过一次就再也不敢马虎。验证集不是摆设,是救命稻草很多人做TinyML模型,数据集本来就小,恨不得把所有数据都塞进训练集。结果模型在训练集上loss漂亮得像假数据,一上板子就原形毕露。正确的数据划分策略:训练集、验证集、测试集,一个都不能少。对于嵌入式场景,建议按6:2:2划分。别觉得浪费数据,你省下的那20%数据,会在部署阶段让你少掉一半头发。有个细节容易忽略:时间序列数据绝对不能随机打乱后划分。比如加速度传感器采集的人体活动数据,前10分钟是走路,中间10分钟是跑步,后10分钟是上下楼梯。如果你随机打乱再划分,验证集里可能混入了和训练集时间上连续的数据片段,模型实际上“见过”类似模式。正确做法是按时间顺序切分,前60%训练,中间20%验证,最后20%测试。交叉验证在小数据集上的正确打开方式当你的数据集少于1000个样本时,单次随机划分的验证结果可能波动很大。这时候K折交叉验证是更好的选择。但注意,嵌入式场景的交叉验证和标准ML不一样。标准做法是随机分成K份,但TinyML的数据往往带有设备ID、环境标签等元信息。如果你把同一个设备采集的数据分到了不同折里,模型实际