长短期记忆网络(LSTM)

1. LSTM 简介

循环神经网络(RNN)在处理序列数据(如文本、时间序列、语音)时具有天然优势,但传统 RNN 存在 梯度消失和梯度爆炸 的问题,难以捕捉长距离依赖关系。

长短期记忆网络(Long Short-Term Memory,LSTM) 是一种特殊的 RNN 变体,由 Hochreiter 和 Schmidhuber 在 1997 年提出。它通过 门控机制(Gates) 控制信息的保留与遗忘,解决了 RNN 在长序列训练中的问题。

2. LSTM 的核心结构

LSTM 的基本单元包含三个门和一个单元状态(Cell State):

  • 遗忘门(Forget Gate):决定丢弃多少历史信息。

  • 输入门(Input Gate):决定当前输入信息保留多少。

  • 输出门(Output Gate):决定当前时刻的隐藏状态输出。

  • 单元状态(Cell State):类似"传送带",携带长期信息。

结构示意

可以把 LSTM 看作在传统 RNN 的基础上,多了一条 信息高速通道(Cell State),通过门控机制有选择地更新。

3. LSTM 数学公式

设输入为 ,上一时刻的隐藏状态为 ,上一时刻的单元状态为 ,则 LSTM 的计算公式如下:

(1)遗忘门(Forget Gate):

(2)输入门(Input Gate):

(3)候选单元状态(Cell Candidate):

(4)单元状态更新(Cell State):

(5)输出门(Output Gate):

(6)隐藏状态更新(Hidden State):

其中:

  • 表示 Sigmoid 激活函数;

  • 表示双曲正切激活函数;

  • 表示元素逐位相乘。

4. LSTM 的优点

  1. 解决长依赖问题:能够捕捉数百步的时间依赖关系。

  2. 避免梯度消失/爆炸:门控机制使得梯度能在长序列中稳定传播。

  3. 广泛应用:文本生成、机器翻译、语音识别、金融时间序列预测等。

5. LSTM 的缺点

  1. 结构复杂:相较于 RNN,参数更多,计算开销更大。

  2. 训练速度慢:长序列数据下,训练时间成本较高。

  3. 难以并行:依赖序列前后顺序,难以像 Transformer 那样并行化。

6. Python 实现示例(PyTorch)

python 复制代码
import torch
import torch.nn as nn

class LSTMModel(nn.Module):
    def __init__(self, input_size, hidden_size, output_size, num_layers=1):
        super(LSTMModel, self).__init__()
        self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True)
        self.fc = nn.Linear(hidden_size, output_size)

    def forward(self, x):
        # x shape: (batch_size, seq_len, input_size)
        out, (h_n, c_n) = self.lstm(x)  
        out = self.fc(out[:, -1, :])  # 取最后时间步的隐藏状态
        return out

# 示例
input_size = 10   # 每个时间步输入维度
hidden_size = 50  # 隐藏层维度
output_size = 1   # 输出维度
model = LSTMModel(input_size, hidden_size, output_size)

x = torch.randn(32, 5, 10)  # batch_size=32, seq_len=5, input_size=10
y = model(x)
print(y.shape)  # (32, 1)

7. 总结

  • RNN 善于处理短期依赖,但难以记忆长期信息。

  • LSTM 引入门控机制,通过遗忘门、输入门、输出门和单元状态,有效解决了梯度消失问题,能更好地建模长序列。

  • 但 LSTM 依然存在计算慢、难以并行的缺点,这也是后来 GRUTransformer 出现的原因。

相关推荐
时序之心7 小时前
时序论文速递:覆盖损失函数优化、模型架构创新、理论基础与表征学习、应用场景与隐私保护等方向(11.10-11.14)
人工智能·损失函数·时间序列·表征学习·时序论文
IT_陈寒7 小时前
Vue3性能优化实战:我从这5个技巧中获得了40%的渲染提升
前端·人工智能·后端
DevUI团队7 小时前
🔥Angular开发者看过来:不止于Vue,MateChat智能化UI库现已全面支持Angular!
前端·人工智能·angular.js
北京青翼科技7 小时前
【HD200IS A2 DK 】昇腾 310B 高可靠智能计算开发套件
图像处理·人工智能·信号处理·智能硬件
智算菩萨7 小时前
从 0 到 1 搭建 AI 智能体:从创建、知识库与提示词,到 MCP 接入和多智能体协作的全流程实践与评测
人工智能
onebound_noah7 小时前
电商图片搜索:技术破局与商业落地,重构“视觉到交易”全链路
大数据·前端·网络·人工智能·重构·php
得贤招聘官7 小时前
AI得贤面试智能体:重构企业招聘新范式
人工智能
SEO_juper7 小时前
谷歌搜索全面AI化:SGE如何重构我们的搜索体验与营销格局
人工智能·ai·重构·数字营销
好多渔鱼好多7 小时前
【音视频】AI自适应均衡器的调节精度提升方法
人工智能·音视频
昨日之日20067 小时前
InfiniteTalk V2版 - 声音驱动图片生成高度逼真的说话/唱歌视频 支持50系显卡 ComfyUI+WebUI 一键整合包下载
人工智能·深度学习·音视频