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

相关推荐
RZer1 小时前
Hypium+python鸿蒙原生自动化安装配置
python·自动化·harmonyos
CM莫问3 小时前
什么是门控循环单元?
人工智能·pytorch·python·rnn·深度学习·算法·gru
查理零世3 小时前
【算法】回溯算法专题① ——子集型回溯 python
python·算法
圆圆滚滚小企鹅。4 小时前
刷题记录 HOT100回溯算法-6:79. 单词搜索
笔记·python·算法·leetcode
纠结哥_Shrek4 小时前
pytorch实现文本摘要
人工智能·pytorch·python
李建军4 小时前
TensorFlow 示例摄氏度到华氏度的转换(二)
人工智能·python·tensorflow
李建军4 小时前
TensorFlow 示例摄氏度到华氏度的转换(一)
人工智能·python·tensorflow
2301_793069825 小时前
npm 和 pip 安装中常见问题总结
开发语言·python
萌小丹Fighting5 小时前
【ArcGIS_Python】使用arcpy脚本将shape数据转换为三维白膜数据
开发语言·python·arcgis
linhhanpy6 小时前
自制虚拟机(C/C++)(二、分析引导扇区,虚拟机读二进制文件img软盘)
c语言·汇编·c++·python·stm32·操作系统