TensorFlow中LSTM神经网络详解

TensorFlow中LSTM神经网络详解

  • 一、LSTM神经元
    • [1.1 神经网络引入](#1.1 神经网络引入)
    • [1.2 RNN神经元结构](#1.2 RNN神经元结构)
    • [1.3 LSTM神经元](#1.3 LSTM神经元)
      • [1.3.1 LSTM模型框架](#1.3.1 LSTM模型框架)
      • [1.3.2 隐藏态](#1.3.2 隐藏态)
      • [1.3.3 遗忘门](#1.3.3 遗忘门)
      • [1.3.4 记忆门](#1.3.4 记忆门)
      • [1.3.5 输出门](#1.3.5 输出门)
  • 二、LSTM神经网络
    • [2.1 LSTM网络架构](#2.1 LSTM网络架构)

时间序列预测分析可以实现对未来数据的预测分析,通过分析过去时序数据,形成长短时序记忆,从而实现对未来数据的预测。

一、LSTM神经元

1.1 神经网络引入

随着神经网络的出现,各种应用都用到了神经网络,但是传统的神经网络中的神经元并不具备记忆功能,于是能够有记忆功能的神经网络就产生了。

1.2 RNN神经元结构

RNN神经网络虽然可以让神经元具有"记忆"能力,但是从上面的图也可以看出RNN的神经元仅仅对距离自己较近的神经元的记忆能力比较好,但是对于距离自己较远的神经元产生的影响可能会有一定程度的忽略。

1.3 LSTM神经元

1.3.1 LSTM模型框架

为了克服RNN 神经网络对于长时间记忆的问题,LSTM出现了,下面的图展示了LSTM的框架,通过一个一个基本单元连接实现对前面神经元传入数据的选择以及输出当前神经元的数据到下一级神经元。

1.3.2 隐藏态

这是LSTM中最关键的主线部分,决定了LSTM最终的输出。

1.3.3 遗忘门

在遗忘门,LSTM会先根据新的输入和上一时刻的输出决定遗忘掉之前的哪些记忆------输入和上一步的输出会整合为一个单独的向量,然后通过sigmoid神经层,最后点对点的乘在单元状态上,这个部分实现了记忆传递的功能。

1.3.4 记忆门

记忆门用来控制是否将当前时刻的数据并入单元状态中的控制单位。先用tanh函数层将现在的向量中的有效信息提取出来,然后用的sigmoid函数来控制这些记忆要放"多少"进入单元状态。

1.3.5 输出门

计算当前时刻的输出值的神经层。输出层会先将当前输入值与上一时刻输出值整合后的向量,用sigmoid函数提取其中的信息,接着,会将当前的单元状态通过tanh函数压缩映射到区间(-1, 1)中。

值得注意的一点是使用tanh函数的原因:

  1. 为了防止梯度消失问题,我们需要一个二次导数在大范围内不为0的函数,而tanh函数可以满足这一点
  2. 为了便于凸优化,我们需要一个单调函数
  3. tanh函数一般收敛的更快
  4. tanh函数的求导占用系统的资源更少

二、LSTM神经网络

仅仅了解LSTM神经元并不足以支撑完成庞大的LSTM神经网络架构的构建,因此学习如何将LSTM与其他神经元结构相结合很有必要。

2.1 LSTM网络架构

把这幅图跟前面讲的LSTM单个神经元放在一起比较很快就能发现这个网络设计的巧妙之处,纵向是网络架构,也就是在各种Python库中LSTM封装的调用里面定义的网络架构,比如下面我写的这个两层的LSTM层:

这里我们就可以理解为什么之前LSTM神经元需要有两个输出了,因为不仅仅需要当前神经元跟同一层的神经元进行时序上面的交互实现数据记忆,并在记忆的基础上实现预测;还有一个很重要的就是将当前LSTM层的输出数据传到下一层LSTM或者Dense层,用来最终输出预测结果。

另外值得一提的是Dense层:在LSTM网络中Dense层可以有两个常见的作用:

  1. 帮助理解特征。
  2. 将模型中的数据维度转化成输出数据需要的维度。
相关推荐
2601_9622935316 小时前
人工智能 & 神经网络完整入门路线(零基础可走,分阶段)
人工智能·python·深度学习·神经网络·机器学习
你想知道什么?18 小时前
神经网络-学习笔记
笔记·神经网络·学习
Thomas.Sir19 小时前
第45课:TensorFlow|异常检测实战【工业设备数据故障识别模型搭建】
人工智能·python·tensorflow
在所不辞兄20 小时前
【零基础学智能仿真-16】循环神经网络与LSTM/GRU——学习力学响应的历史记忆
人工智能·rnn·神经网络·gru·lstm·工程技术·工程仿真
Thomas.Sir21 小时前
第42课:TensorFlow|计算机视觉实战二【图像分割基础流程与数据标注规范】
人工智能·计算机视觉·tensorflow
吴佳浩 Alben1 天前
走向 Memory OS:企业私有化 Agent 设计与实现
人工智能·深度学习·神经网络·语言模型·架构·自动化·ai编程
早睡早起身体好1231 天前
用 XGrammar 约束大模型工具调用:解决参数为空的问题
android·人工智能·神经网络·机器学习·自然语言处理·vllm
Thomas.Sir2 天前
第40课:TensorFlow|模型推理部署前置知识【离线推理、接口调用基础】
人工智能·python·tensorflow
CIO_Alliance2 天前
AI微调系列(1)| 全量微调、LoRA、QLoRA 三种方案怎么选
前端·人工智能·神经网络·机器学习·embedding·企业ai转型
打不了嗝 ᥬ᭄2 天前
神经网络基础与整体架构
人工智能·深度学习·神经网络