0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度学习模型在传感器数据处理中的应用(二):LSTM

MATLAB 来源:MATLAB 2025-02-20 10:48 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

长短期记忆网络(Long Short-Term Memory,LSTM)是递归神经网络(Recurrent Neural Network,RNN)的一个变种,专门设计用来解决标准 RNN 在处理长序列数据时遇到的梯度消失或梯度爆炸问题。标准 RNN 在反向传播过程中,由于链式法则的应用,梯度可能会在多层传播中指数级地减小(梯度消失)或增大(梯度爆炸),这使得网络难以学习和记住长时间步的依赖关系。

1.递归神经网络(RNN)

RNN 的核心是其循环结构。在每个时间步,RNN 不仅接收当前输入数据,还接收前一时间步的隐藏状态,正是隐藏状态的设计,使得网络能够记住和利用之前的信息。

e896fa42-eea9-11ef-9310-92fbcf53809c.png

图 1 RNN 单元结构

图1显示了标准 RNN 的单元结构,其中输入向量xt,输出向量ot,隐藏状态向量ht-1。当前隐藏状态向量ht的计算如下,其输入当前时间步向量xt和前一时间段步的隐藏状态向量ht-1:

e89f0246-eea9-11ef-9310-92fbcf53809c.png

其中 σ 表示激活函数,Wh 和 Wx 是隐藏状态变换参数和输入变换参数,隐藏状态负责记忆之前时间步上的信息。RNN 的输出向量ot是对隐藏状态做线性变换:

e8b103e2-eea9-11ef-9310-92fbcf53809c.png 其中 σ 表示激活函数,Wo 输出变换。Wh 、Wx 和 Wo 是 RNN 要学习的参数。标准的 RNN 结构存在两个主要问题:梯度消失(或增大);长期信息丢失。

梯度消失(或增大)在长时间序列中,梯度是消失还是增大,与选择的激活函数有关,这里我们解释梯度消失问题。假设损失函数为 L,在反向传播过程中,针对参数 Wh的梯度计算为:

e8c27ffa-eea9-11ef-9310-92fbcf53809c.png

而∂h1/∂wh是通过激活函数做梯度计算,激活函数的取值范围是[-1,1](tanh函数)或[0,1](sigmod函数),因此,连续相乘会产生梯度消失,

长期信息丢失对当前隐藏状态向量产生影响的是当前时间步的输入向量和前一个时间步的隐藏状态向量。当前输入数据往往是会携带大量信息,而隐藏状态变量是递归生成的,随着递归次数的增加其变化量也会较少,因此 Wx × xt 的值会大于 Wh × ht-1。

2.长短期记忆(LSTM)

LSTM 是一种新的 RNN 结构,能够有效地保留长期信息并缓解梯度消失问题。LSTM 引入了一个记忆单元(也是单元状态向量),用于存储长期信息。记忆单元通过直接的线性连接在时间步之间传递信息,避免了梯度消失问题。LSTM 通过三个门(遗忘门、输入门和输出门)来控制信息在时间步间的流动量。

遗忘门: 决定记忆单元中哪些信息需要丢弃。

输入门: 决定哪些新的信息会被加入记忆单元。

输出门: 控制记忆单元的输出部分如何影响最终的输出。

LSTM 的单元结构如图2所示。其中,f、i、o分别是遗忘门、输入门和输出门,g表示候选进入单元状态的信息;σg 和σc表示激活函数,e8cf5fa4-eea9-11ef-9310-92fbcf53809c.png 表示向量对应元素相乘。

e8d6a7be-eea9-11ef-9310-92fbcf53809c.png

图 2 LSTM 单元结构 每个门对输入数据和前一时刻的隐藏状态向量的转换过程可以表示为:

遗忘门:

e8ecb1c6-eea9-11ef-9310-92fbcf53809c.png

输入门:

e8ff8594-eea9-11ef-9310-92fbcf53809c.png

输出门:

e90bb6de-eea9-11ef-9310-92fbcf53809c.png

候选状态单元:

e912d8ce-eea9-11ef-9310-92fbcf53809c.png

进一步,单元状态(cellstate)表示为:

e9235578-eea9-11ef-9310-92fbcf53809c.png

隐藏状态(hidden state)表示为:

e9345fd0-eea9-11ef-9310-92fbcf53809c.png

一般情况下,激活函数σg 和σc分别采用tanh函数和sigmod函数。正如公式(5)所示,t时刻的单元状态ct,是对前一时刻的单元状态做部分遗忘,遗忘的比例由遗忘门ft 决定;并增加部分输入数据,增加的比例由输入门决定it。而公式(6)表明,每个时间步的隐藏状态是部分单元状态,比例部分由输出门ot 决定。

正是由于单元状态的引入,可以通过一条直接的路径记住每个时间步的输入数据,也就是长期依赖关系;而输入数据通过加法(类似于残差)引入单元状态中,使得反向传播过程的梯度消失得到缓解。 ▼

3.MATLAB 对 LSTM的支持

在 MATLAB 中,lstmLayer 层实现了 LSTM,其提供了多个属性用于设置和初始化 LSTM 的相关参数。

e9415596-eea9-11ef-9310-92fbcf53809c.png

MATLAB 中的 lstmLayer 及其属性

例如NumHiddenUnits用于设置隐藏状态向量的维度,隐藏状态包含来自所有先前时间步的信息,其大小也决定了 LSTM 要学习的参数的规模;stateActivateFunction设置单元状态和隐藏状态的激活函数;gateActivateFunction用于设置门操作的激活函数;还有一个很重要的属性outputMode,其有两个值:sequence和last。LSTM 单元按时间步顺序处理输入数据,输出是当前时间步的隐藏状态,如图 3 所示。如果outputMode的属性值为 sequence,每个时间步的隐藏状态向量都会输出,最终 lstmLayer 输出一个隐藏状态序列,序列长度等于输入序列的长度;如果outputMode的属性值为 last,那么 lstmLayer 只输出最后一个时间步的隐藏状态向量。由于 LSTM 是对输入序列递归处理,所以最后一个时间的输出隐藏状态向量已经包含其与之前所有时间步的依赖关系。

e94be542-eea9-11ef-9310-92fbcf53809c.png

图3(a)LSTM单元的每个时间步的输入数据和输出数据;

e95dd270-eea9-11ef-9310-92fbcf53809c.png

图3(b) LSTM递归处理输入序列,并生成相应的输出序列

MATLAB 还同时支持 BiLSTM(BiderectionalLong Short-Term Memory),也就是双向 LSTM。BiLSTM 是对 LSTM 的扩展,通过引入双向信息流来增强模型的上下文捕获能力。在 BiLSTM 中,输入序列不仅从前向后处理(正向 LSTM),还从后向前处理(反向 LSTM)。这种双向处理方式允许模型在每个时间步上同时考虑前后文信息,从而提高预测的准确性。

类似于 lstmLayer,MATLAB 中的 bilstmLayer 实现了 BiLSTM。属性NumHiddenUnits用于设置隐藏状态向量的维度,其包含先前时间步和后续时间步的信息,而实际输出的隐藏状态向量维度为 2*NumHiddenUnits,即将前向和后向两个处理过程的隐藏状态进行连接。 ▼

4.LSTM 在基于信号数据的故障诊断中的应用

基于 LSTM,可以构建分类网络对设备或器件做故障诊断。LSTM 可以捕获传感器数据在时间上的依赖关系,进而可以识别设备的动态特性实现诊断或预测。使用 Deep Network Designer App 构建分类网络,如图 4 所示。

e97003a0-eea9-11ef-9310-92fbcf53809c.png

图4 LSTM分类网络

lstmLayer 的隐藏单元向量维度设置为 128,outputMode设置为sequence,因此,lstmLayer 层的输出是一个隐藏状态向量序列,并且序列中的每个向量的维度为 128。在 lstmLayer 之后使用 globalMaxPooling1dLayer 层对输出结果在时间方向上做最大值池化(这类似在传感器数据的深度学习模型应用(一) – Transformer中使用的方法),进而其输出结果为一个128维的向量,最后我们使用两个全连接层做线性变化,最终输出为 3 维的向量对应于故障种类。

使用在传感器数据的深度学习模型应用(一) – Transformer提到的数据集,该数据集是对原始信号数据做了时域、频域、以及时频域的特征提取,进而将具有 146484 采样点一维数据,转换为 1464×30 的二维矩阵(因此,在 LSTM 分类网络中输入层的维度为 30)。数据集进步划分为训练集和测试集,如下所示:

e9835f90-eea9-11ef-9310-92fbcf53809c.png

训练集(上)

e98e4cde-eea9-11ef-9310-92fbcf53809c.png

测试集(下)

模型训练过程,MATLAB 提供了超参数选项实现模型的进一步调优,而超参数选项是通过 trainingOptions 函数设置的,包括初始学习速率、学习速率衰减策略、minibatch 大小、训练执行环境(GPUCPU)、训练周期等等。经过 100 个 Epoch 训练,模型在测试集上的测试结果如图 5 所示:

e9a2f5f8-eea9-11ef-9310-92fbcf53809c.png

图 5 模型训练过程(上)

e9b7ae1c-eea9-11ef-9310-92fbcf53809c.png

图 5测试集精度(heatmap)(下)

5. 总结

本文的目的主要是介绍 Long-shortterm memory(LSTM),以及 MATLAB 对 LSTM 支持和如何在 MATLAB 中构建基于 LSTM 的分类网络。当然基于 LSTM 还可以构建回归网络,实现序列到一个值和序列到序列的预测。本文目的是给读者在序列数据分析提供一种思路,文中的模型设计和训练还有可以优化地方,仅为读者提供参考,也欢迎大家做进一步模型结构调整和精度提升。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2573

    文章

    54368

    浏览量

    786037
  • matlab
    +关注

    关注

    189

    文章

    3018

    浏览量

    237598
  • LSTM
    +关注

    关注

    0

    文章

    62

    浏览量

    4295

原文标题:传感器数据的深度学习模型应用(二)—— LSTM

文章出处:【微信号:MATLAB,微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    传感器关键参数解析:如何配置ODR与FSR提升模型性能

    传感器应用,有两个至关重要的可配置参数直接影响着数据质量和机器学习模型的表现——它们就是输出
    的头像 发表于 11-12 12:04 670次阅读
    <b class='flag-5'>传感器</b>关键参数解析:如何配置ODR与FSR提升<b class='flag-5'>模型</b>性能

    传感器如何实现数据采集联网通信

    传感器实现数据采集与联网通信是一个涉及硬件设计、协议选择、数据处理和云平台集成的系统化过程。其核心目标是将传感器采集的物理量(如温度、湿度、压力等)转换为数字信号,并通过有线或无线方式
    的头像 发表于 09-23 17:30 749次阅读

    霍尔传感器智慧小区燃气联网监测的应用方案与解析

    燃气表叶轮/涡轮结构,支持宽温域(-40℃~+85℃)和抗应力设计‌。 ‌多传感器融合‌:霍尔传感器与温度传感器、压力传感器【 ‌边缘计算‌:
    发表于 08-13 11:05

    自动驾驶Transformer大模型会取代深度学习吗?

    持续讨论。特别是自动驾驶领域,部分厂商开始尝试将多模态大模型(MLLM)引入到感知、规划与决策系统,引发了“传统深度学习是否已过时”的激烈争论。然而,从技术原理、算力成本、安全需求与
    的头像 发表于 08-13 09:15 3917次阅读
    自动驾驶<b class='flag-5'>中</b>Transformer大<b class='flag-5'>模型</b>会取代<b class='flag-5'>深度</b><b class='flag-5'>学习</b>吗?

    进制数据处理方法分享

    随着不断增长的测试需求、更加复杂的系统集成和更多的数据处理,程序控制示波器的应用中越来越多。程序控制很重要的一部分就是如何把数据从示波
    的头像 发表于 07-30 15:41 2150次阅读
    <b class='flag-5'>二</b>进制<b class='flag-5'>数据处理</b>方法分享

    明治传感器产品模型正式入驻Eplan平台,助力高效工程设计!

    在数字化转型浪潮,技术协同已成为行业创新的核心驱动力。明治传感与全球领先的工程设计软件“Eplan”达成深度合作!即日起,公司旗下多款产品模型正式上线Eplan
    的头像 发表于 06-06 18:09 1012次阅读
    明治<b class='flag-5'>传感器</b>产品<b class='flag-5'>模型</b>正式入驻Eplan平台,助力高效工程设计!

    无源传感器维护成本低,但数据处理能力有限,如何权衡?

    电力巡检传感器的选择直接影响监测的效率、成本和安全性。无源传感器和有源传感器各有优缺点,如何在两者之间做出合理选择,是电力巡检
    的头像 发表于 05-19 17:02 723次阅读
    无源<b class='flag-5'>传感器</b>维护成本低,但<b class='flag-5'>数据处理</b>能力有限,如何权衡?

    安泰高压放大器传感器基本传感特性研究的应用

    。主要研究传感器的基本设计原理、传感器光栅信号的解调原理及相对应的能量耦合模型和电路、光路模型;完成对压电-光栅电压
    的头像 发表于 04-21 11:22 493次阅读
    安泰高压放大器<b class='flag-5'>在</b><b class='flag-5'>传感器</b>基本<b class='flag-5'>传感</b>特性研究<b class='flag-5'>中</b>的应用

    树莓派5 + Hailo AI加速:工业级数值数据处理实战,打通SQLite与机器学习全链路

    本文讨论了工业自动化背景下,开发者利用树莓派5和HailoAI加速进行工业级数值数据处理实战,打通SQLite与机器学习全链路时遇到的问题及解决方案。关键要点包括:1.开发者需求:
    的头像 发表于 03-25 09:22 998次阅读
    树莓派5 + Hailo AI加速<b class='flag-5'>器</b>:工业级数值<b class='flag-5'>数据处理</b>实战,打通SQLite与机器<b class='flag-5'>学习</b>全链路

    OpenVINO™工具套件的深度学习工作台中无法导出INT8模型怎么解决?

    无法 OpenVINO™ 工具套件的深度学习 (DL) 工作台中导出 INT8 模型
    发表于 03-06 07:54

    FPGA磁致伸缩位移传感器的应用

    FPGA磁致伸缩位移传感器中用于信号处理数据采集等,其高并行处理、可编程性提升了传感器速度、
    的头像 发表于 02-17 14:48 696次阅读

    康谋分享 | 如何应对ADAS/AD海量数据处理挑战?

    如何有效处理ADAS/AD海量数据并从中获得见解?IVEX数据处理流程可自动从原始传感器数据等输入
    的头像 发表于 12-25 10:05 4271次阅读
    康谋分享 | 如何应对ADAS/AD海量<b class='flag-5'>数据处理</b>挑战?

    传感器低空经济的应用

    低空经济的崛起为传感器技术带来了巨大的发展机遇。传感器作为低空飞行的“眼睛”和“耳朵”,负责收集外部环境的信息,是实现飞行自主导航、避障、状态监测和
    的头像 发表于 12-20 10:46 1619次阅读
    <b class='flag-5'>传感器</b><b class='flag-5'>在</b>低空经济<b class='flag-5'>中</b>的应用

    缓存对大数据处理的影响分析

    缓存对大数据处理的影响显著且重要,主要体现在以下几个方面: 一、提高数据访问速度 数据环境数据
    的头像 发表于 12-18 09:45 1108次阅读

    cmp在数据处理的应用 如何优化cmp性能

    ,然后多个处理器上并行处理,显著提高了数据处理的速度和吞吐量。 1. CMP数据处理
    的头像 发表于 12-17 09:27 1756次阅读