1. 概述

循环神经网络RNN一文中提及到了循环神经网络RNN存在长距离依赖的问题,长短期记忆(Long Short-Term Memory,LSTM)网络便是为了解决RNN中存在的梯度爆炸的问题而提出。在LSTM网络中,主要依靠引入“门”机制来控制信息的传播。

2. 算法原理

2.1. LSTM的网络结构

LSTM的网络结构如下所示(图片来自参考文献):

深度学习算法原理——LSTM_循环神经网络


与循环神经网络RNN相比,LSTM的网络结构要复杂的多。

在LSTM网络中,通过引入三个门来控制信息的传递,这三个门分别为遗忘门(forget gate),输入门(input gate)和输出门(output gate)。门机制是LSTM中重要的概念,那么什么是“门”以及门机制在LSTM中是如何解决长距离依赖的问题的。

2.2. 门机制

现实中的“门”通常解释为出入口,在LSTM网络的门也是一种出入口,但是是控制信息的出入口。门的状态通常有三种状态,分别为全开(信息通过概率为1),全闭(信息通过概率为0)以及半开(信息通过概率介于0和1之间)。在这里,我们发现对于全开,全闭以及半开三种状态下的信息通过可以通过概率来表示,在神经网络中,sigmoid函数也是一个介于0和1之间的表示,可以应用到LSTM中门的计算中。

2.3. LSTM的计算过程

如下是LSTM的网络结构的具体形态,如下所示(图片来自邱锡鹏老师的课件):

深度学习算法原理——LSTM_Memory_02

其中,深度学习算法原理——LSTM_Memory_03表示的是深度学习算法原理——LSTM_循环神经网络_04时刻的cell state(注:关于cell state,查了多个版本的中文翻译,有翻译为“细胞状态”,有翻译成“单元状态”,邱老师使用的是内部状态,没有一个明确的中文翻译,故在此使用英文),深度学习算法原理——LSTM_Memory_05表示的是深度学习算法原理——LSTM_循环神经网络_04时刻的hidden state(注:与前面的cell state对应),深度学习算法原理——LSTM_lstm_07表示的是深度学习算法原理——LSTM_lstm_08时刻的输入,深度学习算法原理——LSTM_循环神经网络_09表示的是遗忘门,深度学习算法原理——LSTM_循环神经网络_10表示的是输入门,深度学习算法原理——LSTM_bc_11表示的是候选值(candidate values),深度学习算法原理——LSTM_bc_12表示的是输出门。

从图中的数据流向得到的计算流程如下所示:

  1. 利用深度学习算法原理——LSTM_lstm_13时刻的hidden state 深度学习算法原理——LSTM_lstm_14计算遗忘门深度学习算法原理——LSTM_循环神经网络_15的结果,深度学习算法原理——LSTM_循环神经网络_15的计算公式如下所示

深度学习算法原理——LSTM_lstm_17

  1. 利用深度学习算法原理——LSTM_lstm_13时刻的hidden state 深度学习算法原理——LSTM_lstm_14计算输入门深度学习算法原理——LSTM_bc_20的结果,深度学习算法原理——LSTM_bc_20的计算公式如下所示

深度学习算法原理——LSTM_Memory_22

  1. 利用深度学习算法原理——LSTM_lstm_13时刻的hidden state 深度学习算法原理——LSTM_lstm_14计算候选值深度学习算法原理——LSTM_循环神经网络_25的结果,深度学习算法原理——LSTM_循环神经网络_25的计算公式如下所示

深度学习算法原理——LSTM_Memory_27

  1. 利用深度学习算法原理——LSTM_lstm_13时刻的hidden state 深度学习算法原理——LSTM_lstm_14计算输出门深度学习算法原理——LSTM_循环神经网络_30的结果,深度学习算法原理——LSTM_循环神经网络_30的计算公式如下所示

深度学习算法原理——LSTM_Memory_32

  1. 根据深度学习算法原理——LSTM_Memory_33时刻的cell state 深度学习算法原理——LSTM_lstm_34,这里会使用到深度学习算法原理——LSTM_lstm_13时刻的cell state 深度学习算法原理——LSTM_bc_36,遗忘门深度学习算法原理——LSTM_循环神经网络_15,输入门深度学习算法原理——LSTM_bc_20和候选值深度学习算法原理——LSTM_循环神经网络_25深度学习算法原理——LSTM_lstm_34的计算公式如下所示

深度学习算法原理——LSTM_lstm_41

上述的公式是由前面的1,2,3部分的公式组成,也是LSTM网络中的关键的部分,对该公式,我们从如下的几个部分来理解:

  • 深度学习算法原理——LSTM_lstm_42,使用遗忘门深度学习算法原理——LSTM_循环神经网络_15深度学习算法原理——LSTM_lstm_13时刻下的cell state 深度学习算法原理——LSTM_bc_36遗忘;
  • 深度学习算法原理——LSTM_Memory_46,首先是深度学习算法原理——LSTM_循环神经网络_25表示的是通过深度学习算法原理——LSTM_Memory_33时刻的输入和深度学习算法原理——LSTM_lstm_13时刻的hidden state 深度学习算法原理——LSTM_lstm_14需要增加的信息,与输入门深度学习算法原理——LSTM_bc_20结合起来就表示整体需要增加的信息;
  • 两部分结合表示的是深度学习算法原理——LSTM_Memory_33时刻下的cell state下需要从深度学习算法原理——LSTM_lstm_13时刻下的cell state中保留的部分信息以及深度学习算法原理——LSTM_Memory_33时刻下新增信息的总和。
  1. 根据输出门深度学习算法原理——LSTM_循环神经网络_30和cell state 深度学习算法原理——LSTM_lstm_34计算外部状态深度学习算法原理——LSTM_Memory_57深度学习算法原理——LSTM_Memory_57的计算公式如下所示

深度学习算法原理——LSTM_bc_59

参考文献