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. 将模型中的数据维度转化成输出数据需要的维度。
相关推荐
数据分析能量站2 小时前
神经网络-ResNet
人工智能·深度学习·神经网络
数据分析能量站2 小时前
神经网络-DenseNet
人工智能·深度学习·神经网络
martian6658 小时前
【人工智能离散数学基础】——深入详解图论:基础图结构及算法,应用于图神经网络等
人工智能·神经网络·算法·图论
神经美学_茂森11 小时前
【自由能系列(初级),论文解读】神经网络中,熵代表系统的不确定性,自由能则引导系统向更低能量的状态演化,而动力学则描述了系统状态随时间的变化。
人工智能·神经网络·php
Ai多利12 小时前
Nature+Science=ONNs(光学神经网络)
神经网络·nature·光学神经网络·onns·science
deflag12 小时前
第T4周:TensorFlow实现猴痘识别(Tensorboard的使用)
人工智能·tensorflow·neo4j
四口鲸鱼爱吃盐12 小时前
Pytorch | 利用GNP针对CIFAR10上的ResNet分类器进行对抗攻击
人工智能·pytorch·python·深度学习·神经网络·计算机视觉
可喜~可乐13 小时前
循环神经网络(RNN)入门指南:从原理到实践
人工智能·rnn·深度学习·神经网络·机器学习·lstm
少说多想勤做15 小时前
【前沿 热点 顶会】AAAI 2025中与目标检测有关的论文
人工智能·深度学习·神经网络·目标检测·计算机视觉·目标跟踪·aaai
橙子小哥的代码世界17 小时前
【计算机视觉基础CV-图像分类】05 - 深入解析ResNet与GoogLeNet:从基础理论到实际应用
图像处理·人工智能·深度学习·神经网络·计算机视觉·分类·卷积神经网络