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

LSTM 算法的完整计算过程

LSTM 算法的完整计算过程

摘要

本文围绕长短期记忆网络 LSTM(Long Short-Term Memory)的基本计算过程,设计了一个可在 Excel 中直接展示的数值化示例。示例设置输入维度为 2,隐藏单元数为 2,序列长度为 3,通过 Excel 公式逐步计算拼接向量、遗忘门、输入门、候选记忆、输出门、细胞状态、隐藏状态、最终输出、损失函数以及一次参数更新。与单纯给出公式不同,Excel 文件把每一个中间变量都拆分到单元格中,便于观察参数变化后整个网络计算结果的联动更新。

一、作业目标与文件结构

本作业的目标不是训练一个复杂模型,而是把 LSTM 的核心计算过程拆解成可以看得见、能修改、可验证的 Excel 表格。这样既能体现 LSTM 的数学原理,也能说明神经网络中“前向传播—损失计算—反向传播—参数更新”的基本链路。

工作表名称

主要内容

作用

00_说明

作业说明、工作表导航、提交提示

让阅卷者快速理解文件用途

01_参数输入

输入序列、初始状态、四个门的权重与偏置、输出层参数

集中管理可修改参数

02_前向t1 / 03_前向t2 / 04_前向t3

逐时间步计算 z_t、f_t、i_t、g_t、o_t、c_t、h_t

展示 LSTM 的递推过程

05_损失与反向

输出层、损失函数、关键梯度与一次参数更新

展示训练计算思路

06_汇总图表

汇总 c_t、h_t 结果并绘制隐藏状态变化图

便于截图放入博客

07_公式速查

集中列出 LSTM 公式与 Excel 写法

便于学习和复查

二、LSTM 的核心思想

普通 RNN 在处理较长序列时,容易出现长期信息难以保留、梯度逐步衰减或爆炸的问题。LSTM 在循环结构中引入了细胞状态 c_t,并通过门控机制控制信息的保留、写入和输出。其中,遗忘门决定旧信息保留多少,输入门决定新信息写入多少,候选记忆提供新的内容,输出门决定当前时刻向外输出多少隐藏状态。

在本作业中,LSTM 的每一步并不是抽象展示,而是把矩阵乘法、激活函数和状态更新全部写成 Excel 公式。因此,只要修改输入序列或参数,后续各时间步的隐藏状态和损失都会自动变化。

三、LSTM 前向传播公式

本例将上一时刻隐藏状态 h_{t-1} 与当前输入 x_t 拼接为向量 z_t,然后分别计算四个门:

z_t = [h_{t-1}, x_t]

f_t = σ(W_f z_t + b_f)

i_t = σ(W_i z_t + b_i)

g_t = tanh(W_c z_t + b_c)

o_t = σ(W_o z_t + b_o)

c_t = f_t ⊙ c_{t-1} + i_t ⊙ g_t

h_t = o_t ⊙ tanh(c_t)

其中 σ 表示 sigmoid 函数,tanh 表示双曲正切函数,⊙ 表示按元素相乘。在 Excel 中,sigmoid 可以写为 1/(1+EXP(-a)),tanh 可以直接使用 TANH(a)。

四、示例参数设置

为了让计算过程既完整又便于人工检查,Excel 文件采用一个小规模 LSTM 示例:输入维度为 2,隐藏单元数为 2,时间步数量为 3,目标标签 y=1,学习率为 0.1。

时间步

x1

x2

说明

1

1.0

0.5

第1个输入向量

2

0.2

-0.3

第2个输入向量

3

0.8

0.1

第3个输入向量

五、Excel 中的具体计算过程

1. 参数输入与初始化

在“01_参数输入”工作表中,先输入三组二维输入向量 x_t,再设置初始隐藏状态 h0=[0,0] 与初始细胞状态 c0=[0,0]。随后分别设置遗忘门、输入门、候选记忆、输出门的权重矩阵和偏置。

2. 前向传播递推

以 t=1 为例,Excel 会先构造 z_1=[h0,x1],然后使用 SUMPRODUCT 计算 W_f z_1+b_f、W_i z_1+b_i、W_c z_1+b_c、W_o z_1+b_o,再通过 sigmoid 或 tanh 得到四个门的值。接着使用 c_1=f_1*c_0+i_1*g_1 得到细胞状态,再用 h_1=o_1*TANH(c_1) 得到隐藏状态。

t=2 和 t=3 的计算方式相同,只是它们不再使用初始状态,而是引用上一时间步的 h 和 c。因此,Excel 表格能够清楚体现 LSTM 的序列递推特征。

六、输出层、损失与反向传播示例

当前向传播完成后,最后一个时间步的隐藏状态 h3 被送入输出层。本例采用一个简单的二分类输出形式:

a_y = W_y h_3 + b_y

ŷ = σ(a_y)

L = 1/2(ŷ - y)^2

θ_new = θ - lr · ∂L/∂θ

根据 Excel 计算结果,本例最终预测值约为 0.526593,目标值为 1,损失约为 0.112057。随后,Excel 继续展示输出层梯度 dL/dŷ、dŷ/da_y、dL/da_y,以及 W_y 和 b_y 的一次梯度下降更新。

项目

结果

说明

h3_unit1

0.124301

最终隐藏状态第1维

h3_unit2

0.134232

最终隐藏状态第2维

预测值 ŷ

0.526593

由 sigmoid(W_y h3+b_y) 得到

损失 L

0.112057

采用 1/2(ŷ-y)^2

更新后 W_y1

0.701467

W_y1_new=W_y1-lr*dW_y1

更新后 W_y2

-0.598416

W_y2_new=W_y2-lr*dW_y2

为了保持表格可读性,Excel 中的反向传播重点展示了最后一个时间步 t=3 的门控梯度,包括 dL/da_o3、dL/da_f3、dL/da_i3、dL/da_g3,并根据 dW=da⊗z3 给出各门权重的梯度。完整的 BPTT 会继续把梯度沿时间方向从 t=3 反传到 t=2、t=1,并对相同参数的梯度进行累加。

七、结果分析与学习体会

通过这个 Excel 示例可以看到,LSTM 的计算并不是单个公式完成的,而是由多个门控结构共同完成的序列递推。遗忘门控制旧记忆的保留比例,输入门和候选记忆共同决定新信息写入量,输出门决定当前隐藏状态的输出强度。细胞状态 c_t 使模型能够保留相对长期的信息,而隐藏状态 h_t 则作为当前时间步对外输出的表示。

使用 Excel 展示 LSTM 的好处在于:第一,每个中间变量都可以被直接观察;第二,矩阵乘法和激活函数可以通过单元格公式拆开理解;第三,修改参数或输入后,前向传播、损失和梯度结果会自动联动变化。这种方式适合用于课程作业中的算法计算过程展示。

http://www.jsqmd.com/news/886710/

相关文章:

  • MySQL GROUP BY 原理与优化
  • 基于双T振荡器的正弦波LED调光电路设计与实践
  • Linux系统Vim编辑器
  • 你的企业还在用“人海战术”处理发票和报表?2026智能体进化论
  • 别再死磕理论了!用Python手搓一个蒙特卡洛强化学习小游戏(附完整代码)
  • pan-baidu-download:百度网盘多线程下载加速器架构解析与性能优化指南
  • 【绝密PEST压力测试报告】:Claude 3.5在金融/医疗/政务三大敏感领域的17项穿透式评估结果(仅剩最后87份)
  • 边缘AI落地总失败?DeepSeek架构的4层容错机制,92%故障在毫秒级自愈
  • DeepSeek多卡训练通信开销超62%?紧急发布:NCCL拓扑感知AllReduce重排+梯度压缩阈值动态调优指南
  • Neon Glowing效果失效全解析,深度解读--v 6.2下--style raw与--no ambient_light的冲突机制及绕过方案
  • 面试必问:Temperature=0为何仍不确定?真相揭秘
  • 博弈论导向的车辆队列运动协同分层控制算法【附算法】
  • 幽灵请求与内存泄漏:一次全栈高并发下的性能惊魂复盘
  • 【2026收藏版】小白程序员必学的20个核心AI大模型基础概念(通俗易懂无废话)
  • Hugging Face 中tokenizer.json 和vocab.json 有区别?
  • 冰雪重制版手游官网下载:冰雪重制版最新官方下载渠道
  • 如何为Nintendo Switch安装游戏?Awoo Installer的3种安装方式全解析
  • 【Lovable电商网站搭建黄金标准】:基于137个真实项目数据验证的6项LCP/CLS/INP硬性阈值
  • 2026年数字化转型真相:为何空有大模型却带不动老系统?
  • 三维视图查看器项目(QT/C++)
  • Python中构造函数init与类的实例化
  • 收藏2026版|后端行业遇冷已成定局?程序员该扎根Java还是全力冲刺大模型
  • vectorizer图像矢量化工具:3步实现PNG/JPG到SVG的智能转换
  • 为什么你的粒子效果永远“糊”?Midjourney底层采样器对粒子密度的隐式限制(附GPU显存占用热力图)
  • 用Python+OpenCV+MediaPipe做个手势识别小游戏:从摄像头捕捉到虚拟控制
  • 高性能B站m4s格式转换:跨平台兼容的零质量损失技术方案
  • Java反射:从运行时窥探到动态代理的工程实践
  • 从零开始在个人项目中接入Taotoken API的完整记录
  • 2026年义乌餐饮收银服务商专业评估与场景化选型指南 - 万事通达
  • 孤舟笔记 互联网常用框架篇二 Dubbo服务请求失败怎么处理?集群容错策略你用过几种