天天看点

深度学习算法原理——循环神经网络RNN1. 概述2. 算法原理参考文献

1. 概述

循环神经网络(Recurrent Neural Networks, RNN)主要用于时序数据,最常见的时序数据如文章,视频等,t时刻的数据与t−1时刻的数据存在内在的联系。RNN模型能够对这样的时序数据建模。

2. 算法原理

RNN模型的基本结构如下所示(图片来自参考文献):

深度学习算法原理——循环神经网络RNN1. 概述2. 算法原理参考文献

如上图所示,循环神经网络通过使用自带反馈的神经元,能够处理任意长度的时序数据,对此结构按照时间展开的形式如下所示(图片来自参考文献):

深度学习算法原理——循环神经网络RNN1. 概述2. 算法原理参考文献

2.1. RNN的结构

上图中给出了RNN的内部结构,RNN根据输入输出主要可以分为以下三种:

  • 多输入单输出,如文本的分类问题;
  • 单输入多输出,如描述图像;
  • 多输入多输出,又分为等长或者不等长两种情况,等长如机器作诗,不等长如seq2seq模型;

这里以多输入单输出的情况为例,多输入单输出的具体结构如下所示:

深度学习算法原理——循环神经网络RNN1. 概述2. 算法原理参考文献

2.2. RNN的计算过程

深度学习算法原理——循环神经网络RNN1. 概述2. 算法原理参考文献

2.3. RNN中参数的求解

深度学习算法原理——循环神经网络RNN1. 概述2. 算法原理参考文献

2.4. RNN存在的问题

从上述的BPTT过程来看,RNN存在长期依赖的问题,由于反向传播的过程中存在梯度消失或者爆炸的问题,简单的RNN很难建模长距离的依赖关系。

参考文献

  • Understanding LSTM Networks