前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LSTM与GRU简单介绍

LSTM与GRU简单介绍

作者头像
用户7569543
发布2020-07-20 11:12:18
8620
发布2020-07-20 11:12:18
举报

和我们人一样,RNN虽然擅长处理序列问题,但它也只能记住重要的短时信息,对于长时间的信息它则很难处理。也就是说,如果一条序列足够长,那它将很难把信息从较早的时间步传送到后面的时间步。因此,如果你准备进行一个文本预测任务,RNN 可能会遗漏一些间隔时间较长的重要信息。为什么会如此?因为RNN在反向传播的过程中,会面临梯度消失的问题,即梯度会随着时间推移慢慢下降。当梯度变得足够小,它就不会再进行学习。而LSTM和GRU就是短时记忆问题的解决方案。因为它们内部具有一些“门”可以调节信息流。这些“门”知道序列中哪些重要的数据是需要被保留,而哪些是需要被删除的。随后它可以沿着长链序列传递相关信息以进行预测,这也是为什么LSTM和GRU在后来的实际应用中越来越受欢迎的原因。

什么是短时记忆

举个栗子,当我们浏览购物网站,看到这样一条洗发露广告时:去屑柔顺,让秀发飘逸更有光泽。我们的大脑下意识地会记住某些重要的关键词,比如“去屑”和“柔顺”这样的词汇,而不太会关心“让”、“秀发”、“更有”等字样。所以如果第二天让你回忆这条广告语时,那你很可能已经忘记了大部分的信息,只剩下印象深刻的小部分内容。并且随着时间间隔越长,能记住的信息就越少,这就是短时记忆。

【LSTM】

LSTM 的控制流程与 RNN 相似,都是在前向传播过程中处理流过节点的信息,不同之处在于 LSTM内部具有“门”结构,而各个“门”之间分工配合,更好地处理长时间的序列信息。其具体内部结构如下图所示。

由图中可以看出,LSTM内部结构之间存在互相依赖的运算操作,而这一系列运算操作使得 LSTM具有能选择保存信息或遗忘信息的功能。乍一看这些运算操作时可能有点复杂,但其实这些运算操作都与其内部的门结构息息相关,在LSTM中有三种类型的门:遗忘门、输入门和输出门。

遗忘门

遗忘门的功能是决定应丢弃或保留哪些信息,来自前一个隐藏状态的信息和当前输入的信息同时传递到 sigmoid 函数中去,输出值介于 0 和 1 之间,越接近 0 意味着越应该丢弃,越接近 1 意味着越应该保留。遗忘门的运算过程如下图所示。

输入门

输入门的主要作用是更新细胞状态,首先将前一层隐藏状态的信息和当前输入的信息传递到sigmoid 函数中去,将值调整到 0~1 之间来决定要更新哪些信息。0 表示不更新,1 表示更新。其次还要将前一层隐藏状态的信息和当前输入的信息传递到 tanh 函数中去,创造一个新的候选值向量。最后将 sigmoid 的输出值与 tanh 的输出值相乘,sigmoid 的输出值将决定 tanh 的输出值中哪些信息是重要并且需要保留下来的。下图是输入门的具体运算过程。

什么是细胞状态

LSTM的关键是细胞状态,如下图所示,表示细胞状态的这条线水平地穿过图的顶部。细胞状态类似于输送带,细胞的状态在整条链上运行,只有一些小的线性操作作用其上,信息很容易保持不变地流过整条链。

经过输入门之后的下一步就是计算细胞状态,首先前一层的细胞状态与遗忘门向量逐点相乘。如果它乘以接近 0 的值,意味着在新的细胞状态中,这些信息是需要丢弃的。然后再将该值与输入门的输出值逐点相加,将神经网络发现的新信息更新到细胞状态中去,这样就得到了更新后的细胞状态。

输出门

输出门用来确定下一个隐藏状态的值,隐藏状态包含了先前输入的信息。首先,我们将前一个隐藏状态和当前输入传递到 sigmoid 函数中,然后将新得到的细胞状态传递给 tanh 函数。最后将 tanh 的输出与 sigmoid 的输出相乘,以确定隐藏状态应携带的信息。再将隐藏状态作为当前门的输出,把新的细胞状态和新的隐藏状态传递到下一个时间步长中去。

最后让我们再梳理一下前面介绍的内容,首先遗忘门用于确定前一个步长中哪些相关的信息需要被保留;其次输入门用于确定当前输入中哪些信息是重要的,需要被添加;最后输出门用来确定下一个隐藏状态应该是什么,这就是LSTM各个门的主要功能。

【GRU】

知道了 LSTM 的工作原理之后,我们来简单了解一下 GRU。GRU 是新一代的循环神经网络,与 LSTM 非常相似。但与 LSTM 相比,GRU 去除掉了前面介绍的细胞状态部分,使用隐藏状态来进行信息的传递。因此它只包含两个门:更新门和重置门。其内部结构如下图所示。

更新门的作用类似于 LSTM 中的遗忘门和输入门。它决定了要忘记哪些信息以及哪些新信息需要被添加,重置门用于决定遗忘先前信息的程度。另外,由于GRU的张量运算较少,因此它比 LSTM 的训练速度更快一些。但很难说这两者到底谁更好,只能说LSTM到目前为止比GRU更常用一些,具体可以根据实际的任务场景来选择。

【总结】

总而言之,RNN 适用于处理序列问题,但却受到短时记忆的制约。LSTM 和 GRU 采用门结构来克服短时记忆的影响,因为门结构可以调节流经序列链的信息流。因此LSTM 和 GRU 目前被广泛地应用到语音识别、语音合成和自然语言处理等领域。最后是LSTM简单的代码实践案例,有兴趣的同学可以对比一下与上节课介绍的RNN之间的效果差别。好了,本节课到此,感谢大家的支持!

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

本文分享自 多赞云数据 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档