《神经网络》—— 长短期记忆网络(Long Short-Term Memory,LSTM)

文章目录

  • 一、LSTM的简单介绍
  • [二、 LSTM的核心组件](#二、 LSTM的核心组件)
  • [三、 LSTM的优势](#三、 LSTM的优势)
  • [四、 应用场景](#四、 应用场景)

一、LSTM的简单介绍

  • 传统RNN循环神经网络的局限

    • 示例:当出现"我的职业是程序员 。。。。。。我最擅长的是电脑 "。当需要预测最后的词"电脑"。当前的信息建议下一个词可能是一种技能,但是如果我们需要弄清楚是什么技能,需要先前提到的离当前位置很远的"职业是程序员"的上下文。这说明相关信息和当前预测位置之间的间隔就变得相当的大。
    • 在理论上,RNN绝对可以处理这样的长期依赖问题。人们可以仔细挑选参数来解决这类问题中的最初级形式,但在实践中,RNN则没法太好的学习到这些知识
    • 原因是:梯度会随着时间的推移不断下降减少,而当梯度值变得非常小时,就不会继续学习。
  • 长短期记忆网络 (Long Short-Term Memory,LSTM )是一种特殊的循环神经网络(Recurrent Neural Network, RNN),主要设计用来解决传统RNN在处理长序列数据时存在的梯度消失梯度爆炸 问题。LSTM通过引入门(Gate)机制,使得网络能够记住长期依赖的信息,同时忽略不重要的信息。

  • 下面链接中是对RNN网络的介绍:

  • 以下为LSTM的内部结构图:

  • LSTM相当于在RNN的隐藏层的内部结构中进行了上图中进一步的改进,并循环的向后输出数据,如下图所示:

二、 LSTM的核心组件

LSTM的核心在于其细胞状态 (Cell State)和三个"门"机制:遗忘门 (Forget Gate)、输入门 (Input Gate)和输出门(Output Gate)。

  1. 细胞状态(Cell State)

    • 细胞状态是LSTM中的"记忆"线,它沿着整个链一直传递下去,只有一些少量的线性操作作用于其上,因此信息可以很容易地流过而不改变。
    • 如下图所示:
  2. 遗忘门(Forget Gate)

    • 遗忘门决定了上一细胞状态中的哪些信息需要被丢弃。它通过查看前一个隐藏状态 h t − 1 h_{t-1} ht−1 和当前输入 x t x_t xt,然后由sigmoid函数输出一个0到1之间的数 ,这个数表示细胞状态中信息的保留程度(1表示完全保留,0表示完全丢弃)。
    • 如下图为遗忘门结构和计算公式
  3. 输入门(Input Gate)

    • 输入门决定了当前输入 x t x_t xt 中哪些信息需要被加入到细胞状态中。它首先通过sigmoid层决定哪些值需要更新,然后tanh层创建一个新的候选值向量 C ~ t \tilde{C}_t C~t,这个向量可能会被加入到细胞状态中。
    • 如下图为输入门结构和计算公式
  4. 细胞状态更新

    • 旧的细胞状态 C t − 1 C_{t-1} Ct−1 通过遗忘门和输入门的作用,更新为新的细胞状态 C t C_t Ct。
    • 下图为更新结构图和计算公式
  5. 输出门(Output Gate)

    • 输出门决定了基于细胞状态的当前输出是什么。首先,一个sigmoid层决定细胞状态的哪些部分需要输出。然后,细胞状态通过tanh处理(将其值规范化到-1到1之间) ,再与sigmoid层的输出相乘,最终得到当前时间步的输出 h t h_t ht。
    • 下图为输出门的结构图和计算公式

三、 LSTM的优势

  • 长期依赖:LSTM能够捕获序列数据中的长期依赖关系,这是传统RNN难以做到的。
  • 梯度问题:通过引入门机制,LSTM有效地缓解了RNN在处理长序列时容易出现的梯度消失或梯度爆炸问题。

四、 应用场景

LSTM在多种序列预测任务中表现出色,包括但不限于:

  • 自然语言处理:如机器翻译、文本生成、情感分析等。
  • 时间序列预测:如股票价格预测、天气预测等。
  • 语音识别:将语音信号转换为文本。
  • 推荐系统:基于用户历史行为预测未来兴趣。
相关推荐
ss.li2 分钟前
TripGenie:畅游济南旅行规划助手:个人工作纪实(二十二)
javascript·人工智能·python
小天才才12 分钟前
前沿论文汇总(机器学习/深度学习/大模型/搜广推/自然语言处理)
人工智能·深度学习·机器学习·自然语言处理
l木本I16 分钟前
大模型低秩微调技术 LoRA 深度解析与实践
python·深度学习·自然语言处理·lstm·transformer
新加坡内哥谈技术42 分钟前
Meta计划借助AI实现广告创作全自动化
运维·人工智能·自动化
西猫雷婶1 小时前
pytorch基本运算-导数和f-string
人工智能·pytorch·python
Johny_Zhao1 小时前
华为MAAS、阿里云PAI、亚马逊AWS SageMaker、微软Azure ML各大模型深度分析对比
linux·人工智能·ai·信息安全·云计算·系统运维
顽强卖力1 小时前
第二十八课:深度学习及pytorch简介
人工智能·pytorch·深度学习
述雾学java1 小时前
深入理解 transforms.Normalize():PyTorch 图像预处理中的关键一步
人工智能·pytorch·python
武子康1 小时前
大数据-276 Spark MLib - 基础介绍 机器学习算法 Bagging和Boosting区别 GBDT梯度提升树
大数据·人工智能·算法·机器学习·语言模型·spark-ml·boosting
要努力啊啊啊1 小时前
使用 Python + SQLAlchemy 创建知识库数据库(SQLite)—— 构建本地知识库系统的基础《一》
数据库·人工智能·python·深度学习·自然语言处理·sqlite