神经网络的结构分为很多种,比如有之前介绍的全连接神经网络,有卷积神经网络等。在这一章节当中,我们会介绍一种新的神经神经网络——循环神经网络(Recurrent Neural Network,RNN)。RNN是一种特殊的神经网络结构, 它是根据"人的认知是基于过往的经验和记忆"这一观点提出的. 它与CNN不同的是: 它不仅考虑前一时刻的输入,而且赋予了网络对前面的内容的一种’记忆’功能。 RNN是一类专门处理和预测序列数据的神经网络,序列数据类似于 , RNN对可变长度的序列数据有很强的处理能力,因此RNN在自然语言处理(NLP)领域起到了很大的作用,譬如机器翻译、语音识别、图像描述生成等等。
CNN和RNN的比较:CNN 需要固定长度的输入、输出,RNN 的输入和输出可以是不定长的,但是对于经典RNN而言(N vs N)输入和输出序列必须要等长的,这也是经典RNN的一个弊端,在以后的内容中我们讲到其它相关模型解决这一问题。
CNN 只有 one-to-one 一种结构,而 RNN 有多种结构,如下图:
RNN的不同结构
在接下来的内容中我们首先介绍一下循环神经网络中的简单组成和基础知识: