前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类

MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类

作者头像
拓端
发布2023-08-31 18:01:32
1380
发布2023-08-31 18:01:32
举报
文章被收录于专栏:拓端tecdat拓端tecdat

原文链接:http://tecdat.cn/?p=26318

此示例说明如何使用长短期记忆 (LSTM) 网络对序列数据的每个时间步长进行分类点击文末“阅读原文”获取完整代码数据)。

视频LSTM神经网络架构和工作原理及其在Python中的预测

要训练深度神经网络对序列数据的每个时间步进行分类,可以使用 _序列对序列 LSTM 网络_。序列_对_序列 LSTM 网络使您能够对序列数据的每个单独时间步进行不同的预测。

此示例使用从佩戴在身上的智能手机获取的传感器数据。该示例训练 LSTM 网络,以在给定时间序列数据的情况下识别佩戴者的活动,这些数据表示三个不同方向的加速度计读数。训练数据包含七个时间序列数据。每个序列具有三个特征并且长度不同。数据集包含六个训练观察和一个测试观察。

加载序列数据

加载人类活动识别数据。该数据包含从佩戴在身上的智能手机获得的七个时间序列的传感器数据。每个序列具有三个特征并且长度不同。这三个特征对应于三个不同方向的加速度计读数。

代码语言:javascript
复制
XTrain

在图中可视化一个训练序列。绘制第一个训练序列的第一个特征,并根据相应的活动为绘图着色。

代码语言:javascript
复制
figure
for j = 1:numel
    label = classes;
    idx = find
    hold on
    plot
end

01

02

03

04

定义 LSTM 网络架构

定义 LSTM 网络架构。将输入指定为大小为 3 的序列(输入数据的特征数)。指定一个具有 200 个隐藏单元的 LSTM 层,并输出完整的序列。最后,通过包括一个大小为 5 的全连接层,然后是一个 softmax 层和一个分类层来指定五个类。

代码语言:javascript
复制
layers = \[ ...
    seuenceutLaer
    lsmLyer
    fulyCnectdyer
    sotmLyer
    clssfcainLyr\];

指定训练选项。将求解器设置为 'adam'。训练 60 个 epoch。

使用指定的训练选项训练 LSTM 网络 trainNetwork。每个 mini-batch 包含整个训练集,因此每个 epoch 更新一次图。序列很长,因此处理每个小批量和更新绘图可能需要一些时间。

测试 LSTM 网络

加载测试数据并在每个时间步进行分类。

加载测试数据。 XTest 包含一个维度为 3 的单个序列。 YTest is 包含与每个时间步相对应的分类标签序列。

代码语言:javascript
复制
figure
plot
xlabel
legend
title

使用对测试数据进行分类 。

代码语言:javascript
复制
YPrd = clssif;

或者,您可以使用 一次进行一个时间步长的预测 。通常,与一次一个时间步进行预测相比,对完整序列进行预测会更快。

计算预测的准确性。

代码语言:javascript
复制
ac = sum(YPrd == YTst{1})./nul(YTs{1})

使用绘图将预测与测试数据进行比较。

代码语言:javascript
复制
plot
hold on
plot
hold off
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 拓端数据部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原文链接:http://tecdat.cn/?p=26318
  • 加载序列数据
  • 定义 LSTM 网络架构
  • 测试 LSTM 网络
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档