当前位置: 首页 > news >正文

LSTM长短期记忆网络-原理分析

1 简介

  • 概念

    LSTM(Long Short-Term Memory)也称为长短期记忆网络,是一种改进的循环神经网络(RNN),专门设计用于解决传统RNN的梯度消失问题长程依赖问题。LSTM通过引入门机制细胞状态,能够更好地捕捉长序列数据中的长期依赖关系。

  • 核心思想

    通过引入门机制(输入门、遗忘门、输出门)和细胞状态(Cell State)来控制信息的流动,从而决定哪些信息需要保留、哪些信息需要丢弃。

  • 内部结构

    遗忘门:决定了哪些信息应该被丢弃(即遗忘)。它读取当前输入和前一时刻的隐藏状态,然后输出一个0到1之间的数值,表示当前时刻的信息应当保留或丢弃的比例。

    输入门:决定了哪些信息需要被存储到当前的单元状态中。通过这个门来更新单元状态的记忆。

    细胞状态:可以将其视为一条贯穿整个网络的"传送带",携带长期记忆;信息通过细胞状态传递,并由各个门控机制选择性地修改。

    输出门:控制从单元状态到隐藏状态的信息流出,决定当前的隐藏状态输出多少细胞状态的内容。

2. LSTM的内部结构图

2.1 整体内部结构

2.2 遗忘门结构图

2.3 输入门结构图

2.4 细胞状态更新图

细胞更新的结构与计算公式非常容易理解,这里没有全连接层,只是将刚刚得到的遗忘门门值与上一个时间步得到的Ct−1相乘,再加上输入门门值与当前时间步得到的未更新Ct相乘的结果。最终得到更新后的Ct作为下一个时间步输入的一部分。整个细胞状态更新过程就是对遗忘门和输入门的应用。

注意:由于当前记忆状态和上一次的记忆状态不是相乘而是相加,则解决了RNN中容易梯度保证的问题。

2.4 输出门结构图

3. 优缺点总结:

  • LSTM的优点

    • 能够捕捉长期依赖:通过门控机制,LSTM能够记住长期的依赖关系,解决了传统RNN无法记住长期信息的问题。
    • 避免梯度消失
      • 细胞状态 Ct 的更新公式中,Ct−1 和 Ct 之间是线性关系(通过遗忘门 ft 控制)
      • LSTM的梯度主要通过细胞状态 Ct 传播,而细胞状态的更新是线性的,梯度路径更加稳定
      • 线性关系避免了梯度在时间步之间的连乘,从而缓解了梯度消失问题
    • 灵活的记忆控制:LSTM通过遗忘门和输入门灵活地控制信息的传递,使得模型能够记住有用的信息,并丢弃不必要的信息。
  • LSTM的缺点

    • 计算开销较大,由于包含多个门的计算,训练和推理时需要更多的计算资源
    • 相对于简单的RNN和GRU(门控递归单元),LSTM较为复杂,调参时需要更多的时间和精力
http://www.lryc.cn/news/544016.html

相关文章:

  • sql server笔记
  • AI Video Composer:基于Qwen2.5-Coder的简易开源视频创作利器
  • AI数字人开发,引领科技新潮流
  • VoIP之音频3A技术
  • [原创]openwebui解决searxng通过接口请求不成功问题
  • Jmeter聚合报告导出log文档,Jmeter聚合报告导出到CSV
  • mysqldump 参数详解
  • DeepSeek R1 简易指南:架构、本地部署和硬件要求
  • 基于 ‌MySQL 数据库‌对三级视图(用户视图、DBA视图、内部视图)的详细解释
  • [Web 信息收集] Web 信息收集 — 手动收集 IP 信息
  • 跨AWS账户共享SQS队列以实现消息传递
  • DeepSeek 202502 开源周合集
  • springai系列(二)从0开始搭建和接入azure-openai实现智能问答
  • Apache部署Vue操作手册(SSL部分)
  • 人类驾驶的人脑两种判断模式(反射和预判)-->自动驾驶两种AI模式
  • Docker和K8S中pod、services、container的介绍和关系
  • 【uniapp】在UniApp中实现持久化存储:安卓--生成写入数据为jsontxt
  • DeepSeek-R1本地部署保姆级教程
  • Python常见面试题的详解25
  • DeepSeek赋能大模型内容安全,网易易盾AIGC内容风控解决方案三大升级
  • 阿里开源正式开园文生视频、图生视频模型-通义万相 WanX2.1
  • 【Python爬虫(73)】用Python爬虫开启交通数据宝藏,畅行出行未来
  • 和鲸科技携手四川气象,以 AI 的力量赋能四川气象一体化平台建设
  • spring boot 2.7 + seata +微服务 降级失败问题修复
  • python-leetcode-最长公共子序列
  • centos 7 停更后如何升级kernel版本 —— 筑梦
  • WPF-3天快速WPF入门并达到企业级水准
  • 爬虫反爬:CSS位置偏移反爬案例分析与实战案例
  • Ubuntu20.04安装Redis
  • Ubuntu 22.04 安装Nvidia驱动加速deepseek