Rethink LSTM&GRU

LSTM 设计思想

姑且不看偏置。 W W W 和 U U U 是加权的矩阵,写模型的时候用 nn.Linear(in_dim, out_dim) 就成; σ \sigma σ 是 Sigmoid 函数

  • 第一条,遗忘门,定义为 有多少内容需要被遗忘;
  • 第二条:输入门,定义为 有多少输入值有多少能进入到 RNN 模型里;
  • 第三条:输出门,定义为 有多少内容能够成为输出值

这三个 0 到 1 的值,是聚合当前的输入特征 x t x_t xt 和 上一时刻的隐藏状态 h t − 1 h_{t-1} ht−1 所计算得到的。它们表示的意思是,聚合当前的输入信息以及记忆信息(之前的信息),来决定模型不同的位置有多少比例保留下来。

  • 第四条:表示 "当前信息",使用 tanh 映射到 -1到 1之间;
  • 第五条:表示 "当前的记忆信息",根据上一时刻的信息有多少被遗忘以及当前输入有多少能进入所聚合得到;
  • 第六条:表示 隐藏状态,由当前的记忆信息的一定比例计算得到

从这六条式子中,一定要知道,LSTM 接收 3 个输入值分别为 x t x_t xt、 h t − 1 h_{t-1} ht−1 和 c t − 1 c_{t-1} ct−1
根据 LSTM 由三个输入,可以设计一个 Gate Fusion Module,输入三个 Tensor 聚合得到一个 Tensor,用 tensor. Repeat(x,y,z) 来对其维度。这样做可以简单聚合不同模态的信息

GRU

理解起来和前者的叙述类似

最终要的地方是,可以作为 Gate Fusion,所设计的 Gate Fusion 以两个 tensor 作为输入,就用 GRU 这一套计算公式,如果以三个 tensor 作为输入,就用 LSTM 这一套公式,剩下的对齐维度跑通 forward 函数就行

相关推荐
逢生博客34 分钟前
使用 Python 项目管理工具 uv 快速创建 MCP 服务(Cherry Studio、Trae 添加 MCP 服务)
python·sqlite·uv·deepseek·trae·cherry studio·mcp服务
堕落似梦41 分钟前
Pydantic增强SQLALchemy序列化(FastAPI直接输出SQLALchemy查询集)
python
坐吃山猪2 小时前
Python-Agent调用多个Server-FastAPI版本
开发语言·python·fastapi
Bruce-li__2 小时前
使用Django REST Framework快速开发API接口
python·django·sqlite
小兜全糖(xdqt)2 小时前
python 脚本引用django中的数据库model
python·django
Arenaschi2 小时前
SQLite 是什么?
开发语言·网络·python·网络协议·tcp/ip
纪元A梦2 小时前
华为OD机试真题——推荐多样性(2025A卷:200分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
java·javascript·c++·python·华为od·go·华为od机试题
仙人掌_lz2 小时前
人工智能与机器学习:Python从零实现性回归模型
人工智能·python·机器学习·线性回归
Awesome Baron3 小时前
《Learning Langchain》阅读笔记8-RAG(4)在vector store中存储embbdings
python·jupyter·chatgpt·langchain·llm
阡之尘埃3 小时前
Python数据分析案例73——基于多种异常值监测算法探查内幕交易信息
人工智能·python·机器学习·数据分析·异常检测·无监督学习