摘要
循环神经网络是一类以序列数据为输入,在序列的演进方向进行递归且所有节点按链式连接的递归神经网络。
长短期记忆(Long Short-Term Memory,LSTM)是—种时间递归神经网络(RNN),适合被用于处理和预测时间序列中间隔和延迟非常长的重要事件。解决了RNN中梯度消失、梯度爆炸以及记忆力不足的问题。
Abstract
RNN ,which is a kind of recursive neural network,takes sequence data as input, recurs in the evolution direction of the sequence, and all nodes (circulation units) are connected in chain.
LSTM which is suitable for processing and predicting important events with very long intervals and delays in time series. The problems of gradient disappearance, gradient explosion and insufficient memory in RNN are solved.
RNN
Full Connect Neural Network(全连接神经网络)可以视作拟合函数的一个黑盒子,当训练集足够时,给定特定的x,就能得到想要的输入y。但其只能处理一个个的输入并且输入前后没有关联。在某些场景下,任务需要考虑序列前后的关联性,更好的处理序列信息。
例如语法分析中,识别一句话哪个词是动词,哪个词是名词,尤其当同一个词语有时作为名词,有时作为动词时,用全连接网络是无法做到的。因此,为了处理输入是一个序列的情形,RNN便应运而生。
RNN结构如下图所示:
其中x是一个向量,它表示输入层的值,s表示隐藏层的向量,U是输入层到隐藏层的权重矩阵,o表示输出层值的向量,V是隐藏层到输出层的权重矩阵,权重矩阵 W是隐藏层上一次的值作为这一次的输入的权重。
RNN将输入看成有先后次序,不仅用本时间步的输入值来预测,同时使用前一步的激活值和本步的输入值来预测结果。即RNN同时考虑时间和前一步的结果。
RNN的核心思想:不同的时间步都使用相同的权重矩阵W。
用公式表示如下:
RNN模型优点
(1)可以处理任意长度的输入,长的输入不会增加模型的规模;
(2)由于每个时间步需要考虑前一个时间步的计算激活值,每一个时间步的计算可以利用 多个时间步之前的结果;
(3)每个时间步的权重矩阵都是共享的,故学习结果也是可以共享的,学习效率高。
RNN模型缺点
(1)RNN的计算速度较慢,因为每一个时间步都需要考虑前一个时间步的计算结果,不同的输入不能并行处理,只能按照顺序一个一个来。
(2)在真实的RNN应用中,RNN只擅长当改变x99时,S100的状态改变,很难考虑到多个时间步之前的信息,例如改变输入x1,S100的状态几乎不变。
LSTM
LSTM(Long Short-Term Memory长短期记忆),是改进后的RNN,拥有比RNN更长的记忆,主要是为了解决当序列过长时候RNN出现的梯度消失和梯度爆炸问题,相比普通的RNN,LSTM能够在长序列中有更好的表现。 LSTM 应用有:翻译语言、图像分析、文档摘要、语音识别、聊天机器人等等。
LSTM的结构如下:
简化成如下表示:
具体说明:
总结
本周具体学习RNN的概念,重点学习了RNN的改进LSTM的一些理论。