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 函数就行

相关推荐
SEO_juper6 分钟前
用 Python 写一个 GEO 可见性检查脚本:你的网站现在能被 AI 引用吗
开发语言·人工智能·爬虫·python·seo·外贸独立站
用户8356290780511 小时前
使用 Python 对 Excel 工作表进行排序
后端·python
for_ever_love__2 小时前
MySQL 全文索引实战:FULLTEXT、ngram 中文分词与 MATCH AGAINST 到底该怎么用
java·python·mysql·全文检索·分词·索引·ngram
用户8356290780512 小时前
使用 Python 合并 PowerPoint 演示文稿
后端·python
weixin_461769402 小时前
VS Code 中创建 Jupyter 文件(.ipynb)
ide·python·jupyter
2601_966949652 小时前
多市场量化策略的数据接口应该如何设计:从数据层架构到策略接入
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
全栈弄潮儿2 小时前
Python实战第1期:Python环境搭建与第一个程序
python
心易行者2 小时前
Agent应用+API端点商业化进阶实战:从单体智能体到可付费调用的API全流程
运维·服务器·人工智能·python·apache
weixin199701080163 小时前
《1688图片空间API踩坑:img.upload 与 album.* 的防盗链与CDN缓存问题》(附Python源码)
开发语言·python·缓存
布吉岛的石头3 小时前
Java 程序员第 49 阶段11:Java 接 BERT:用 ONNX Runtime 做句向量推理
java·人工智能·python·深度学习·bert·transformer