背景介绍
近年来,国内一直大力发展数字经济,从共享单车到新能源汽车,其主要推动力在于硬件性能的不断提升,软件系统的不断优化,带动了物联网行业不断的向前发展。物联网想要真正赋能实体经济,需要多个学科之间相互协调,整个过程中存在巨量的市场,也存在一些小众领域,能吃一些残羹剩饭。
传统的系统架构为:通过网关将嵌入式硬件采集的数据上传到物联网云平台,整个过程中需要占用的硬件资源比较多,系统的实时性比较差。近年来,随着人工智能算法的不断发展,出现了各种轻量化的神经网络模型,能够支持数据边缘侧进行实时处理(特征提取),并将结果反馈到云平台。
机器学习算法
调研发现,传感器采集的数据大多属于时序数据,工程师能够通过算法对信息规律地分析和挖掘,实现对未来事件的准确预测,相关成果广泛应用于人体运动状态预测、依据ECG信号识别人体生理状态、污染物浓度预测、机械设备寿命预测、地基变形规律预测以及股票的涨跌预测等。
传统的时间序列预测主要基于统计学方法,通过数学模型描述数据背后的耦合关系,主要包含:指数平滑法、移动平均(MA)、 自回归(AR)等。然而很多实际场景中很难建立准确的数学模型(ECG生理信号等),因此,近些年为了解决该问题,发展出RNN以及LSTM等机器学习算法,具体原理如下所示:
LSTM内部主要包含三个门(遗忘门、输入门和输出门)和记忆单元 (Memory Cell)两块,其中,遗忘门、输入门和输出门的数学表达式为:
单元状态的更新函数为:
系统的输出为:
附1:AR模型:当前值是前 p 时刻序列的线性组合,核心本质属于线性拟合,通过求解矩阵方程组获取拟合拟合参数;
附2:LSTM的数学模型跟力学涉及的材料本构极为相似,在什么时候有限元解是唯一的,什么时候是无解的,最后可以用数学上不动点原理来解答。
应用实例
智能可穿戴设备在生活中具有广泛的应用,能够自动采集人体的状态数据。本项目中建立了LSTM模型,后续导入智能手机获取的加速度信号进行训练,判断穿戴者的状态(坐下、站立、走动、跑步以及跳动)。本项目采用6组时序数据作为训练集,每组数据包含X、Y、Z方向的加速度信号,具体过程如下所示:
后续将LSTM模型封装为函数,直接部署到网关中,本项目采用的网关硬件参数为: 4核心;内存:512M;存储容量:4g ;支持sd卡;
代码语言:javascript复制clear all;clc
filename = 'data.txt';
datatable = importdata(filename);
changdu=50;
traindata=zeros(3,changdu);
for i=1:length(datatable)
temp=tiqu(datatable{i,1});
if i<(changdu 1)
traindata(1,i)=temp(1,1);
traindata(2,i)=temp(1,2);
traindata(3,i)=temp(1,3);
end
if i>changdu
traindata=circshift(traindata,-1,2);
traindata(1,changdu)=temp(1,1);
traindata(2,changdu)=temp(1,2);
traindata(3,changdu)=temp(1,3);
end
ypre=acceleration(traindata);
end