zoukankan      html  css  js  c++  java
  • How to Construct Deep Recurrent Neural Networks

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!

    ICLR, (2014)

    Abstract

      在本文中,我们探索了将RNN扩展到深度RNN的不同方法。我们首先争论说,RNN中的深度概念并不像前馈神经网络中的概念那么清晰。通过仔细分析和理解RNN的结构,我们发现RNN的三个方面可能会变得更深:(1) 输入-隐含函数, (2) 隐含到隐含转换,以及(3) 隐含-输出函数。基于此观察结果,我们提出了两种深度RNN的新颖架构,它们与堆叠多个循环层以构建深度RNN的早期尝试正交(Schmidhuber, 1992; El Hihi and Bengio, 1996)。我们使用基于神经算子的新颖框架为这些深度RNN提供了另一种解释。深度RNN被提出以在和弦音乐预测和语言建模的任务上进行了经验评估。实验结果支持了我们的观点,即所提出的深度RNN受益于深度,并且优于传统的浅层RNN。

    1 Introduction

      循环神经网络(RNN,例如Rumelhart et al., 1986)最近已成为建模可变长度序列的流行选择。RNN已成功用于各种任务,例如语言建模(例如Graves, 2013; Pascanu et al., 2013a; Mikolov, 2012; Sutskever et al., 2011),学习词向量(例如Mikolov et al., 2013a),在线手写识别(Graves et al., 2009)和语音识别(Graves et al., 2013)。
      在这项工作中,我们探索了基本RNN的深度扩展。前馈模型的深度可以导致更具表现力的模型(Pascanu et al., 2013b),我们认为循环模型也应如此。我们声称,与前馈神经网络不同,RNN的深度是模棱两可的。从某种意义上说,如果我们认为神经网络中存在多个非线性计算层的组合很深,则RNN已经很深,因为任何RNN在时间展开时都可以表示为多个非线性层的组合。
      Schmidhuber (1992); El Hihi and Bengio (1996)早些时候提出了另一种构建深度RNN的方法,即将多个循环出现的隐含状态彼此叠加。这种方法潜在地允许每个级别的隐含状态在不同的时间尺度上运行(例如,参见Hermans and Schrauwen, 2013)。尽管如此,我们注意到该模型的其他方面仍可能被认为是浅的。例如,当分开看时,单个级别上两个连续隐含状态之间的转换很浅,这影响了该模型可以表示哪种转换,如3.2.3节所述。

      基于此观察,在本文中,我们研究了将RNN扩展为深度RNN的可能方法。我们首先研究RNN的哪些部分可能被认为很浅。然后,对于每个较浅的部分,我们提出了另一种更深的设计,这导致了RNN的许多更深的变体。然后根据经验对两个序列建模任务评估提出的更深变体。

      本文的布局如下。在第2节中,我们简要介绍了RNN的概念。在第3节中,我们探讨了RNN中深度的不同概念。特别是,在第3.3.1–3.3.2节中,我们提出了深度RNN的两个新颖变体,并在第5节中对两项任务进行了经验评估:和弦音乐预测(Boulanger-Lewandowski et al., 2012)和语言建模。最后,我们将在第6节中讨论所提出模型的缺点和优势。

    2 Recurrent Neural Networks

      RNN是一种神经网络,它模拟具有输入xt,输出yt和隐含状态ht的离散时间动态系统。在我们的表示法中,下标 t 代表时间。动态系统定义为:

    其中fh和fo分别是状态转换函数和输出函数。每个函数由一组参数(θh和θo)进行参数化。

      给定一组N个训练序列,可以通过最小化以下成本函数来估计RNN的参数:

    其中,d(a, b)是a和b之间的预定义散度测度,例如欧氏距离或交叉熵。

    2.1 Conventional Recurrent Neural Networks

      通过将转换函数和输出函数定义为:

    其中W,U和V分别是转换矩阵,输入和输出矩阵,Φh和Φo是逐元素非线性函数。通常,对于Φh使用饱和非线性函数,例如对数sigmoid函数或双曲正切函数。该RNN的图示在图2(a)中。
      常规RNN的参数可以通过算法进行估计,例如通过时间反向传播(Rumelhart et al., 1986)计算等式(3)中成本函数梯度的随机梯度下降(SGD)算法。

    3 Deep Recurrent Neural Networks

    3.1 Why Deep Recurrent Neural Networks?

      深度学习是建立在以下假设之上的:一种深层的模型在表示某些函数上比浅层模型更有效(Bengio, 2009)。最近的许多理论结果都支持这一假设(例如,Le Roux and Bengio, 2010; Delalleau and Bengio, 2011; Pascanu et al., 2013b)。例如,Delalleau and Bengio (2011)已证明,与浅层加权和网络相比,深层加权和网络可能只需要指数减少的单位来表示相同的函数。此外,有大量的经验证据支持这一假说(例如,Goodfellow et al., 2013; Hinton et al., 2012b, a)。这些发现使我们怀疑,同样的论点也应适用于RNN。

    3.2 Depth of a Recurrent Neural Network

      在前馈神经网络的情况下,深度定义为在输入和输出之间具有的多个非线性层。不幸的是,由于其时间结构,该定义不适用于RNN。例如,如图1所示在时间上展开的任何RNN都很深,因为在时间k<t的输入到时间 t 的输出之间的计算路径跨越了几个非线性层。
      然而,对RNN(参见图2(a))在每个时间步骤上计算的仔细分析表明,某些转换并不深,而仅仅是线性投影的结果,随后是逐元素非线性。很明显,在没有中间非线性隐含层的意义上,隐含-隐含(ht-1 → ht),隐含-输出(ht → yt)和输入-隐含(xt → ht)函数都是浅的。
      现在,我们可以通过分别考虑这些转换来考虑RNN深度的不同类型。通过在两个连续的隐含状态(ht-1和ht)之间具有一个或多个中间非线性层,可以使隐含-隐含的转换更深。同时,如前所述,通过在隐含状态ht和输出yt之间插入多个中间非线性层,可以使隐含-输出函数更深。这些选择中的每一个都有不同的含义。

    3.2.1 Deep Input-to-Hidden Function

    3.2.2 Deep Hidden-to-Output Function

    3.2.3 Deep Hidden-to-Hidden Transition

    3.2.4 Stack of Hidden States

    3.3 Formal descriptions of deep RNNs

    3.3.1 Deep Transition RNN

    3.3.2 Deep Output RNN

    3.3.3 Stacked RNN

      堆叠式RNN (Schmidhuber, 1992; El Hihi and Bengio, 1996)具有多个层次的转换函数,其定义为:

    其中是时间 t 处第 l 级的隐含状态。当l = 1时,使用xt代替来计算状态。从最低级别l = 1递归计算所有级别的隐含状态。

      一旦计算出顶级隐含状态,就可以使用公式(5)中的常用公式获得输出。或者,可以使用所有隐含状态来计算输出(Hermans and Schrauwen, 2013)。每个级别的每个隐含状态也可以取决于输入(Graves, 2013)。可以将它们都视为使用前面讨论的快捷连接的方法。

      这种堆叠式RNN的图示在图2(d)中。

    4 Another Perspective: Neural Operators

    5 Experiments

    5.1 Model Descriptions

    5.2 Training

    5.3 Result and Analysis

    5.3.1 Polyphonic Music Prediction

    5.3.2 Language Modeling

    6 Discussion

  • 相关阅读:
    面向对象--接口的实际应用--制定标准
    iconv命令 gbk 转 UTF-8
    map,list
    springMVC配置(XML配置详解)
    关于git-Git 分支管理和冲突解决
    使用Intellij idea开发
    Centos7.2 Install subversion server
    Nginx 多域名配置
    Nginx 解析PHP的原理 | CGI、FastCGI及php-fpm的关系
    Centos7 Yum安装 PHP5.5,5.6,7.0
  • 原文地址:https://www.cnblogs.com/lucifer1997/p/13615116.html
Copyright © 2011-2022 走看看