首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LSTM & GRU的基本原理与区别

LSTM & GRU的基本原理与区别

作者头像
Cyril-KI
发布2022-09-16 17:18:50
发布2022-09-16 17:18:50
7790
举报
文章被收录于专栏:KI的算法杂记KI的算法杂记

1.RNN的缺陷

有关RNN请参考:循环神经网络(RNN)的基本原理

RNN在构建实际应用程序如语言翻译、文本分类和更多的序列化问题方面常见,but在处理大型序列时存在梯度消失和梯度爆炸等问题。

RNN结构共享一组U,W,b,这样梯度在反向传播过程中是不断连乘的,这样会使得梯度越来越大或者越来越小,带来梯度爆炸or梯度消失。所以当神经元个数非常多,也就是我们在处理很长一段序列的时候,往往得不到预期的结果。

梯度下降与梯度爆炸:

梯度的表达式为:

可以看到,当r>1,t-k→∞时,

,造成梯度爆炸问题;相反,γ<1,t-k→∞时,

,会出现梯度消失问题。

而循环神经网络中经常使用的激活函数为Sigmoid函数和Tanh函数,其导数值都小于1,并且权重矩阵U的值也不会太大,因此如果时间间隔t-k过大,就会导致误差 趋于0,出现梯度消失问题。在这种情况下,当目前的预测又需要用到比较久远的信息时,就会出现长期依赖问题。

2.LSTM

2.1 LSTM的结构

既然是RNN的变种,那么二者之间肯定还是有很大关联的。实际上,LSTM的神经元还是基于输入x和上一级的隐藏层输出h来计算,只不过相比RNN,LSTM的内部结构更为复杂,RNN的计算表达式为:

LSTM相比于RNN,引入了输入门i、遗忘门f、输出门o以及内部记忆单元c。其结构如下所示:

2.1.1遗忘门f

如上图所示,遗忘门f用于控制输入x和上一层隐藏层输出h被遗忘的程度大小。 是遗忘门的权重, 是遗忘门的偏置,需要指出的是,所有遗忘门共用一组W和b。

实际上,上述公式也可以写成:

这样便能与前面的RNN对应起来,

是所有遗忘门的一组权重参数。

2.1.2 输入门i

如上图所示,输入门 用于控制输入x和当前计算的状态更新到记忆单元的程度大小。相应地,其表达式可以改为:

2.1.3 内部记忆单元c

观察上图可以发现,

汇聚到了一起,经过一个加号变成

,如下所示:

内部记忆单元表达式如下:

其中

为遗忘门输出,

是当前输入的单元状态,

是当前时刻单元状态。

2.1.4 输出门o

同样可改写为:

可以看到,隐藏层输出是由输出门和内部记忆单元决定的。

以上所有表达式中的 通常是指Sigmoid函数,主要是起到门控作用,因为其输出为0~1,当输出接近0或者1时,符合物理意义上的关或开。

2.2 一些总结

循环神经网络中的隐状态h存储了历史信息,可以看做一种记忆。在简单的RNN模型中,h在每一个时刻都是改变的,都会被重写,因此可看作一种短期记忆。而在LSTM中,记忆单元c可以在某个时刻捕捉到某个关键信息,并有能力将此关键信息保存一定的时间间隔。记忆单元c中保存信息的生命周期要长于短期记忆,但又远远短于长期记忆,因此将LSTM称为长短期记忆(Long Short-Term Memory)

在深度网络参数学习时,参数初始化的值一般都比较小。但是在训练LSTM网络时,过小的值会使得遗忘门的值比较小,这意味着前一时刻的信息大部分都丢失了,这样网络很难捕捉到长距离的依赖信息。 并且相邻时间间隔的梯度会非常小,这会导致梯度弥散问题。

因此遗忘门的参数初始值一般都设得比较大,其偏置向量

设为1或2。

3.GRU

3.1 基本结构

门控循环单元(Gated Recurrent Unit, GRU)网络是一种比LSTM网络更加简单的循环神经网络。其结构如下所示:

GRU相比于LSTM有以下两点不同:

1.将输入门i、遗忘门f、输出门o变为两个门:更新门(Update Gate)和重置门(Reset Gate)。2.直接在当前状态

和历史状态

之间引入线性依赖关系。

具体来讲,GRU将遗忘门和输入门合并成更新门,将内部记忆单元和隐藏层输出合并成重置门,进而让整个结构变得更加简单,性能可能会有所增强。

3.2 工作原理

重置门

与候选状态

的表达式为:

重置门用于控制候选状态是否依赖上一时刻状态,通过重置门

的表达式我们可以发现:

1.当

时,候选状态只与当前输入

有关,和历史状态无关。

2.当

时,候选状态和当前输入

以及历史状态

都有关,这就与一般的RNN一致了。

更新门

与当前状态

的表达式为:

通过 的表达式我们可以发现:

1.当

时,当前状态就是候选状态,与前一状态

之间为非线性关系。

2.当

时,当前状态就是前一状态,二者之间为线性关系。3.因此,更新门用于控制前一隐藏状态有多少信息转移到当前隐藏状态,类似于LSTM中的内部记忆单元。

因此,综合二者并观察状态更新表达式我们可以发现:

1.当

时,GRU退化为简单RNN。

2.当

时, 当前状态

只和当前输入

相关, 和历史状态

无关,即隐藏状态被迫忽略前一时刻隐藏状态。

3.当

时,当前状态就是前一状态。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 KI的算法杂记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.RNN的缺陷
  • 2.LSTM
    • 2.1 LSTM的结构
    • 2.1.1遗忘门f
    • 2.1.2 输入门i
    • 2.1.3 内部记忆单元c
    • 2.1.4 输出门o
    • 2.2 一些总结
  • 3.GRU
    • 3.1 基本结构
    • 3.2 工作原理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档