1.概念:RNN又名循环神经网络,是一类处理序列数据的神经网络,这个序列数据不只包括时间序列,还有文字序列等,即序列数据中后面的数据与前面的数据有关系

2.结构:

rnn需要多少样本 rnn模型是什么_权值

如上图所示,左边为RNN折叠图,右边为展开图。与基础的神经网络相比,RNN的不同之处在于在隐层之间的神经元之间也建立了权连接,随着序列的不断推进,隐层的前部将会通过W权连接影响到后部。

3.特点

(1)能够处理序列化数据,隐层神经元之间也有权连接

(2)权值共享,输入层,隐层,输出层的权值在不同序列中都相同

(3)每一个输入值只与它本身的那条线路建立权连接,不与别的神经元连接

4.其他RNN结构

除了上述标准的RNN结构之外,在实际中需要采用标准结构的变体来解决问题

(1)如果输入为一串文字,输出为分类类别,也就是多输入对单输出的问题,可以采用如下结构

rnn需要多少样本 rnn模型是什么_rnn需要多少样本_02

(2)同样,有时会碰到单输入与多输出的问题,采用如下结构

rnn需要多少样本 rnn模型是什么_神经网络_03

(3)若输入为序列,但不随时间变化,可采用如下结构

rnn需要多少样本 rnn模型是什么_rnn需要多少样本_04

(4)原始的N vs N RNN要求输入序列等长,然而有时我们遇到的大部分问题中序列不是等长的,如在机器翻译中源语言与目标语言的句子往往并没有相同的长度,这时可采用N vs M 模型,这种结构又叫Encoder-Decoder 模型,也称Seq2Seq模型

rnn需要多少样本 rnn模型是什么_rnn需要多少样本_05

顾名思义,这个结构的原理是先编码再解码,左侧的RNN用来编码得到c,再用右侧的RNN进行解码。

得到c有多种方式,最简单的方法就是把Encoder的最后一个隐状态赋值给c,还可以对最后的隐状态做一个变换得到c,也可以对所有的隐状态做变换

rnn需要多少样本 rnn模型是什么_rnn需要多少样本_06

(5)输出循环型:将输出作为循环连接,由于时间步的解耦,可以并行训练,使用导师驱动过程训练,下图训练时标记y作为循环连接输入,测试时使用输出o作为循环连接输入

rnn需要多少样本 rnn模型是什么_数据_07

(6)有向图型,没有x输入,只有y序列

rnn需要多少样本 rnn模型是什么_神经网络_08

rnn需要多少样本 rnn模型是什么_数据_09

(7)上下文型

rnn需要多少样本 rnn模型是什么_数据_10

上图主要用于图注,也就是x为图像,y为词序。通过输入图像x产生输出词序列

rnn需要多少样本 rnn模型是什么_权值_11

在标准结构中,添加一个标记到隐层的链接,表明在给定x的序列后相同长度y序列上的分布建模

(9)双向型

rnn需要多少样本 rnn模型是什么_神经网络_12

时间t的输出不仅依赖过去信息ht,还依赖未来相关的信息gt。常用于手写识别与语音识别

(10)递归型

rnn需要多少样本 rnn模型是什么_数据_13

不再构造成RNN的链状结构,而是树的深层结构,一定程度避免长期依赖问题,对于固定长度L的序列,将深度由L变为logL,可用于学习推论