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

文章目录

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

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

一、LSTM的核心结构

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

1. 细胞状态(Cell State)

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

2. 三大门控机制

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

  • 遗忘门(Forget Gate)

    作用:决定从细胞状态中丢弃哪些信息(基于过去的记忆和当前输入)。

    输入:前一时刻的隐藏状态 h t − 1 h_{t-1} ht−1和当前输入 x t x_t xt。

    输出: f t = σ ( W f ⋅ [ h t − 1 , x t ] + b f ) f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) ft=σ(Wf⋅[ht−1,xt]+bf)( σ \sigma σ为sigmoid函数, W f W_f Wf、 b f b_f bf为参数)。

    示例:在句子"小明昨天去了公园,他今天____"中,遗忘门会保留"小明"的信息,丢弃"昨天"的时间细节。

  • 输入门(Input Gate)

    作用:决定哪些新信息被存入细胞状态(筛选当前输入的重要性)。

    包含两个子步骤:

    1. 输入筛选: i t = σ ( W i ⋅ [ h t − 1 , x t ] + b i ) i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) it=σ(Wi⋅[ht−1,xt]+bi)(决定更新哪些位置)。
    2. 候选信息生成: C ~ t = tanh ⁡ ( W C ⋅ [ h t − 1 , x t ] + b C ) \tilde{C}t = \tanh(W_C \cdot [h{t-1}, x_t] + b_C) C~t=tanh(WC⋅[ht−1,xt]+bC)(生成待存入的新信息,tanh输出范围为-1到1)。
      示例:在上述句子中,输入门会将"今天"作为新信息存入细胞状态。
  • 细胞状态更新

    结合遗忘门和输入门的结果,更新细胞状态:
    C t = f t ⊙ C t − 1 + i t ⊙ C ~ t C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t Ct=ft⊙Ct−1+it⊙C~t( ⊙ \odot ⊙为点积)。

    即:先"忘记"部分旧记忆( f t ⊙ C t − 1 f_t \odot C_{t-1} ft⊙Ct−1),再"加入"新记忆( i t ⊙ C ~ t i_t \odot \tilde{C}_t it⊙C~t)。

  • 输出门(Output Gate)

    作用:基于当前细胞状态,决定输出哪些信息作为下一时间步的隐藏状态 h t h_t ht。

    步骤:

    1. 输出筛选: o t = σ ( W o ⋅ [ h t − 1 , x t ] + b o ) o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) ot=σ(Wo⋅[ht−1,xt]+bo)(决定输出哪些信息)。
    2. 生成隐藏状态: h t = o t ⊙ tanh ⁡ ( C t ) h_t = o_t \odot \tanh(C_t) ht=ot⊙tanh(Ct)( tanh ⁡ \tanh tanh将细胞状态压缩到-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 = 1 t=1 t=1:输入"猫";
t = 2 t=2 t=2:输入"追";
t = 3 t=3 t=3:输入"老鼠";
t = 4 t=4 t=4:输入",";
t = 5 t=5 t=5:输入"它";
t = 6 t=6 t=6:输入"跑";
t = 7 t=7 t=7:输入"得";
t = 8 t=8 t=8:输入"很";
t = 9 t=9 t=9:输入"快"。

各时间步处理

  • t = 1 t=1 t=1(输入"猫")

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

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

    • 细胞状态更新为 C 3 = "猫+追+老鼠"的信息 C_3 = \text{"猫+追+老鼠"的信息} C3="猫+追+老鼠"的信息;
    • h 3 h_3 h3传递"猫追老鼠"的事件。
  • t = 5 t=5 t=5(输入"它")

    • 遗忘门:仍保留"猫"的核心信息( f 5 ≈ 1 f_5 \approx 1 f5≈1);
    • 输入门:"它"是代词,无需存入新实体( i 5 ≈ 0 i_5 \approx 0 i5≈0);
    • C 5 ≈ C 4 C_5 \approx C_4 C5≈C4(保留"猫追老鼠"的信息);
    • 输出门: h 5 h_5 h5基于 C 5 C_5 C5,理解"它"指代"猫"。
  • 最终结果

    LSTM通过细胞状态记住"猫"是主体,从而正确解析"它跑得很快"中的"它"指"猫",解决了长距离指代问题。

总结

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

相关推荐
2zcode1 小时前
基于Matlab图像处理的水果分级系统
图像处理·人工智能·matlab
wh_xia_jun1 小时前
基于深度学习的胸部 X 光图像肺炎分类系统(四)
人工智能·深度学习·分类
CarmenHu3 小时前
RNN学习笔记
笔记·rnn·学习
cwn_6 小时前
Sequential 损失函数 反向传播 优化器 模型的使用修改保存加载
人工智能·pytorch·python·深度学习·机器学习
老鱼说AI6 小时前
Transformer Masked loss原理精讲及其PyTorch逐行实现
人工智能·pytorch·python·深度学习·transformer
我是苏苏6 小时前
Pytorch01:深度学习中的专业名词及基本介绍
人工智能
空中湖6 小时前
PyTorch武侠演义 第一卷:初入江湖 第5章:玉如意的秘密
人工智能·pytorch·neo4j
lxmyzzs6 小时前
【已解决】YOLO11模型转wts时报错:PytorchStreamReader failed reading zip archive
人工智能·python·深度学习·神经网络·目标检测·计算机视觉·bug
Blossom.1187 小时前
基于深度学习的图像分类:使用预训练模型进行迁移学习
人工智能·深度学习·目标检测·分类·音视频·语音识别·迁移学习
kupeThinkPoem8 小时前
OpenAI最新大模型GPT-4o体验之Code Copilot AI编程大模型
人工智能·ai编程