第6次课-循环神经网络
1.起源
为了处理句子,神经网络要能够记住句子中词的相对关系,因此,提出来一种新的模型RNN,recurrent neural network,循环神经网络。
“买5月1日去苏州的车票”“买5月1日从苏州出发的车票”,在这两个句子中,苏州分别是目的地和出发地,所以这个时候就是要求网络有记忆。如果结合上下文,记住它之前的词“去”以及“离开”,那么就可以判断出苏州到底是出发地还是目的地。因此,要求神经网络需要有记忆力,记住上下文。
在RNN之前的神经网络,只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的.
但是,像上面的例子需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。
2.RNN(recurrent neural network,循环神经网络)
2.1RNN的主要思想就是把隐藏层/输出层的值保存在memory中,参与到新的输入的计算中。
2.2RNN的优点是使得序列处理称为可能:序列可以是输入,可以是输出,或者输入输出都是序列。
RNN使得可以处理向量序列:

第二个譬如像是输入一张图片,输出对图片的描述,图片本身作为一个向量,输出一个句子对它进行描述
第三个可以是对句子进行情感分析,输入是一个序列,输出只有一项
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更简单,效果也差不多。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!