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

相关推荐
三十岁老牛再出发6 分钟前
8月21日总结
c++·python
草莓熊Lotso16 分钟前
【Linux网络加餐】手动部署:SSH 与 Web 服务实战 + 底层原理全解析
linux·运维·网络·人工智能·python·langchain·ssh
weixin_4407305019 分钟前
python+request实现接口-参数化小结
开发语言·python
Logintern091 小时前
Celery 死信队列 Dead‑Letter Queue(DLQ)
python
Python私教1 小时前
四个入口,一条流水线:如意智影的多入口架构取舍
人工智能·python·架构
名字还没想好☜1 小时前
用 Python struct 解析二进制协议:pack/unpack、字节序与对齐踩坑
开发语言·python·二进制·struct
0xBADCODE2 小时前
Flask SSTI读SECRET_KEY+伪造Session:税务系统渗透全流程
前端·后端·python·安全·web安全·网络安全·flask
青 春 记 忆2 小时前
LeetCode 155. 最小栈|Python 解法详解
开发语言·python·leetcode
程序员三藏11 小时前
Python+requests实现接口自动化测试
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
一直走下去-明13 小时前
简单的http抓包解包完整代码
开发语言·python