什么是RNN
循环神经网络(Recurrent Neural Networks, RNN)已经被成功的应用于音乐生成、对话生成、图像生成、语音合成和分子设计。不同于传统的前向反馈神经网络(Feedforward Neural Networks, FNNS),RNNS引入了定向循环,可以处理输入之间前后关联的问题。定向循环示图如下:
RNNs的目的是处理序列数据。传统的神经网络模型中,是从输入层到隐藏层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNNs之所以称为循环神经网络,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行 记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNNs能够对任何长度的序列数据进行处理。但是实践中,为了降低复杂性往往假设当前的状态只与前面的几个状态相关。典型RNNs图示: