长短期记忆神经网络lstm理论讲解

一、应用背景

循环神经网络RNN的局限性,RNN工作原理如图:

长短期记忆神经网络lstm理论讲解_第1张图片

RNN利用了神经网络的“内部循环”来保留时间序列的上下文信息,可以使用过去的信号数据来推测对当前信号的理解,这是非常重要的进步,并且理论上RNN可以保留过去任意时刻的信息。但实际使用RNN时往往遇到问题,请看下面这个例子。

假如我们构造了一个语言模型,可以通过当前这一句话的意思来预测下一个词语。现在有这样一句话:“我是一个中国人,出生在普通家庭,我最常说汉语,也喜欢写汉字。我喜欢妈妈做的菜”。我们的语言模型在预测“我最常说汉语”的“汉语”这个词时,它要预测“我最长说”这后面可能跟的是一个语言,可能是英语,也可能是汉语,那么它需要用到第一句话的“我是中国人”这段话的意思来推测我最常说汉语,而不是英语、法语等。而在预测“我喜欢妈妈做的菜”的最后的词“菜”时并不需要“我是中国人”这个信息以及其他的信息,它跟我是不是一个中国人没有必然的关系。

但是语言的最常说的语言和最前的语句并没有太大的关系,和汉语有关,因此RNN虽然在理论上可以保留所有历史时刻的信息,但在实际使用时,信息的传递往往会因为时间间隔太长而逐渐衰减,传递一段时刻以后其信息的作用效果就大大降低了。因此,普通RNN对于信息的长期依赖问题没有很好的处理办法。

为了克服这个问题,Hochreiter等人在1997年改进了RNN,提出了一种特殊的RNN模型——LSTM网络,可以学习长期依赖信息,在后面的20多年被改良和得到了广泛的应用,并且取得了极大的成功。

二、算法原理

lstm改进RNN的算法,并不是将结构形成一个简单的tanh函数,并将其改进成4个重要的结构,大致的图像如下图所示:

长短期记忆神经网络lstm理论讲解_第2张图片

对上图的解释作以下符号说明:

长短期记忆神经网络lstm理论讲解_第3张图片
黄色方块:表示一个神经网络层(Neural Network Layer);
粉色圆圈:表示按位操作或逐点操作(pointwise operation),例如向量加和、向量乘积等;
单箭头:表示信号传递(向量传递);
合流箭头:表示两个信号的连接(向量拼接);
分流箭头:表示信号被复制后传递到2个不同的地方。
长短期记忆神经网络lstm理论讲解_第4张图片
长短期记忆神经网络lstm理论讲解_第5张图片

2.1、遗忘门

长短期记忆神经网络lstm理论讲解_第6张图片

2.2、记忆门

长短期记忆神经网络lstm理论讲解_第7张图片

2.3、更新细胞状态

长短期记忆神经网络lstm理论讲解_第8张图片

2.4、输出门

长短期记忆神经网络lstm理论讲解_第9张图片

你可能感兴趣的:(深度学习,神经网络,算法,人工智能,python,深度学习)