本文主要是介绍【 Edge Impulse平台】相关介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文章介绍Edge Impulse平台 数据训练的过程
关于平台的一些操作,请参考:
【ESP32 + Edge Impulse平台】运行AI算法模拟多传感器数据融合实现异常检测”目录
- 1. 传感器数据融合前言
- 2. 参考资料
- 3. Impulse design
- 3.1 处理块
- 3.2 学习块
1. 传感器数据融合前言
传感器数据融合的几种常用方式:
- 加权平均法:简单易用,运算速度快,但是权重不好确定,权重对结果的影响太大
- 卡尔曼滤波法:通过对传感器的数据进行预测和校正以得到更加准确的结果,适用于 非线性系统和 噪声较大的情况。
- 神经网络法:通过训练神经网络,得到传感器数据之间的关系,从而实现数据融合。适用于 非线性系统和 噪声较大的情况。缺点就是训练过程复杂,运算量大;优点就是,结果会更全面和准确
多传感器融合的基本原理
2. 参考资料
TinyML - 使用 Raspberry Pi Pico 进行运动识别
使用平台的多传感器融合功能:
使用边缘脉冲和机器学习进行 ESP32 异常检测
这个示例展示了 使用平台在线获取 ESP32 读取的气体传感器的值,训练后,打包模型,开始测试
测试时向传感器吹气,输出 气体检测异常的结果
3. Impulse design
https://docs.edgeimpulse.com/docs/edge-impulse-studio/impulse-design
收集完数据集之后,在设计阶段需要完成
- 输入块
input block
- 处理块
processing block
- 学习块
learning block
场景:例如 使用 加速度传感器的数据判断运动分类(不同的运动,跑,跳等)
输入块:表示你采集的数据集哪部分用于输入模块用于后续操作
处理块:是一个特征提取器,由DSP运算用于提取数据集的特征
学习块:是一个小型的经过训练的神经网络,用于数据的学习;包括基本的处理算法:分类、回归、异常检测、图像迁移学习、关键词识别、object detection
3.1 处理块
【raw data】
raw data
表示原始数据,数据集不经处理直接经处理块输入学习块
【flatten】
对信号执行统计分析,比如温度数据,数据的变化速率比较慢, flatten 模块对这种变化比较缓慢的数据类型,结合其他模块使用,比较有效
计算数据窗口内的 平均值、最小值、最大值、均方根、标准差、偏度、峰度
3.2 学习块
初始数据经过 处理块之后,提取出有意义的特征后,使用学习块 训练自己的模型
分类、回归 kears
异常检测、 K-means
GMM
图像迁移学习、关键词识别、object detection
【分类器】
分类模块可实现:运动识别、声音识别、传感器数据融合
NN 分类器:通过神经网络将数据分类
数据1:属于A类,概率0.7
数据2:属于A类,概率0.9
数据3:属于B类,概率0.6
数据4:属于C类,概率0.7
训练,调参,知道网络预测数据的准确性变高。
数据输入神经网络训练,然后将神经网络的输出与正确答案比较,并根据结果不断调整网络参数(神经元之间的连接权重),直到网络学会预测训练数据的正确答案。
- **训练周期数:**每次训练算法通过反向传播完整遍历所有训练数据并更新模型参数时,称为一个纪元或训练周期。
- **学习率:**学习率控制在训练过程的每一步中模型内部参数的更新量。或者您也可以将其视为神经网络的学习速度。如果网络很快过拟合,可以降低学习率
- **验证集大小:**用于验证的训练集的百分比,一个好的默认值是 20%
- 自动平衡数据集混合来自不常见类的更多数据副本。如果某些类的数据很少,可能有助于使模型更加稳健,防止过度拟合。
【异常检测 K-means】
这个神经网络最大的缺陷是:不擅长处理以前从未见过的数据(例如新手势)。神经网络无法判断这一点,因为它们只知道训练数据。如果你给它一些不同于它以前见过的东西,它仍然会被归类为四个类别之一。
这篇关于【 Edge Impulse平台】相关介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!