前文传送门:
从零开始学自然语言处理(十九)—— 不可不知的循环神经网络(RNN)
在上一章中,我们讲到了RNN网络。
RNN由于其结构特点,可以将之前的信息带到当前时刻t中,这对于处理自然语言序列问题十分重要,例如我们预测“今天 天气晴朗 , 天空 是 蓝色”中的最后一个词“蓝色”,通过训练后的RNN可以较好做到这点,此时要预测的内容只依赖于之前较少的几个词,也就是说当前要预测内容位置和提供该预测信息的内容位置距离较短,如果将相关内容信息的节点标识为蓝色,可以见下图:
但是,有时需要预测的内容相关信息和当前预测内容的位置相隔很远,而RNN在处理这类任务上表现并不好,此时的相关信息用红色表示:
所以,这种长期依赖问题,传统的RNN并不能很好学习到。
那如何处理这种长期依赖问题呢?
幸运的是,LSTM被提出来了。
长短期记忆网络(Long short-term memory, LSTM)其实也是一种RNN网络结构,只是它的结构比我们之前提到的典型RNN结构复杂得多。LSTM由Hochreiter & Schmidhuber (1997)提出,LSTM在很多自然语言处理任务上表现较好。
LSTM能较好解决传统RNN所不能解决的长期依赖问题。
在传统的RNN结构中,结构简单,例如只有个tanh层,如下图所示:
而LSTM相比之下较为复杂,结构如下图所示:
在详细了解LSTM的结构之前,我们有必要了解上图中各种元素所代表的涵义:
黄色方框代表神经网络的层结构、粉红色的圆代表元素级的操作、单个箭头代表向量的传递、两条线合并为一代表向量的连接操作、一条线分叉为两条代表同样向量内容复制一份。
LSTM的关键在于细胞状态,下图中的淡绿色为细胞,下图中的黑色实线为细胞状态。
细胞状态对于LSTM十分重要,在LSTM中,通过门来对细胞状态做处理,门,顾名思义,是一种决定信息能否通过的结构,在LSTM中,门的结构如下所示:
它是通过一个Sigmoid神经网络层和一个元素级相乘操作组成的,
在传统的前馈神经网络中,我们知道Sigmoid神经网络层的输出通常是一个向量,并且该向量的每个元素都在0~1之间的实数,可以理解为让信息通过的占比,例如0代表不让任何信息通过门,1代表让所有信息通过门。
在LSTM中,有三种门来控制细胞状态的变化。
在下一章中,我们详细拆解LSTM中的细节内容。
扫码下图关注我们不会让你失望!