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

深入理解 LSTM:从数学公式到 Excel 手工推导全揭秘

在深度学习领域LSTMLong Short-Term Memory因其在处理时间序列数据上的卓越表现而闻名。然而许多初学者在面对其复杂的门控机制遗忘门、输入门、输出门和反向传播BPTT时往往会感到一头雾水。为了彻底搞懂 LSTM 的内部运行机制我决定放弃调用现成的 PyTorch/TensorFlow 库而是使用 Excel 进行了一次纯手工的 LSTM 前向与反向传播推导。本文将结合我的推导过程详细梳理 LSTM 的计算流。一、 网络规模与初始设定为了方便手工计算我们构建了一个极简的单步 LSTM 网络输入维度 d 2当前时刻输入 $x_1 [0.5, 0.8]$隐藏层维度 h 3上一时刻隐藏状态 $h_0 [0.1, 0.2, 0.3]$初始 Cell 状态$C_0 [0.0, 0.0, 0.0]$为了计算我们将 $h_0$ 和 $x_1$ 拼接形成一个 5 维向量 $[h_0, x_1] [0.1, 0.2, 0.3, 0.5, 0.8]$。二、 前向传播 (Forward Pass)信息的过滤与沉淀LSTM 的核心在于四个权重矩阵$wf$遗忘门、$wi$输入门、$wu$候选值、$wo$输出门。它们的作用相当于四个守门员。计算原始值 (net)通过矩阵乘法计算拼接向量与四个权重矩阵的点积。例如遗忘门的原始值 $net\_f wf \cdot [h_0, x_1]^T$。激活函数转换 (门控信号)使用Sigmoid 函数$\sigma(x) \frac{1}{1 e^{-x}}$ 处理 $net\_f, net\_i, net\_o$将其压缩到 $0 \sim 1$ 之间代表“保留比例”。使用Tanh 函数处理 $net\_u$将其压缩到 $-1 \sim 1$ 之间代表“待写入的新内容”。更新细胞状态 (长期记忆 $C_1$)$$C_1 f_1 \odot C_0 i_1 \odot u_1$$这一步是 LSTM 的灵魂旧记忆 $C_0$ 经过遗忘门过滤加上由输入门控制的新知识 $u_1$形成当前时刻的新记忆。计算隐藏状态 (短期记忆 $h_1$)$$h_1 o_1 \odot \tanh(C_1)$$将长期记忆用 Tanh 激活后经过输出门的过滤得到对外输出的隐藏状态。三、 反向传播 (Backward Pass)顺藤摸瓜的误差传递反向传播的核心是链式法则。假设我们的目标真实值 $y [20, 20, 20]^T$损失函数采用均方误差 $L \sum (h_1 - y)^2$。计算初始梯度$\frac{\partial L}{\partial h_1} 2(h_1 - y)$。对输出门求导由于 $h_1 o_1 \odot \tanh(C_1)$我们可以求出 $\frac{\partial L}{\partial o_1}$进而利用外积求得权重矩阵 $wo$ 的梯度。核心通路 Cell 状态的求导$C_1$ 承载了长期记忆它的梯度 $\frac{\partial L}{\partial C_1}$ 会继续向下游的 $i_1, u_1, f_1$ 传递。求各权重矩阵的梯度结合 Sigmoid 和 Tanh 的导数公式如 $\sigma(x) \sigma(x)(1-\sigma(x))$依次求出 $\frac{\partial L}{\partial wu}, \frac{\partial L}{\partial wi}, \frac{\partial L}{\partial wf}$。(注因为初始化 $C_0 0$没有任何旧记忆可以遗忘因此本次运算中遗忘门对 Loss 的贡献为 0即 $wf$ 的梯度全为 0。这也验证了数学逻辑的严密性)四、 总结通过在 Excel 中敲下每一个MMULT矩阵乘法和微分公式深度学习不再是一个玄学黑盒。我们可以清晰地看到数据是如何在矩阵乘法和非线性激活函数中流转的误差是如何一步步反向分配给每一个权重参数的。这种最原始的“手工推演”是掌握复杂算法最坚实的基石。
http://www.zskr.cn/news/1373445.html

相关文章:

  • AgentScope Java 入门:Tool 工具系统——让 Agent 真正“动手做事“
  • 安全测试新手避坑指南:Windows下用X-ray进行被动扫描时,为什么我扫不到漏洞?
  • 逆向分析第一步:手把手教你搭建WinDbg+VMware双机调试环境(含问题排查)
  • 告别传统MMSE:用Python快速上手基于深度学习的5G信道估计(附VehA/SUI5信道对比)
  • Capsule技术:游戏引擎与数据中心资源隔离的创新方案
  • Cortex-M处理器RXEV输入详解与应用优化
  • 从传感器到推理端:VLA 机器人 TCP 通信与 msgpack 序列化深度解析
  • Rydberg原子接收器:量子传感技术的突破与应用
  • Ubuntu 20.04 ROS新手避坑:catkin_make报‘empy’错误的完整解决流程
  • ARM SME指令集浮点运算优化指南
  • 神经网络量化技术:TruncQuant在边缘计算中的高效实现
  • OpenClaw强势推出V2026.5.20版本地部署最新教程来啦!3分钟一键安装中文版可视化操作指南
  • ARM SME指令集:矩阵运算与数据传输优化指南
  • 2026年5月视频剪辑制作培训机构排行实测盘点:软件测试线下就业培训/AI软件测试培训/外贸电商设计培训/影视特效剪辑培训/选择指南 - 优质品牌商家
  • 手把手教你用Yalmip+Gurobi复现顶刊论文:配电网应急电源预配置的鲁棒优化实战
  • CNSH 语义接入规范 v2.0·功能语义技术用词对照表 + 协作宣言|中英对照·行话翻译·DNA锚链
  • 胖头鱼的技术专栏-427 AI Agent记忆系统可视化页面介绍(20260524)
  • 2026年5月新发布河南IPO企业股权激励选择指南 - 2026年企业推荐榜
  • CVE漏洞编号规范与开源项目安全验证指南
  • Kylin V10 SP1 上 auditd 服务内存泄漏排查与修复实录(附升级包下载)
  • ARM ETE协议数据包解析与嵌入式调试实践
  • 边缘计算深度学习模型优化:MARCO框架技术解析
  • Arm DS自定义组件XML配置与调试技巧
  • 动态稀疏训练与对角线稀疏模式优化实践
  • Burp Suite Intruder四种攻击模式原理与实战建模
  • 四川钢管厂家现货批发|工程专用钢材一站式配送 - 四川盛世钢联营销中心
  • ARM ETE嵌入式追踪单元架构与调试实践
  • Keil MDK V5模块化架构解析与供应商资源获取指南
  • gmapping算法源码实现分析(四)
  • Arm DS/DS-5 JTAG解锁序列配置与调试指南