第6次课-循环神经网络

1.起源

为了处理句子,神经网络要能够记住句子中词的相对关系,因此,提出来一种新的模型RNN,recurrent neural network,循环神经网络。

“买5月1日去苏州的车票”“买5月1日从苏州出发的车票”,在这两个句子中,苏州分别是目的地和出发地,所以这个时候就是要求网络有记忆。如果结合上下文,记住它之前的词“去”以及“离开”,那么就可以判断出苏州到底是出发地还是目的地。因此,要求神经网络需要有记忆力,记住上下文

在RNN之前的神经网络,只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的.

但是,像上面的例子需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。

2.RNN(recurrent neural network,循环神经网络)

2.1RNN的主要思想就是把隐藏层/输出层的值保存在memory中,参与到新的输入的计算中。

2.2RNN的优点是使得序列处理称为可能:序列可以是输入,可以是输出,或者输入输出都是序列。

RNN使得可以处理向量序列:

img
  • 第二个譬如像是输入一张图片,输出对图片的描述,图片本身作为一个向量,输出一个句子对它进行描述

  • 第三个可以是对句子进行情感分析,输入是一个序列,输出只有一项

2.3RNN为什么会有记忆功能呢?

因为在下一次的计算中,隐藏单元也和输入一起参与了运算。我们知道隐藏单元是输入的计算结果;因此可以在一定程度上保留输入的信息。

3.LSTM是(long short-term memory)长短期记忆网络

3.1为何要提出长的短期记忆网络呢?

隔得太远,RNN会失效;LSTM提出的主要目标是让网络具有较长远的记忆。

3.2结构

LSTM和RNN的整体架构是一样的,但是 中间的模块的结构不同。相比于一般的RNN,LSTM的“循环单元”有四个网络结构,相互影响.

这里有三个门,分别是 forget gate,input gate和output gate。input gate用于控制有多少的输入可以被加入到cell中;output gate用于控制新的cell中的内容有多少可以被输出;forget gate用于控制旧的cell中的内容有多少可以保存。至于门到底是打开,还是关闭,这就是网络自己学习到的。

LSTM的第一步是决定需要从cell状态中扔掉什么样的信息,由“遗忘门(forget gate)”的sigmoid层决定.

第二步是决定我们需要在cell state里存储什么样的信息

在决定需要遗忘和需要加入的记忆之后,就可以更新旧的cell state

最后,我们需要决定要输出的东西

LSTM的性能好于RNN,和它4倍于RNN的系数关系很大。

3.lstm 如何来避免梯度消失?

4.GRU

Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。

GRU更简单,效果也差不多。