RNN-循环神经网络(Recurrent Neural Networks),也叫递归神经网络。Recurrent一般指时间序列上的递归或者循环,也有一种叫做Recursive neural network的神经网络,通常指网络结构递归类型的,要注意区分。时间递归神经网络的神经元间连接构成矩阵,而结构递归神经网络利用相似的神经网络结构递归构造更为复杂的深度网络(--维基百科)。
RNN最牛逼的应用是处理序列数据,比如一维信号的文字和语音信号方面。传统神经网络模型,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的(这是重点)。但是这种普通的神经网络对于很多问题却无能无力。不能像人一样基于前后文理解语义。RNNs之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNN能够对任何长度的序列数据进行处理。但是在实践中,为了降低复杂性往往假设当前的状态只与前面的几个状态相关。
RNN的变种较多,比较成熟的模型为LSTM,详细参考https://www.jianshu.com/p/9dc9f41f0b29。