LSTM的架构
LSTM简介
LSTM中文翻译为长短期记忆网络。是RNN的一种变形。LSTM可以通过网络学习到是否需要记忆或遗忘之前序列的信息,相比较之下,RNN只能机械地将之前序列的信息做无选择性地记录。与RNN一样,LSTM也可以通过前向遍历序列和后向遍历序列得到序列前后的信息。对于文本情感分析、词性标注等需要利用上下文信息的任务来说,LSTM是一个重要的模型。
LSTM的架构
LSTM之所以能做到选择性记忆,是因为LSTM引入了三个新的结构,分别是:输入门、遗忘门和输出门。如下图:
从图中可以看出,每个LSTM单元接受的输入是4个向量,这4个向量其实都是和同一个输入向量有关。以自然语言处理任务为例,假设原始的输入向量是一个词向量,将进行三次不同的线性变换得到三个向量,,,新得到的这三个向量分别作为输入门、遗忘门和输出门的输入。
非形式化地讲,输入向量首先会经过输入门,如果输入门的输出越趋向于1,则输入向量越会趋向于保留完整信息。图中的CELL即是上一时刻LSTM单元中的数据,遗忘门的作用则是输出一个权重,如果权重越趋向于1则CELL中原始的数据越趋向于保留。CELL中新存放的数据则是输入数据与经过“遗忘”操作后的旧数据之和。输出门的作用类似,输出一个权重,用于控制CELL中记忆的数据是否用于输出。
值得一提的是,上述过程之所以能对特定的数据得出特定的操作,是因为这是由训练得出来的结果。也就是说,我们并不需要人为地考虑什么时候该输入、什么时候该遗忘,这些过程都是训练的一部分,由机器决定。
形式化地说,输入向量经过三次不同的线性变换得到三个向量,,,首先经过一个激活函数得到,同时,也经过一个激活函数得到,这里通常选用Sigmoid函数,目的是将值映射到0和1之间。于是就可以看成是输出的权重,这就是与相乘的原因,得到的结果作为CELL的一部分输入。CELL的另一部分输入由遗忘门所得,为,这里也可以看成是一个权重。假设CELL中之前存放的值为,那么遗忘过后的值变为,CELL中新的值则更新为。即新值加遗忘的旧值。输出门同理,得到输出的权重,整个单元的输出值为。
下图为另一个简化的LSTM结构:
再简单提一下输入,简化的LSTM的输入仅由输入向量组成,而真正的LSTM的输入由三个部分组成,分别为当前时刻的输入向量、上一个时刻的输出和上一个时刻中CELL的值。
一些理解
从LSTM的结构不难看出,每个LSTM的单元输入为四个向量,输出为一个标量,所以把一个LSTM单元理解为MDP中的一个神经元比较合理。因为传统神经网络的一个神经元的输入就是一个向量,输出为一个值。
正因为LSTM的输入为四个向量,它的参数比相同体量的全连接神经网络多了4倍。