一、提出背景
前馈神经网络不考虑数据之间的关联性,网络的输出只和当前时刻网络的输入相关。然而,现实问题中存在着很多序列型的数据(文本、语音以及视频等)。
例如:室外的温度是随着气候的变化而周期性的变化的,语言也需要通过上下文的关系来确认所表达的含义。
这些序列型的数据往往都是具有时序上的关联性的,即某一时刻网络的输出除了与当前时刻的输入相关之外,还与之前某一时刻或某几个时刻的输出相关。而前馈神经网络并不能处理好这种关联性,因为它没有记忆能力,所以前面时刻的输出不能传递到后面的时刻。
因此,就有了现在的循环神经网络,其本质是:拥有记忆的能力,并且会根据这些记忆的内容来进行推断。
循环神经网络在自然语言处理、语音识别、机器翻译等任务上取得了很大的成功。它能够捕捉到输入序列的上下文信息,从而能够更好地处理序列数据的特点。
二、原理解释
循环神经网络,是指在全连接神经网络的基础上增加了前后时序上的关系,可以更好地处理比如机器翻译等的与时序相关的问题。
RNN的目的就是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题都无能无力。
相比于词袋模型和前馈神经网络模型,RNN可以考虑到词的先后顺序对预测的影响,RNN包括三个部分:输入层、隐藏层和输出层。相对于前馈神经网络,RNN可以接收上一个时间点的隐藏状态。
三、网络结构
RNN 不是刚性地记忆所有固定长度的序列,而是通过隐藏状态来存储之前时间步的信息。
以上架构不仅揭示了 RNN 的实质:上一个时刻的网络状态将会作用于(影响)到下一个时刻的网络状态,还表明 RNN 和序列数据密切相关。同时,RNN 要求每一个时刻都有一个输入,但是不一定每个时刻都需要有输出。
四、计算方式
五、存在问题
六、结构类型