循环神经网络(Recurrent Neural Networks, RNN)主要用于时序数据,最常见的时序数据如文章,视频等,t时刻的数据与t−1时刻的数据存在内在的联系。RNN模型能够对这样的时序数据建模。
RNN模型的基本结构如下所示(图片来自参考文献):
如上图所示,循环神经网络通过使用自带反馈的神经元,能够处理任意长度的时序数据,对此结构按照时间展开的形式如下所示(图片来自参考文献):
上图中给出了RNN的内部结构,RNN根据输入输出主要可以分为以下三种:
这里以多输入单输出的情况为例,多输入单输出的具体结构如下所示:
从上述的BPTT过程来看,RNN存在长期依赖的问题,由于反向传播的过程中存在梯度消失或者爆炸的问题,简单的RNN很难建模长距离的依赖关系。