1. 概述
循环神经网络(Recurrent Neural Networks, RNN)主要用于时序数据,最常见的时序数据如文章,视频等,t时刻的数据与t−1时刻的数据存在内在的联系。RNN模型能够对这样的时序数据建模。
2. 算法原理
RNN模型的基本结构如下所示(图片来自参考文献):

如上图所示,循环神经网络通过使用自带反馈的神经元,能够处理任意长度的时序数据,对此结构按照时间展开的形式如下所示(图片来自参考文献):
2.1. RNN的结构
上图中给出了RNN的内部结构,RNN根据输入输出主要可以分为以下三种:
- 多输入单输出,如文本的分类问题;
- 单输入多输出,如描述图像;
- 多输入多输出,又分为等长或者不等长两种情况,等长如机器作诗,不等长如seq2seq模型;
这里以多输入单输出的情况为例,多输入单输出的具体结构如下所示:
2.2. RNN的计算过程
2.3. RNN中参数的求解
2.4. RNN存在的问题
从上述的BPTT过程来看,RNN存在长期依赖的问题,由于反向传播的过程中存在梯度消失或者爆炸的问题,简单的RNN很难建模长距离的依赖关系。
参考文献
- Understanding LSTM Networks