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

【人工智能99问】长短期记忆网络(LSTM)的结构和原理是什么?(12/99)

文章目录

  • 长短期记忆网络(LSTM)的结构与原理
    • 一、LSTM的核心结构
      • 1. 细胞状态(Cell State)
      • 2. 三大门控机制
    • 二、LSTM的工作原理
    • 三、LSTM的使用场景
    • 四、LSTM的特点
    • 五、相关知识
    • 六、实例:用LSTM处理文本序列
      • 序列拆解
      • 各时间步处理
    • 总结

长短期记忆网络(LSTM)的结构与原理

长短期记忆网络(Long Short-Term Memory,LSTM)是循环神经网络(RNN)的一种变体,由Hochreiter和Schmidhuber于1997年提出,专门用于解决传统RNN在处理长序列时的梯度消失或爆炸问题,能够有效捕捉序列数据中的长距离依赖关系。以下从结构、原理、使用场景、特点等方面详细介绍LSTM,并结合实例说明其工作机制。

一、LSTM的核心结构

LSTM的核心是细胞状态(Cell State),类似于一条“信息传送带”,允许信息在序列中稳定流动;同时通过三个门控机制(遗忘门、输入门、输出门)对细胞状态进行精准控制,决定信息的保留、更新和输出。

1. 细胞状态(Cell State)

细胞状态是LSTM的“记忆中枢”,用CtC_tCt表示(ttt为当前时间步)。它类似于一条贯穿整个序列的通道,信息在其中流动时仅会被少量线性交互修改,从而避免了传统RNN中信息在长序列中快速衰减的问题。

2. 三大门控机制

门控机制由sigmoid激活函数点积操作组成:sigmoid输出0-1之间的值(1表示“完全保留”,0表示“完全丢弃”),点积则用于过滤信息。

  • 遗忘门(Forget Gate)
    作用:决定从细胞状态中丢弃哪些信息(基于过去的记忆和当前输入)。
    输入:前一时刻的隐藏状态ht−1h_{t-1}ht1和当前输入xtx_txt
    输出:ft=σ(Wf⋅[ht−1,xt]+bf)f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f)ft=σ(Wf[ht1,xt]+bf)σ\sigmaσ为sigmoid函数,WfW_fWfbfb_fbf为参数)。
    示例:在句子“小明昨天去了公园,他今天____”中,遗忘门会保留“小明”的信息,丢弃“昨天”的时间细节。

  • 输入门(Input Gate)
    作用:决定哪些新信息被存入细胞状态(筛选当前输入的重要性)。
    包含两个子步骤:

    1. 输入筛选:it=σ(Wi⋅[ht−1,xt]+bi)i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i)it=σ(Wi[ht1,xt]+bi)(决定更新哪些位置)。
    2. 候选信息生成:C~t=tanh⁡(WC⋅[ht−1,xt]+bC)\tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C)C~t=tanh(WC[ht1,xt]+bC)(生成待存入的新信息,tanh输出范围为-1到1)。
      示例:在上述句子中,输入门会将“今天”作为新信息存入细胞状态。
  • 细胞状态更新
    结合遗忘门和输入门的结果,更新细胞状态:
    Ct=ft⊙Ct−1+it⊙C~tC_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_tCt=ftCt1+itC~t⊙\odot为点积)。
    即:先“忘记”部分旧记忆(ft⊙Ct−1f_t \odot C_{t-1}ftCt1),再“加入”新记忆(it⊙C~ti_t \odot \tilde{C}_titC~t)。

  • 输出门(Output Gate)
    作用:基于当前细胞状态,决定输出哪些信息作为下一时间步的隐藏状态hth_tht
    步骤:

    1. 输出筛选:ot=σ(Wo⋅[ht−1,xt]+bo)o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o)ot=σ(Wo[ht1,xt]+bo)(决定输出哪些信息)。
    2. 生成隐藏状态:ht=ot⊙tanh⁡(Ct)h_t = o_t \odot \tanh(C_t)ht=ottanh(Ct)tanh⁡\tanhtanh将细胞状态压缩到-1到1,再通过输出门筛选)。
      示例:在句子中,输出门可能输出“小明今天去了____”中的“小明今天”作为下一时间步的输入。

二、LSTM的工作原理

LSTM通过“门控-记忆”机制处理序列数据,每个时间步的操作可总结为:

  1. 遗忘:遗忘门筛选细胞状态中无关的旧信息;
  2. 输入:输入门生成并筛选新信息,更新细胞状态;
  3. 输出:输出门基于更新后的细胞状态,生成当前隐藏状态,传递给下一时间步。

通过这种机制,LSTM能够在长序列中“记住”重要信息(如句子中的主语),“忘记”次要信息(如无关的修饰词),从而捕捉长距离依赖。

三、LSTM的使用场景

LSTM因擅长处理序列数据的长距离依赖,被广泛应用于以下领域:

  • 自然语言处理(NLP)

    • 文本生成:生成诗歌、小说等(需记住前文逻辑);
    • 机器翻译:如将“我明天去北京”译为英文,需保留“明天”与“去”的时间关系;
    • 情感分析:分析句子“虽然开头无聊,但结局很棒”的整体情感(依赖前后转折)。
  • 时间序列预测

    • 股票价格预测:需结合过去数周的价格趋势;
    • 天气预测:基于连续多天的温度、湿度数据预测未来天气。
  • 语音识别
    将语音信号(时序数据)转换为文本,需关联前后发音(如“sh”和“i”组合为“shi”)。

  • 视频分析
    识别视频中动作的连贯性(如“开门-走进来”的动作序列)。

四、LSTM的特点

优点缺点
有效缓解梯度消失/爆炸,能捕捉长距离依赖结构复杂,计算成本高于传统RNN
记忆能力可通过门控灵活调节,适应不同序列长度训练过程较慢,需更多数据和算力
对噪声序列的鲁棒性较强可能存在过拟合,需正则化(如dropout)

五、相关知识

  1. GRU(门控循环单元)
    LSTM的简化版本,将遗忘门和输入门合并为“更新门”,去掉细胞状态,仅保留隐藏状态,计算效率更高,在许多场景下性能接近LSTM。

  2. 双向LSTM
    同时使用两个LSTM:一个按序列正序处理(过去→现在),一个按逆序处理(未来→现在),能同时捕捉上下文信息(如句子“他批评了她,因为____”需结合后文原因)。

  3. 与注意力机制结合
    在长序列中,LSTM可能对早期信息的记忆衰减,注意力机制可让模型“聚焦”于关键时间步(如机器翻译中,让目标词更关注源句中的对应词)。

六、实例:用LSTM处理文本序列

以中文句子“猫追老鼠,它跑得很快”为例,展示LSTM如何处理序列中的指代关系(“它”指“猫”)。

序列拆解

时间步t=1t=1t=1:输入“猫”;
t=2t=2t=2:输入“追”;
t=3t=3t=3:输入“老鼠”;
t=4t=4t=4:输入“,”;
t=5t=5t=5:输入“它”;
t=6t=6t=6:输入“跑”;
t=7t=7t=7:输入“得”;
t=8t=8t=8:输入“很”;
t=9t=9t=9:输入“快”。

各时间步处理

  • t=1t=1t=1(输入“猫”)

    • 遗忘门:初始细胞状态C0C_0C0为空,f1≈0f_1 \approx 0f10(无旧信息可忘);
    • 输入门:i1≈1i_1 \approx 1i11(“猫”是核心主语,需存入),候选值C~1\tilde{C}_1C~1编码“猫”的信息;
    • 细胞状态C1=0⋅C0+1⋅C~1=“猫”的信息C_1 = 0 \cdot C_0 + 1 \cdot \tilde{C}_1 = \text{“猫”的信息}C1=0C0+1C~1=的信息
    • 输出门o1≈1o_1 \approx 1o11,隐藏状态h1=1⋅tanh⁡(C1)=“猫”的信息h_1 = 1 \cdot \tanh(C_1) = \text{“猫”的信息}h1=1tanh(C1)=的信息
  • t=2t=2t=2(输入“追”)

    • 遗忘门:保留“猫”的信息(f2≈1f_2 \approx 1f21);
    • 输入门:存入“追”的动作(i2≈1i_2 \approx 1i21);
    • C2=1⋅C1+1⋅C~2=“猫+追”的信息C_2 = 1 \cdot C_1 + 1 \cdot \tilde{C}_2 = \text{“猫+追”的信息}C2=1C1+1C~2=+的信息
    • h2h_2h2传递“猫追”的信息。
  • t=3t=3t=3(输入“老鼠”)

    • 细胞状态更新为C3=“猫+追+老鼠”的信息C_3 = \text{“猫+追+老鼠”的信息}C3=++老鼠的信息
    • h3h_3h3传递“猫追老鼠”的事件。
  • t=5t=5t=5(输入“它”)

    • 遗忘门:仍保留“猫”的核心信息(f5≈1f_5 \approx 1f51);
    • 输入门:“它”是代词,无需存入新实体(i5≈0i_5 \approx 0i50);
    • C5≈C4C_5 \approx C_4C5C4(保留“猫追老鼠”的信息);
    • 输出门:h5h_5h5基于C5C_5C5,理解“它”指代“猫”。
  • 最终结果
    LSTM通过细胞状态记住“猫”是主体,从而正确解析“它跑得很快”中的“它”指“猫”,解决了长距离指代问题。

总结

LSTM通过细胞状态和门控机制,突破了传统RNN的局限,成为处理序列数据的核心模型之一。尽管结构复杂,但其对长距离依赖的捕捉能力使其在NLP、时间序列等领域不可或缺,至今仍是许多实际应用的基础模型。

http://www.dtcms.com/a/289198.html

相关文章:

  • ROS_INFO_STREAM, 模拟cout流输出机制的ROS输出接口
  • 《棒球知识科普》NBA、MLB选秀状元·棒球1号位
  • Everything介绍
  • 《杜甫传》读书笔记与经典摘要(一)
  • 事务的传播行为,分别在spring和mysql中讲解
  • PyTorch模型Ensemble实现
  • 14.多播与广播
  • Vue3.6 无虚拟DOM模式
  • 基于本机如何建立一个vue项目
  • Linux主机 ->多机器登录
  • Openlayers 面试题及答案180道(121-140)
  • Chapter 3 Design of Switching Power Regulators
  • 两个数据表的故事:第 1 部分
  • MacBook的ARM架构(M芯片)操作虚拟机的docker拉取镜像问题
  • 深入浅出理解动态规划
  • 【Lua】大G表
  • C++STL之stack和queue
  • C++string类简介
  • MySQL 配置性能优化实操指南:分版本5.7和8.0适配方案
  • 解锁Phpenv:轻松搭建PHP集成环境指南
  • C++运算符重载
  • 【智能协同云图库】第一期:用户管理接口设计与功能实现
  • 08_Opencv_基本图形绘制
  • Java SpringBoot 对接FreeSwitch
  • 【图像处理基石】什么是畸变校正?
  • AG32:解锁MCU+FPGA应用新姿势,功能与实战全解析
  • JavaScript 语言基础详解
  • 金融大前端中的 AI 应用:智能投资顾问与风险评估
  • SSE和WebSocket区别到底是什么
  • FAN-UNET:用于生物医学图像分割增强模型