深度学习(十一)RNN

101 阅读2分钟

课程链接

RNN的基本特点

RNN的基本特点就是拥有储存上一次节点的输出结果的能力。这样一来,网络的循环迭代之间就是有关系的,即便是同样的输入集合,只要改变其输入序列,输出结果就会完全不一样。
在这里插入图片描述
因为这个特点,RNN可以处理文字序列(理解一段话的意思)。如下图所示,我们可以把两句话里的每个单词分别按次序输入一个RNN中,RNN可以理解这两句话不同的意思。
在这里插入图片描述
以上这种把每个结点的值存下来的称为Elamn Network,如果是把整个网络的输出存下来的称为Jordan network。
在这里插入图片描述
还有一种双向RNN,它会将一段话分别按原来的次序和反序各输入一遍。这样一来,RNN就可以同时依据上下文来理解句子了。
在这里插入图片描述

long short-term memory

RNN的节点可以选择是否输入,是否输出和是否替换储存的内容,这种就称为long short-term memory,这种节点就可以有4个输入,一个输出。
在这里插入图片描述
也可以把LSTM拆成多个节点,如下图所示。图中100,10,-10都是训练好的weight。
在这里插入图片描述
将输入的值分别乘上weight加上bias输入到三个gate的激活函数中,激活函数一般选择sigmoid函数。
在input gate中输出0则不输入,1则输入,中间值则按比重输入。output gate同理。
在forget gate中,如果输出是1则在储存值上加上输入值,如果输出是0则不改变,如果输出-1则清空储存值。

如果把每个gate画成节点的形式,并把迭代的过程画出来,就如下图所示。
在这里插入图片描述
RNN最常见的形式就是LSTM,GRU,simpleRNN三种。