标准 RNN 结构在理论上完全可以实现将最初的信息保留到即使很远的时刻,但是在实践中发现 RNN 会受到短时记忆的影响。如果一条序列足够长,那它们将很难将信息从较早的时刻传送到后面的时刻。 因此,如果正在尝试处理一段文本进行预测,RNN 可能从一开始就会遗漏重要信息。比如我们尝试预测 “I grew up in France … I speak fluent French” 这句话的最后一个词 ”French“ 。当前的信息(“I speak fluent”)表明接下来的单词是很可能是语言的名字。但是需要哪种语言,我们就要根据离当前位置很远的 “France” 来确定。这就说明相关信息和当前预测词的位置之间的间隔可能非常大,随着这间隔不断变大,RNN 就会失去学习连接如此远的信息的能力。 这就是我们上面提到的 RNN 最致命的缺点。
为了解决这个问题,提出了 LSTM 。
LSTM 属于 RNN 的扩展模型,二者的区别仅在于每个单元内部结构不同。LSTM 单元结构如下。
其中,黄色矩形表示一层神经网络,包含权重和激活函数,矩形中的符号表明激活函数的类型,