RNN是循环神经网络的缩写,并且也是循环网络结构中的一种,我们通常使用这种网络模型来处理序列型的数据。语音识别处理的就是一个典型的有时间顺序的序列数据,自然语言文本也是。在一个普通的DNN网络中,层与层之间是全连接的,而每层中的神经元节点之间不存在任何连接,这样的一种普通DNN网络结构难以解决很多问题。以语音识别为例,不同时刻t的语音包含的字,在推理计算时,需要根据上下文来确定应该输出为什么字符,而且结果应当跟具体所在时刻t无关,否则会出现不同时间说相同的字会产生不同的识别输出的问题。
循环网络就解决了这个问题,这有点类似于隐马尔可夫模型,对于每一时刻的输入,所产生的输出值,不仅仅依赖于当前时刻t,还依赖于前N个时刻的输出值。这主要是通过在每一个循环层单元中,添加了一个记忆单元实现的。