深度学习(十)之序列建模:循环和递归网络①

循环神经网络RNN是一类用于处理序列数据的神经网络。就像卷积网络是专门用于处理网格化数据X(如一个图像)的神经网络,循环神经网络是专门用于处理序列 的神经网络。正如卷积网络可以很容易地扩展到具体宽度和高度的图像,以及处理大小可变的图像,循环网络可以扩展到更长的序列(比不基于序列的特化网络长得多)。大多数循环网络也能处理可变长度的序列。

10.1 展开计算图

计算图是形式化一组计算结构的方式,如那些涉及将输入和参数映射到输出和损失的计算。我们对展开递归或循环计算得到的重复结构进行解释,这些重复结构通常对应于一个事件链。展开这个计算图将导致深度网络结构中的参数共享。 
例如,考虑动态系统的经典形式: 

其中称为系统的状态。s在时刻t的定义需要参考时刻t-1时同样的定义,因此上式是循环的。

展开计算图如下图所示:

作为另一个例子,我们考虑有外部信号 驱动的动态系统: 

我们可以看到,当前状态包含了整个过去序列的信息。循环神经网络可以通过许多不同的方式建立。就像几乎所有函数都可以被认为是前馈网络,本质上任何涉及循环的函数都可以被认为是一个循环神经网络。 
很多循环神经网络使用下式或类似的公式定义隐藏单元的值。为了表明状态是网络的隐藏单元,我们使用变量h代表状态重写: 

如下图所示,典型RDD会增加额外的架构特性,如读取状态信息h进行预测的输出层。

10.2 循环神经网络

基于上节中的图展开和参数共享的思想,我们可以设计各种循环神经网络。

循环神经网络一些重要的设计模式包括以下几种:

  1. 每个时间步都有输出,并且隐藏单元之间有循环连接的循环网络。上图即是

  2. 每个时间步都产生一个输出,只有当前时刻的输出到下个时刻的隐藏单元之间有循环理解的循环网络。 

  3. 隐藏单元之间存在循环连接,但读取整个序列后产生单个输出的循环网络 

任何图灵可计算的函数都可以通过这样一个有限维的循环网络计算。RNN结果若果时间步后读取输出,这与由图灵机所用的时间步是渐近线性的,与输出长度也是渐近线性的。

10.2.1 计算循环神经网络的梯度

计算循环神经网络的梯度是容易的。我们可以简单地将第6.5.6节中的推广反向传播算法应用于展开的计算图,而不需要特殊化的算法。有反向传播计算得到的梯度,并结合任何通用的基于梯度的技术就可以训练RNN。

10.3 双向RNN

双向RNN结合时间上从序列起点开始移动的RNN和另一个时间上从序列末尾开始移动的RNN。如下图所示,展示了典型的思想RNN,其中h(t)代表通过时间向前移动的子RNN的状态,g(t)代表通过时间向后移动的子RNN的状态。这允许输出单元o(t)能够计算同时依赖于过去和未来且对时刻t的输入最敏感的表示,而不必指定t周围固定大小的窗口(这是前馈网络、卷积网络或具有固定大小的先行缓存器的常规RNN所必须要做的)

这种想法可以自然地扩展到2维输入,如图像,由四个RNN组成,每一个沿着四个方向中的一个计算:上、下、左、右。

10.4 基于编码-解码的序列到序列架构

本节主要讨论如何训练RNN,使其将输入序列映射到不一定等长的输出序列。这在许多场景都有应用,如语音识别、机器翻译或问答,其中训练集的输入和输出序列的长度通常不相同(虽然它们的长度可能相关)。

我们经常将RNN的输入称为“上下文”。我们希望产生此上下文的表示,C。这个上下文C可能是一个概括输入序列 的向量或者向量序列。

编码-解码或者序列到序列架构,如下图所示。这个想法非常简单:

  1. 编码器或者读取器或**输入**RNN处理输入序列。编码器输出上下文C(通常是最终隐藏状态的简单函数)。

  2. 解码器写入器或**输出**RNN则以固定长度的向量为条件产生输出序列。

10.5 深度循环网络

大多数RNN中的计算可以分解成三块参数及其相关的变换:

  1. 从输入到隐藏状态,

  2. 从前一隐藏状态到下一隐藏状态

  3. 从隐藏状态到输出。

    当网络被展开是,每个块对于一个浅的变换。能通过深度MLP内单个层来表示的变换称为浅变换。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值