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

用 Excel 手动实现 LSTM 计算过程

前言在学习循环神经网络时很多人会直接使用 Python、TensorFlow 或 PyTorch 来搭建模型。这样虽然效率较高但也容易出现一个问题知道怎么调用模型却不清楚模型内部到底是如何一步一步计算的。为了更直观地理解长短期记忆网络LSTM的运行机制我这次使用Excel手动搭建了一个简化的 LSTM 计算模型并将其计算过程完整展示出来包括遗忘门计算输入门计算候选状态计算细胞状态更新输出门计算隐藏状态输出最终输出与损失计算通过这种方式可以清楚看到每一个参数、每一步计算以及状态是如何随着时间步不断传递和更新的。一、什么是 LSTMLSTM全称Long Short-Term Memory中文叫长短期记忆网络是一种特殊的循环神经网络RNN。LSTM 之所以被广泛使用是因为它能够在处理序列数据时更好地保留长期信息缓解普通 RNN 中常见的梯度消失问题。一个典型的 LSTM 单元通常包括以下几个核心部分遗忘门Forget Gate输入门Input Gate候选状态Candidate State细胞状态Cell State输出门Output Gate隐藏状态Hidden StateLSTM 的核心思想是通过门控机制有选择地遗忘旧信息、写入新信息并输出当前时刻的重要信息从而实现对时序数据的有效建模。二、实验目标本次实验的目标是使用 Excel 展示一个简化 LSTM 的完整计算过程。主要包括以下几个部分输入数据与初始状态设置门控参数设置遗忘门、输入门、候选状态计算细胞状态更新输出门与隐藏状态计算最终输出值与损失函数计算这样做的目的不是追求大规模训练效果而是为了更直观地理解 LSTM 的内部计算机制。三、LSTM 的网络结构说明在本次 Excel 示例中我们采用的是一个简化版的 LSTM 单元并展示两个时间步的计算过程。每一个时间步中LSTM 的输入包括当前输入x_t上一时刻隐藏状态h_(t-1)上一时刻细胞状态C_(t-1)每一时刻经过门控计算后得到当前细胞状态C_t当前隐藏状态h_t如果再接一个输出层还可以进一步得到预测值当前输出y_hat_t四、LSTM 的核心计算公式LSTM 的计算过程主要由 5 个关键步骤构成。1. 遗忘门遗忘门用于决定上一时刻的细胞状态保留多少信息f_t sigmoid(W_f * [h_(t-1), x_t] b_f)其中f_t表示遗忘门输出W_f表示遗忘门权重b_f表示遗忘门偏置遗忘门的输出范围在 0 到 1 之间数值越接近 1说明旧信息保留越多越接近 0说明旧信息被遗忘得越多。2. 输入门输入门用于控制当前时刻有多少新信息被写入细胞状态i_t sigmoid(W_i * [h_(t-1), x_t] b_i)其中i_t表示输入门输出W_i表示输入门权重b_i表示输入门偏置3. 候选状态候选状态表示当前时刻新生成的候选信息g_t tanh(W_g * [h_(t-1), x_t] b_g)其中g_t表示候选状态W_g表示候选状态权重b_g表示候选状态偏置4. 细胞状态更新新的细胞状态由“保留的旧状态”和“写入的新状态”共同组成C_t f_t * C_(t-1) i_t * g_t其中C_t表示当前时刻细胞状态C_(t-1)表示上一时刻细胞状态这一步是 LSTM 最核心的部分它体现了模型对记忆的保留与更新能力。5. 输出门与隐藏状态输出门用于控制细胞状态中有多少信息被输出为当前隐藏状态o_t sigmoid(W_o * [h_(t-1), x_t] b_o)h_t o_t * tanh(C_t)其中o_t表示输出门输出h_t表示当前时刻隐藏状态隐藏状态h_t一方面可以作为当前时间步的输出另一方面也会传递到下一时间步参与计算。五、前向计算过程说明在 Excel 中每一个时间步都可以按照下面的顺序进行计算。第一步读取输入与上一时刻状态已知x_t, h_(t-1), C_(t-1)其中x_t是当前输入h_(t-1)是上一时刻隐藏状态C_(t-1)是上一时刻细胞状态第二步计算遗忘门f_t sigmoid(W_f * [h_(t-1), x_t] b_f)这一部分决定旧状态应该保留多少。第三步计算输入门与候选状态i_t sigmoid(W_i * [h_(t-1), x_t] b_i)g_t tanh(W_g * [h_(t-1), x_t] b_g)输入门负责控制写入比例候选状态负责生成待写入的新信息。第四步更新细胞状态C_t f_t * C_(t-1) i_t * g_t这一步表示一部分旧记忆被保留一部分新记忆被写入二者共同构成新的细胞状态。第五步计算输出门与隐藏状态o_t sigmoid(W_o * [h_(t-1), x_t] b_o)h_t o_t * tanh(C_t)最终得到当前时刻对外输出的隐藏状态。六、输出层与损失函数计算为了让 Excel 文件展示更加完整本实验还在 LSTM 隐藏状态之后增加了一个简单输出层。设输出层权重为W_y偏置为b_y则预测值可表示为y_hat_t W_y * h_t b_y若采用平方误差损失函数则E_t 1/2 * (y_t - y_hat_t)^2其中y_t表示真实值y_hat_t表示预测值E_t表示当前时间步损失如果展示多个时间步则总损失可以写为E E_1 E_2 ... E_t七、Excel 中的实现思路为了让计算过程更加清晰我在 Excel 中将整个 LSTM 的运算过程划分为多个区域。1. 参数设置区用于设置遗忘门权重W_f、偏置b_f输入门权重W_i、偏置b_i候选状态权重W_g、偏置b_g输出门权重W_o、偏置b_o输出层权重W_y、偏置b_y2. 输入与初始状态区用于填写当前输入x_t上一时刻隐藏状态h_(t-1)上一时刻细胞状态C_(t-1)在第一个时间步中一般会将h_0 0C_0 0作为初始状态。3. 门控计算区这一部分依次计算遗忘门f_t输入门i_t候选状态g_t输出门o_t4. 状态更新区这一部分负责计算细胞状态C_t隐藏状态h_t5. 输出与损失区这一部分负责计算预测值y_hat_t真实值y_t损失值E_t通过这种方式可以在 Excel 中逐格观察 LSTM 在每个时间步内的完整运算过程。八、实验结果分析通过这次 Excel 手动实现 LSTM可以得到以下几点认识。1. LSTM 的核心在于门控机制与普通神经网络不同LSTM 并不是简单的线性变换加激活函数而是通过多个门来控制信息的流动。其中遗忘门控制旧信息保留程度输入门控制新信息写入程度输出门控制当前输出程度正是这种结构使 LSTM 具备较强的时序记忆能力。2. 细胞状态是 LSTM 的关键LSTM 中最重要的状态变量是细胞状态C_t。它类似于一条“长期记忆通道”可以把重要信息沿时间方向持续传递下去。这也是 LSTM 能有效处理长序列问题的重要原因。九、实验心得体会在实际学习中我们经常会直接调用深度学习框架中的 LSTM 层但这些框架通常已经把底层计算全部封装好了。虽然这样使用起来很方便但也会让人忽略模型内部真正的运算逻辑。这次通过 Excel 手动实现 LSTM 后我对以下几个方面有了更清晰的认识当前输入和历史状态是如何共同参与计算的遗忘门、输入门和输出门分别承担什么功能细胞状态为什么能够保存长期信息隐藏状态是如何从细胞状态中生成的LSTM 为什么比普通 RNN 更适合处理长序列问题通过逐步展开 LSTM 的计算过程我不仅加深了对其数学原理的理解也提升了自己对序列模型结构的整体认识。十、总结本文使用 Excel 对一个简化的 LSTM 模型进行了可视化实现完整展示了以下过程遗忘门计算输入门计算候选状态计算细胞状态更新输出门计算隐藏状态输出最终输出与损失计算通过这种方式我们可以把原本较为抽象的 LSTM 内部运算过程拆解成一个个可以观察、可以验证的步骤。对于理解 LSTM 的基本原理这是一种非常直观且有效的方法。十一、Excel截图展示结语以上就是我使用 Excel 展示 LSTM 计算过程的完整实验内容。通过这次实践我对 LSTM 的门控机制、状态更新以及时序信息传递方式有了更加深入的理解。

相关文章:

用 Excel 手动实现 LSTM 计算过程

前言 在学习循环神经网络时,很多人会直接使用 Python、TensorFlow 或 PyTorch 来搭建模型。这样虽然效率较高,但也容易出现一个问题:知道怎么调用模型,却不清楚模型内部到底是如何一步一步计算的。 为了更直观地理解长短期记忆网络…...

华为ENSP实战:链路聚合LACP与Static模式配置详解与场景对比

1. 链路聚合技术基础与华为ENSP环境准备 第一次接触链路聚合时,我也被那些专业术语搞得晕头转向。简单来说,链路聚合就像把多条高速公路合并成一条更宽的大道——原本分散的4条单车道路(物理链路)通过技术手段变成1条四车道的快速…...

深度体验:8款AI网课总结工具使用心得,看看哪款适合你?

面对长达几小时的网课视频,你是否也曾因为记不全要点而焦虑?回看录像不仅耗时,还往往抓不住重点,导致复习效率低下。作为一名深受笔记整理困扰的学习者,我开始尝试使用“AI网课总结工具”。通过AI自动提取核心逻辑、生…...

从静态到动态:用sd-webui-animatediff解锁AI视频创作的魔法配方 [特殊字符]

从静态到动态:用sd-webui-animatediff解锁AI视频创作的魔法配方 🎬 【免费下载链接】sd-webui-animatediff AnimateDiff for AUTOMATIC1111 Stable Diffusion WebUI 项目地址: https://gitcode.com/gh_mirrors/sd/sd-webui-animatediff 想象一下&…...

BilibiliDown:3步解决B站视频下载难题的高效方案

BilibiliDown:3步解决B站视频下载难题的高效方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bil…...

5个核心技巧:用Pixel-Composer节点式编辑打造专业像素艺术特效

5个核心技巧:用Pixel-Composer节点式编辑打造专业像素艺术特效 【免费下载链接】Pixel-Composer Node base VFX editor for pixel art. 项目地址: https://gitcode.com/gh_mirrors/pi/Pixel-Composer Pixel-Composer是一款革命性的节点式像素艺术视觉特效编辑…...

告别龟速下载!RedHat 9/CentOS Stream 9 一键切换阿里云、清华等国内Yum源(2024最新)

2024年RedHat 9/CentOS Stream 9国内Yum源极速配置指南 刚装完RedHat 9系统,看着进度条像蜗牛爬一样慢?别急,这份指南能让你在5分钟内把下载速度提升10倍。作为常年折腾Linux的老鸟,我总结了一套最省时省力的国内源切换方案&#…...

CVPR2022 Oral解读:3D检测新SOTA,FocalsConv的PyTorch实现与调参避坑指南

CVPR2022 Oral论文FocalsConv实战:3D检测新范式PyTorch实现与工业级调优指南 在自动驾驶与机器人感知领域,3D物体检测技术正经历从理论突破到工程落地的关键转型期。2022年CVPR会议收录的Focal Sparse Convolutional Networks(FocalsConv&…...

嵌入式C结构体对齐×大模型权重布局(内存带宽利用率提升3.8倍的底层对齐秘钥)

更多请点击: https://intelliparadigm.com 第一章:嵌入式C结构体对齐大模型权重布局(内存带宽利用率提升3.8倍的底层对齐秘钥) 在资源受限的嵌入式AI推理场景中,结构体字段对齐不仅关乎内存安全,更直接决定…...

滴哦小精灵:轻松搞定桌面备忘与快捷启动

最近总觉得电脑桌面乱糟糟,临时想记点东西要打开笔记软件,找软件、文件夹、网页链接也要翻半天,思路老是被打断。无意间用到了滴哦小精灵,用了几天感觉特别顺手,就像给桌面装了个贴心小助手。 它最实用的就是桌面便签…...

如何从图表图像中智能提取数据?WebPlotDigitizer给你答案

如何从图表图像中智能提取数据?WebPlotDigitizer给你答案 【免费下载链接】WebPlotDigitizer Computer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/we/WebPlotDigitizer 你是否曾面对科研…...

EndNote X9/20/21 中文文献引用终极优化:手把手教你将‘and/etal’精准替换为‘和/等’

EndNote中英文混排文献引用优化:从原理到实战的完整解决方案 第一次在学术论文中看到"张伟 and 李娜, 2023"这样的引用格式时,我差点以为是自己眼花了。这种中英文混杂的引用方式不仅影响阅读体验,更会让审稿人对论文的专业性产生质…...

Zotero文献去重终极指南:使用ZoteroDuplicatesMerger插件高效清理重复文献

Zotero文献去重终极指南:使用ZoteroDuplicatesMerger插件高效清理重复文献 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger 你是否曾…...

AgentCode 深度技术解析:极简架构下的 AI 编程代理设计哲学

AgentCode 深度技术解析:极简架构下的 AI 编程代理设计哲学 一、架构设计:为什么"极简"反而更强大? 1.1 核心架构概览 AgentCode 采用经典的 ReAct(Reasoning Acting)范式,但做了关键的工程化…...

【2026年最新600套毕设项目分享】基于微信小程序的小区疫情防控(30169)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 项目演示视频2 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运…...

3分钟掌握Materials Project API:解锁材料科学数据宝库的终极指南

3分钟掌握Materials Project API:解锁材料科学数据宝库的终极指南 【免费下载链接】mapidoc Public repo for Materials API documentation 项目地址: https://gitcode.com/gh_mirrors/ma/mapidoc 你是否曾为寻找高质量材料科学数据而烦恼?Materi…...

服务器搭建1

...

VS2026导入头文件时出错怎么办?

针对 VS2026 导入头文件出错且外部依赖项为空的问题,首先应检查项目配置中的“附加包含目录”是否正确设置了头文件路径。若外部依赖项无内容,可能是因为代码中未成功识别#include 指令或项目类型为空项目导致依赖项未自动加载。建议尝试清理解决方案并重…...

全栈聚合应用ChattyPlay-Agent:从架构演进到工程化实战

1. 项目概述:一个全栈开发者的“瑞士军刀”是如何炼成的作为一名在前后端领域摸爬滚打了十多年的开发者,我见过也做过不少“聚合型”应用。但像ChattyPlay-Agent这样,能把视频解析、AI对话、金融数据、漫画阅读、论文工具、闲鱼助手等十几个看…...

终极指南:用MAA助手3步实现明日方舟全自动刷图,告别重复劳动

终极指南:用MAA助手3步实现明日方舟全自动刷图,告别重复劳动 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目…...

Nginx反向代理SSE请求,为什么你的实时推送总断线?这3个配置项是关键

Nginx反向代理SSE请求:根治断线问题的3个关键配置实战 当你在金融交易系统或物联网监控平台中部署SSE实时推送时,是否经常遇到这样的场景:仪表盘数据突然停止更新,客户端不断重连,而Nginx错误日志里满是upstream timed…...

别再只用MD5存密码了!聊聊Java里那些更安全的替代方案(附Bcrypt/Argon2代码示例)

Java密码存储安全升级:从MD5到Bcrypt/Argon2的实战指南 密码存储的危机时刻 三年前,某社交平台因使用MD5存储用户密码导致600万账户泄露。攻击者仅用48小时就破解了其中92%的密码——这不是电影情节,而是每天都在发生的安全事件。作为Java开发…...

保姆级教程:用Canvas和Web Audio API给个人音乐播放器加个酷炫波形图

从零打造音乐播放器波形图:Canvas与Web Audio的实战指南 音乐播放器的视觉体验往往被忽视,但一个动态响应的波形图能让你的作品瞬间脱颖而出。想象一下,当用户点击播放按钮,随着旋律起伏的不仅是音符,还有屏幕上跳动的…...

3分钟搞定!GetQzonehistory免费备份QQ空间说说的终极方案

3分钟搞定!GetQzonehistory免费备份QQ空间说说的终极方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾担心那些记录青春岁月的QQ空间说说会随着时间消失&#xf…...

思源黑体TTF:免费商用的多语言字体终极指南

思源黑体TTF:免费商用的多语言字体终极指南 【免费下载链接】source-han-sans-ttf A (hinted!) version of Source Han Sans 项目地址: https://gitcode.com/gh_mirrors/so/source-han-sans-ttf 思源黑体TTF是一款基于Adobe和Google合作的思源黑体项目构建的…...

Linux内核里PCIe ECAM的‘幕后英雄’:ecam.c源码导读与配置空间访问全景图

Linux内核中PCIe ECAM机制的深度解析与实战指南 引言 在探索现代计算机体系结构时,PCI Express(PCIe)总线作为连接CPU与各种外设的高速通道,其重要性不言而喻。而在这背后,ECAM(Enhanced Configuration Acc…...

模拟IC设计实战指南(入门)——反相器仿真与验证

1. 反相器基础与仿真准备 反相器作为数字电路中最基础的构建模块,其重要性怎么强调都不为过。记得我第一次接触反相器仿真时,完全被各种参数设置搞得晕头转向。今天我就用最直白的语言,带你从零开始完成反相器的完整仿真验证流程。 在Cadence…...

别再踩坑了!Windows 11上RabbitMQ 3.13与Erlang 26.2.2的保姆级安装配置指南

Windows 11下RabbitMQ 3.13与Erlang 26.2.2完美兼容指南 如果你正在Windows 11上尝试安装最新版RabbitMQ,却频繁遭遇Erlang版本不兼容、服务启动失败等问题,这篇文章将为你提供一站式解决方案。不同于网络上那些过时的通用教程,我们将深入剖析…...

单机百万连接不是梦,C++ MCP网关调优全链路拆解,从TCP栈到用户态协议解析器,每微秒都算数

更多请点击: https://intelliparadigm.com 第一章:单机百万连接不是梦,C MCP网关调优全链路拆解,从TCP栈到用户态协议解析器,每微秒都算数 实现单机百万级并发连接,关键在于消除内核态与用户态间的数据拷贝…...

Win11下用官方工具制作Ubuntu 20.04安装U盘,为什么比第三方更稳?

Win11下用官方工具制作Ubuntu 20.04安装U盘的三大核心优势 在Windows 11环境下为Ubuntu 20.04制作安装U盘时,多数教程会推荐Rufus等第三方工具。但鲜为人知的是,Ubuntu官方提供的解决方案在安全性和兼容性上有着不可替代的优势。本文将深入解析官方工具链…...