快速理解RNN(LSTM,GRU)结构原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速理解RNN(LSTM,GRU)结构原理相关的知识,希望对你有一定的参考价值。

参考技术A

RNN主要用来解决序列问题,强调的是先后顺序,在NLP中引申出上下文的概念,一个翻译问题,这个词的含义可能和前后的单词形成的这个组合有联系(Skip-gram),也可能是它之前的所有单词都有联系(Attention),并且,借助RNN的state这样的记忆单元,使得一个序列位置的输出在数学上和之前的所有序列的输入都是有关系的。当然原始的RNN由于梯度的乘性问题,前面的序列的影响近乎为0,这个后面又用LSTM来修正为加性问题。RNN的数学基础可以认为是马尔科夫链,认为后续的值是有前者和一些参数的概率决定的。

seq2seq模型,另外会有新文章介绍。

普通的RNN在长文本的情况下,会学不到之前的信息,例如:the clouds are in the sky 预测sky是可以预测准确的,但是如果是很长的文本,如:我出生在中国,......,我讲的是 中文 这个时候就存在长时依赖问题,LSTM可以通过输入们,遗忘门,输出们来解决这个问题。

刚开始接触LSTM时有点懵,这个结构怎么这么复杂,但其实先理解LSTM做了什么来解决长时依赖问题,就很容易 记住这个结构了。
LSTM通过忘记们来决定从上个隐状态记忆中忘记哪些信息,通过输入们来决定输入哪部分信息,通过输出们来决定输出哪部分信息,这样来解决长时依赖问题,下面来介绍下LSTM的具体结构信息。

LSTM相比RNN hidden status还引入了细胞状态来记录信息。细胞状态通过门结构 gate来添加新的记忆和删除旧的记忆信息

这一步是通过忘记门来忘记部分cell state中的记忆信息

将需添加的新信息加入到经过忘记门后的cell state中,生成新的cell state

GRU的结构如下,主要包含重置门和更新门,把GRU看着LSTM的变体,相当于取消了LSTM中的cell state,只使用了hidden state,并且使用update gate更新门来替换LSTM中的输入们和遗忘门,取消了LSTM中的输出门,新增了reset gate重置门。这样做的好处是在达到LSTM相近的效果下,GRU参数更少,训练的计算开销更小,训练速度更快。

由于GRU参数更少,收敛快,通常在数据集够大的情况下,选择LSTM效果应该会更好。
通常情况下LSTM和GRU两者效果相差不大,GRU训练更快,所以一般会先选择使用GRU进行训练和调参,当无法再继续优化时可以把GRU替换成LSTM来看看是否有提高。

完全图解RNN、RNN变体、Seq2Seq、Attention机制
Understanding LSTM Networks
序列预测问题,CNN、RNN各有什么优势?

以上是关于快速理解RNN(LSTM,GRU)结构原理的主要内容,如果未能解决你的问题,请参考以下文章

从动图中理解 RNN,LSTM 和 GRU

了解RNN模型的基础单元LSTM、GRU、RQNN 与 SRU

了解RNN模型LSTM模型GRU模型,及掌握注意力机制

GRU与LSTM总结

RNN - LSTM - GRU

深度学习RNN | GRU | LSTM