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. 将模型中的数据维度转化成输出数据需要的维度。
相关推荐
材料科学研究11 小时前
深度学习物理神经网络(PINN)!
python·深度学习·神经网络·pinn
星际棋手12 小时前
【AI】一文说清楚神经网络、机器学习、专家系统
人工智能·神经网络·机器学习
可触的未来,发芽的智生14 小时前
触摸未来2025-10-18:生成文字的小宇宙矩阵溯源
人工智能·python·神经网络·程序人生·自然语言处理
无风听海18 小时前
神经网络之链式法则
人工智能·深度学习·神经网络
生命是有光的1 天前
【深度学习】神经网络基础
人工智能·深度学习·神经网络
信田君95271 天前
瑞莎星瑞(Radxa Orion O6) 基于 Android OS 使用 NPU的图片模糊查找APP 开发
android·人工智能·深度学习·神经网络
StarPrayers.1 天前
卷积神经网络(CNN)入门实践及Sequential 容器封装
人工智能·pytorch·神经网络·cnn
一水鉴天1 天前
整体设计 逻辑系统程序 之29 拼语言+ CNN 框架核心定位、三阶段程序与三种交换模式配套的方案讨论 之2
人工智能·神经网络·cnn
java1234_小锋1 天前
TensorFlow2 Python深度学习 - 使用Dropout层解决过拟合问题
python·深度学习·tensorflow·tensorflow2
ReinaXue1 天前
大模型【进阶】(六)QWen2.5-VL视觉语言模型详细解读
图像处理·人工智能·神经网络·目标检测·计算机视觉·语言模型·transformer