基于 Excel 手动复刻 LSTM 算法
一、前言
LSTM 长短期记忆网络是解决时序数据、梯度消失问题的经典循环神经网络,广泛应用于时间序列预测、文本处理、语音识别等场景。日常学习中大多直接调用深度学习框架搭建 LSTM 模型,只能看到最终预测结果,无法理解内部四门机制、细胞态流转、反向传播链式求导、权重参数更新的底层数学逻辑。
本次作业不依赖任何编程代码,仅使用 Microsoft Excel 工具,参考标准 LSTM 逐步骤推导文档,完整复刻单时刻 LSTM 前向传播、反向传播梯度求导、损失计算、梯度下降参数更新全流程。通过表格分区排版、Excel 基础函数与矩阵点乘公式,把 LSTM 遗忘门、输入门、候选记忆、输出门的运算过程全部可视化,彻底吃透 LSTM 底层计算原理。
二、LSTM 核心原理与符号说明
2.1 LSTM 四门核心结构
LSTM 依靠三个门控 + 候选记忆实现长期记忆保存与短期信息更新:
- 遗忘门 Wf:控制上一时刻细胞状态保留比例;
- 输入门 Wi:控制新候选记忆写入比例;
- 候选值 Wu:生成待写入细胞态的新记忆内容;
- 输出门 Wo:控制当前细胞态输出到隐藏状态的比例。
2.2 统一符号定义
表格
|
符号 |
含义 |
|
Wf |
遗忘门权重矩阵 |
|
Wi |
输入门权重矩阵 |
|
Wu |
候选记忆权重矩阵 |
|
Wo |
输出门权重矩阵 |
|
h0 |
初始隐藏状态 |
|
C0 |
初始细胞状态 |
|
x1 |
当前时刻输入向量 |
|
η |
学习率 |
三、实验网络结构与初始参数配置
本次采用极简单时刻 LSTM 结构,所有参数完全参照标准推导文档固定赋值:
- 输入维度 d=2,隐藏层维度 h=3,序列长度 T=1
- 输入向量:x1=[0.5, 0.8]
- 初始隐藏态:h0=[0.1, 0.2, 0.3]
- 初始细胞态:C0=[0, 0, 0]
- 目标真实值:y=[20, 20, 20]
- 学习率:η=0.01
- 四个权重矩阵 均为 3×5 固定数值矩阵
- 激活函数:门控使用 Sigmoid,候选记忆与细胞态变换使用 Tanh

四、Excel 表格整体布局设计
为清晰还原 LSTM 计算逻辑,将 Excel 划分为七大独立区域,分区排版、各司其职:
- 基础参数区:存放维度、学习率、输入向量、初始状态、目标值;
- 权重矩阵区:集中存放 4 个 3×5 权重矩阵;
- 向量拼接区:拼接$[h_0,x_1]$5 维向量;
- 四门原始值计算区:矩阵点乘得到 net_f、net_i、net_u、net_o;
- 激活运算区:通过 Sigmoid、Tanh 得到四门与候选记忆输出;
- 前向结果区:细胞态更新、Tanh 缩放、隐藏态输出、平方损失计算;
- 反向传播与参数更新区:梯度求导、权重梯度矩阵、学习率迭代更新新权重。
分区设计让每一步计算独立可查,数值溯源清晰,完全还原 LSTM 数据流与梯度流传递过程。
五、Excel 实现 LSTM 前向传播计算
5.1 向量拼接
将上一时刻隐藏态与当前输入拼接:[h0,x1]=[0.1,0.2,0.3,0.5,0.8]在 Excel 单独单元格区域录入该 5 维向量,作为后续矩阵运算基础。
5.2 计算四门原始线性值
利用 Excel SUMPRODUCT 函数实现矩阵与向量点乘:
netfnetinetuneto=Wf⋅[h0,x1]T=Wi⋅[h0,x1]T=Wu⋅[h0,x1]T=Wo⋅[h0,x1]T
计算得到和推导文档完全一致的原始网络值。
5.3 激活函数非线性变换
- 遗忘门、输入门、输出门使用 Sigmoid 激活:σ(x)=1+e−x1
- 候选记忆、细胞态变换使用 Tanh 激活:tanh(x)=ex+e−xex−e−xExcel 直接使用 1/(1+EXP()) 和 TANH() 内置函数一键计算,得到门控输出f1,i1,o1与候选记忆u1。

5.4 细胞状态与隐藏状态更新
- 长期记忆细胞态更新:C1=f1⊙C0+i1⊙u1
- 细胞态 Tanh 缩放后,由输出门控制得到当前隐藏输出:h1=o1⊙tanh(C1)
5.5 损失函数计算
采用平方误差损失,衡量模型预测隐藏态与真实值的偏差:L=∑j=13(h1[j]−y[j])2在 Excel 中逐单元格计算误差平方后求和,得到总损失值。

六、Excel 实现 LSTM 反向传播梯度求导
反向传播基于链式法则,从损失值反向逐层求梯度,是 LSTM 参数训练的核心:
- 从损失对隐藏态求梯度 ∂L/∂h1;
- 反向推导输出门梯度、细胞态梯度;
- 依次求解输入门、候选记忆、遗忘门梯度;
- 利用外积运算求解四个权重矩阵的梯度 、、、;
- 因初始细胞态C0为零,遗忘门权重梯度为零,无参数更新,符合 LSTM 数学逻辑。
所有梯度计算均在 Excel 中分步列式,每一步中间结果完整保留,梯度流向清晰可见。
七、梯度下降参数更新
采用梯度下降算法,学习率η=0.01更新所有权重参数:Wnew=Wold−η⋅∂W∂L以输出门权重Wo为例,在 Excel 中完整演示单行权重迭代计算过程,直观看到参数微调幅度,理解模型训练迭代的本质。

八、计算结果分析
- 通过 Excel 复刻,完整还原了 LSTM遗忘、选择记忆、输出三大核心逻辑,四门控各自作用清晰可辨;
- 前向传播实现了信息从输入→隐藏→细胞态→输出的完整流转,非线性激活赋予模型时序拟合能力;
- 反向传播链式求导清晰展示了误差从输出层反向传递到各权重矩阵的过程,理解了深度学习 “自动求导” 的底层原理;
梯度下降参数更新验证了学习率对参数调整幅度的控制作用,初始C0为零时遗忘门梯度为零,符合理论推导结论。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)