长短期记忆网络(LSTM)

长短期记忆网络(LSTM)基本原理详解

一、LSTM核心思想

目标 :解决传统RNN的梯度消失/爆炸问题,显式建模长期依赖关系
核心创新 :引入细胞状态(Cell State)门控机制 ,通过三个门结构精确控制信息流动


二、网络结构分解

1. 核心组件(四个关键部分)

组件 符号 功能描述
遗忘门 f t f_t ft 决定从细胞状态中丢弃哪些信息
输入门 i t i_t it 确定新信息存入细胞状态的比例
候选值 C ~ t \tilde{C}_t C~t 生成待存入细胞状态的新候选值
输出门 o t o_t ot 控制细胞状态到隐藏状态的输出比例

2. 数学公式推导

遗忘门(Forget Gate)

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函数(输出0-1间的遗忘比例)
输入门(Input Gate)

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)

候选细胞状态

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)

细胞状态更新

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 ⊙: Hadamard积(逐元素相乘)
输出门(Output Gate)

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)

隐藏状态计算

h t = o t ⊙ tanh ⁡ ( C t ) h_t = o_t \odot \tanh(C_t) ht=ot⊙tanh(Ct)


三、PyTorch实现

1. LSTM单元实现

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

class LSTMCell(nn.Module):
    def __init__(self, input_size, hidden_size):
        super().__init__()
        self.hidden_size = hidden_size
        
        # 合并计算四个门的参数矩阵
        self.W = nn.Linear(input_size + hidden_size, 4*hidden_size)
        
    def forward(self, x, state):
        # state = (h, c)
        h_prev, c_prev = state
        
        # 合并输入与隐藏状态
        combined = torch.cat((x, h_prev), dim=1)
        gates = self.W(combined)
        
        # 分割四个门计算结果
        f, i, o, g = torch.split(gates, self.hidden_size, dim=1)
        
        # 激活函数应用
        f = torch.sigmoid(f)  # 遗忘门
        i = torch.sigmoid(i)  # 输入门
        o = torch.sigmoid(o)  # 输出门
        g = torch.tanh(g)     # 候选值
        
        # 更新细胞状态
        c = f * c_prev + i * g
        # 更新隐藏状态
        h = o * torch.tanh(c)
        
        return (h, c)
相关推荐
板面华仔2 小时前
机器学习入门(三)——决策树(Decision Tree)
人工智能·决策树·机器学习
GAOJ_K2 小时前
滚珠花键的无预压、间隙调整与过盈配合“场景适配型”
人工智能·科技·机器人·自动化·制造
ai_xiaogui2 小时前
【开源探索】Panelai:重新定义AI服务器管理面板,助力团队私有化算力部署与模型运维
人工智能·开源·私有化部署·docker容器化·panelai·ai服务器管理面板·comfyui集群管理
源于花海2 小时前
迁移学习的前沿知识(AI与人类经验结合、传递式、终身、在线、强化、可解释性等)
人工智能·机器学习·迁移学习·迁移学习前沿
king of code porter3 小时前
百宝箱企业版搭建智能体应用-平台概述
人工智能·大模型·智能体
愚公搬代码3 小时前
【愚公系列】《AI短视频创作一本通》004-AI短视频的准备工作(创作AI短视频的基本流程)
人工智能·音视频
物联网软硬件开发-轨物科技3 小时前
【轨物洞见】告别“被动维修”!预测性运维如何重塑老旧电站的资产价值?
运维·人工智能
电商API_180079052473 小时前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫
梁辰兴3 小时前
百亿美元赌注变数,AI军备竞赛迎来转折点?
人工智能·ai·大模型·openai·英伟达·梁辰兴·ai军备竞赛
PaperRed ai写作降重助手3 小时前
智能写作ai论文生成软件推荐
人工智能·aigc·ai写作·智能降重·paperred