论文名称:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling
论文下载:https://arxiv.org/abs/1803.01271
论文年份:2018
论文被引:2154(2022/04/22)
论文代码:https://github.com/locuslab/TCN

Abstract

For most deep learning practitioners, sequence modeling is synonymous with recurrent networks. Yet recent results indicate that convolutional architectures can outperform recurrent networks on tasks such as audio synthesis and machine translation. Given a new sequence modeling task or dataset, which architecture should one use? We conduct a systematic evaluation of generic convolutional and recurrent architectures for sequence modeling. The models are evaluated across a broad range of standard tasks that are commonly used to benchmark recurrent networks. Our results indicate that a simple convolutional architecture outperforms canonical recurrent networks such as LSTMs across a diverse range of tasks and datasets, while demonstrating longer effective memory. We conclude that the common association between sequence modeling and recurrent networks should be reconsidered, and convolutional networks should be regarded as a natural starting point for sequence modeling tasks. To assist related work, we have made code available at http://github.com/locuslab/TCN.

对于大多数深度学习从业者来说,序列建模是循环网络的代名词。然而最近的结果表明,卷积架构在音频合成和机器翻译等任务上的性能优于循环网络。给定一个新的序列建模任务或数据集,应该使用哪种架构?我们对用于序列建模的通用卷积和循环架构进行了系统评估。这些模型在广泛的标准任务中进行评估,这些标准任务通常用于对循环网络进行基准测试。我们的结果表明,简单的卷积架构在各种任务和数据集上都优于典型的循环网络,例如 LSTM,同时展示了更长的有效记忆。我们得出结论,应该重新考虑序列建模和循环网络之间的共同关联,并且应该将卷积网络视为序列建模任务的自然起点

1. Introduction

深度学习从业者通常将循环架构视为序列建模任务的默认起点。深度学习规范教科书中的序列建模章节标题为 “Sequence Modeling: Recurrent and Recursive Nets” (Goodfellow et al., 2016),捕捉了序列建模和递归架构的共同关联。近期备受好评的“序列模型”在线课程专注于循环架构(Ng, 2018)。

另一方面,最近的研究表明,某些卷积架构可以在音频合成、词级语言建模和机器翻译方面达到最先进的精度(van den Oord et al., 2016; Kalchbrenner et al., 2016; Dauphin et al., 2017; Gehring et al., 2017a;b)。这就提出了一个问题,卷积序列建模的这些成功是否仅限于特定的应用领域,或者是否需要对序列处理和循环网络之间的关联进行更广泛的重新考虑

我们通过对广泛的序列建模任务的卷积和循环架构进行系统的经验评估来解决这个问题。我们专门针对一组全面的任务,这些任务已被反复用于比较不同循环网络架构的有效性。这些任务包括复调音乐建模、单词和字符级别的语言建模,以及经过精心设计并经常用于基准 RNN 的合成压力测试。因此,我们的评估旨在比较卷积和循环方法在循环网络的“主场”上进行序列建模

为了表示卷积网络,我们描述了一种适用于所有任务的通用时间卷积网络 (TCN) 架构。这种架构是由最近的研究提供的,但故意保持简单,结合了现代卷积架构的一些最佳实践。它与 LSTM 和 GRU 等规范的循环架构进行了比较。

结果表明,在广泛的序列建模任务中,TCN 令人信服地优于基线循环架构。这一点尤其值得注意,因为这些任务包括通常用于评估循环网络设计的各种基准(Chung et al., 2014; Pascanu et al., 2014; Jozefowicz et al., 2015; Zhang et al., 2016)。这表明最近卷积架构在音频处理等应用中的成功并不局限于这些领域

为了进一步理解这些结果,我们更深入地分析了循环网络的记忆保留特性。我们表明,尽管循环架构具有捕获无限长历史的理论能力,但 TCN 表现出更长的内存,因此更适合需要长历史的领域

据我们所知,所提出的研究是对序列建模任务上的卷积和循环架构进行的最广泛的系统比较。结果表明,应该重新考虑序列建模和循环网络之间的共同关联TCN 架构看起来不仅比 LSTM 和 GRU 等规范循环网络更准确,而且更简单、更清晰。因此,它可能是将深度网络应用于序列的更合适的起点

2. Background

几十年来,卷积网络 (LeCun et al., 1989) 已应用于序列 (Sejnowski & Rosenberg, 1987; Hinton, 1989)。

  • 它们在 80 年代和 90 年代主要用于语音识别(Waibel et al., 1989; Bottou et al., 1990)。
  • ConvNets 随后被应用于 NLP 任务,例如词性标注和语义角色标注(Collobert & Weston, 2008; Collobert et al., 2011; dos Santos & Zadrozny, 2014)。
  • 最近,卷积网络被应用于句子分类 (Kalchbrenner et al., 2014; Kim, 2014) 和文档分类 (Zhang et al., 2015; Conneau et al., 2017; Johnson & Zhang, 2015; 2017)。
  • 对我们的工作特别鼓舞人心的是最近将卷积架构应用于机器翻译(Kalchbrenner et al., 2016; Gehring et al., 2017a;b)、音频合成(van den Oord et al., 2016)和语言建模(Dauphin et al., 2017)。

循环网络是专用的序列模型,它维护一个随时间传播的隐藏激活向量(Elman, 1990; Werbos, 1990; Graves, 2012)。由于在语言建模(Sutskever et al., 2011; Graves, 2013; Hermans & Schrauwen, 2013)和机器翻译(Sutskever et al., 2014; Bahdanau et al., 2015)。循环建模的直观吸引力在于,隐藏状态可以作为迄今为止在序列中看到的所有内容的表示。众所周知,基本的 RNN 架构难以训练(Bengio et al., 1994; Pascanu et al., 2013),而通常使用更复杂的架构,例如 LSTM(Hochreiter & Schmidhuber, 1997)和 GRU(Cho et al., 2014)。许多其他用于循环网络的架构创新和训练技术已经被引入并继续积极探索(El Hihi & Bengio, 1995; Schuster & Paliwal, 1997; Gers et al., 2002; Koutnik et al., 2014; Le et al. ., 2015; Ba et al., 2016; Wu et al., 2016; Krueger et al., 2017; Merity et al., 2017; Campos et al., 2018)。

已经进行了多项实证研究来评估不同循环架构的有效性。这些研究的部分动机是此类架构设计中的许多自由度

  • Chung et al. (2014) 在复调音乐建模任务中比较了不同类型的循环单元(LSTM 与 GRU)。
  • Pascanu et al. (2014) 探索了构建深度 RNN 的不同方法,并评估了不同架构在复调音乐建模、字符级语言建模和单词级语言建模方面的性能。
  • Jozefowicz et al. (2015) 搜索了一万多个不同的 RNN 架构,并评估了它们在各种任务上的性能。他们得出的结论是,如果存在“比 LSTM 更好的架构”,那么它们“并非易事”。
  • Greff et al. (2017) 对八种 LSTM 变体在语音识别、手写识别和和弦音乐建模方面的性能进行了基准测试。他们还发现“没有一个变体可以显着改进标准 LSTM 架构”。
  • Zhang et al. (2016) 系统地分析了 RNN 的连接架构,并评估了字符级语言建模和合成压力测试的不同架构。
  • Melis et al. (2018) 在词级和字符级语言建模上对基于 LSTM 的架构进行了基准测试,并得出结论“LSTM 优于最新模型”。

最近的其他工作旨在结合 RNN 和 CNN 架构的各个方面。这包括

  • ConvLSTM (Shi et al., 2015),将 LSTM 中的全连接层替换为卷积层,以允许在循环层中添加额外的结构
  • Quasi-RNN 模型 (Bradbury et al., 2017),将卷积层与简单的循环层交错
  • dilated RNN (Chang et al., 2017),它为循环架构增加了空洞卷积

虽然这些组合在结合两种架构的理想方面方面显示出希望,但我们在这里的研究重点是比较通用卷积和循环架构。

3. Temporal Convolutional Networks

我们首先描述卷积序列预测的通用架构。我们的目标是将卷积网络设计中的最佳实践提炼成一个简单的架构,可以作为一个方便但强大的起点。我们将所呈现的架构称为时间卷积网络(TCN),强调我们采用这个术语不是作为真正新架构的标签,而是作为一系列架构的简单描述性术语。注意,该术语之前已使用过(Lea et al., 2017)。TCN 的显着特征是:

  • 1)架构中的卷积是因果关系,这意味着没有从未来到过去的信息“泄漏”;
  • 2)该架构可以采用任意长度的序列并将其映射到相同长度的输出序列,就像使用 RNN 一样。

除此之外,我们强调如何使用非常深的网络(通过残差层增强)和空洞卷积(dilated convolutions)来构建非常长的有效历史大小(即,网络能够查看非常远的过去进行预测)。

我们的架构受到最近用于序列数据的卷积架构的启发(van den Oord et al., 2016; Kalchbrenner et al., 2016; Dauphin et al., 2017; Gehring et al., 2017a;b),但不同于它们,是根据第一性原理设计的,结合了简单性、自回归预测和非常长的记忆。例如,TCN 比 WaveNet 简单得多(van den Oord et al., 2016)(没有跨层的跳过连接、调节、上下文堆叠或门控激活)。

与 Dauphin 等人 (2017) 的语言建模架构相比,TCN 不使用门控机制并且具有更长的记忆

3.1. Sequence Modeling

在定义网络结构之前,我们强调序列建模任务的性质。假设给定一个输入序列 x0,...,xTx_0, . . . , x_Tx0​,...,xT​, 并希望预测每个时刻相应的输出 y0,...,yTy_0, . . . , y_Ty0​,...,yT​。关键约束是,要预测某个时间 ttt 的输出 yty_tyt​,我们被限制为仅使用之前观察到的那些输入: x0,...,xtx_0,. . . , x_tx0​,...,xt​ 。形式上,序列建模网络是产生以下映射的任何函数 f:XT+1→YT+1f : X^{T +1} → Y^{T +1}f:XT+1→YT+1:

如果它满足 yty_tyt​ 仅取决于 x0,...,xtx_0,. . . , x_tx0​,...,xt​ 的因果约束而不是任何“未来”输入 xt+1,...,xTx_{t+1}, . . . , x_Txt+1​,...,xT​。在序列建模设置中学习的目标是找到一个网络 fff 最小化实际输出和预测之间的一些预期损失 L(y0,...,yT,f(x0,...,xT))L(y_0, . . . , y_T , f(x_0, . . . , x_T))L(y0​,...,yT​,f(x0​,...,xT​)),其中序列和输出是根据某种分布绘制的。

这种形式包含许多设置,例如自回归预测(我们尝试在给定过去的情况下预测某些信号),通过将目标输出设置为简单地移动一个时间步长作为下一步的输入。然而,它并不直接捕获机器翻译或序列到序列预测等领域,因为在这些情况下,整个输入序列(包括“未来”状态)可用于预测每个输出(尽管这些技术自然可以扩展到在这样的环境中工作)。

3.2. Causal Convolutions

如上所述,TCN 基于两个原则:网络产生与输入长度相同的输出,以及过去不能获取未来的信息

  • 为了实现第一点,TCN 使用一维全卷积网络 (FCN) 架构 (Long et al., 2015),其中每个隐藏层的长度与输入层相同,长度填充为零(核函数大小 -添加 1) 以保持后续层的长度与之前的层相同
  • 为了实现第二点,TCN 使用因果卷积,即时间 t 的输出仅与时间 t 和前一层中更早的元素进行卷积

简单来说:TCN = 1D FCN + 因果卷积

请注意,这与 Waibel 等人(1989)提出的时间延迟神经网络架构本质上是相同的,通过零填充的唯一调整来确保所有层的大小相等

这种基本设计的一个主要缺点是,为了获得较长的有效历史大小,我们需要一个非常深的网络或非常大的滤波器,这两种方法在最初引入这些方法时都不是特别可行。因此,在以下部分中,我们将描述如何将现代卷积架构的技术集成到 TCN 中,以允许非常深的网络和非常长的有效历史。

3.3. Dilated Convolutions

一个简单的因果卷积只能回顾网络深度中大小线性的历史。这使得将上述因果卷积应用于序列任务,尤其是那些需要较长历史的任务变得具有挑战性。我们在这里的解决方案,遵循 Oord et al. (2016) 的工作,是采用空洞卷积(dilated convolutions,也称为膨胀卷积)来实现指数级大的感受野(Yu & Koltun,2016)。更正式地说,对于一维序列输入 x∈Rnx ∈ \R^nx∈Rn 和一个滤波器 f:{0,...,k−1}→Rf : \{0, . . . , k − 1\} → \Rf:{0,...,k−1}→R,对序列元素 sss 的空洞卷积运算 FFF 定义为

其中 ddd 是膨胀因子,kkk 是滤波器大小,s−d⋅is - d · is−d⋅i 代表过去的方向。因此,膨胀等效于在每两个相邻的滤波器抽头之间引入一个固定步长当 ddd = 1 时,空洞卷积退化为常规卷积。使用更大的膨胀因子使得顶层的输出能够代表更广泛的输入,从而有效地扩展了 ConvNet 的感受野

两种增加 TCN 感受野的方法

  • 选择更大的滤波器大小 kkk
  • 增加膨胀因子 ddd,其中一个这样的层的有效历史是 (k−1)d(k-1)d(k−1)d。在使用空洞卷积时很常见,随着网络的深度呈指数增加 ddd(即,在网络的第 iii 层,d=O(2i)d = O(2^i)d=O(2i))。

这确保了有一些滤波器会命中有效历史记录中的每个输入,同时还允许使用深度网络获得非常大的有效历史记录。我们在图 1(a) 中提供了一个说明。

3.4. Residual Connections

残差块 (He et al., 2016) 包含一个分支,引出一系列转换 F,其输出被添加到块的输入 x:

这有效地允许层学习对恒等映射的修改,而不是整个转换,这已被反复证明有利于非常深的网络

由于 TCN 的感受野取决于网络深度 n 以及滤波器大小 k 和膨胀因子 d,因此更深和更大的 TCN 的稳定性变得很重要。例如,在预测可能取决于大小为 2122^{12}212 的历史和高维输入序列的情况下,可能需要多达 12 层的网络。更具体地说,每一层由用于特征提取的多个滤波器组成。因此,在设计通用 TCN 模型时,我们使用通用残差模块代替卷积层

我们的基线 TCN 的残差块如图 1(b) 所示。在残差块内,TCN 有两层扩张因果卷积和非线性,为此我们使用了整流线性单元 (ReLU) (Nair & Hinton, 2010)。对于归一化,我们将权重归一化 (Salimans & Kingma, 2016) 应用于卷积滤波器。此外,在每个空洞卷积之后添加了空间 dropout (Srivastava et al., 2014) 以进行正则化:在每个训练步骤中,将整个通道归零

然而,在标准 ResNet 中,输入直接添加到残差函数的输出中,而在 TCN(以及一般的 ConvNets)中,输入和输出可能具有不同的宽度。为了考虑不同的输入输出宽度,我们使用额外的 1x1 卷积来确保元素加法 ⊕ 接收相同形状的张量(参见图 1(b,c))。

3.5. Discussion

我们通过列出使用 TCN 进行序列建模的几个优点和缺点来结束本节。

  • 并行性(Parallelism)与在 RNN 中对后续时间步的预测必须等待其前任完成的情况不同,卷积可以并行完成,因为每一层都使用相同的滤波器。因此,在训练和评估中,长输入序列可以在 TCN 中作为一个整体进行处理,而不是像在 RNN 中那样按顺序处理
  • 灵活的感受野大小(Flexible receptive field size)TCN 可以通过多种方式改变其感受野大小。例如,堆叠更多扩张(因果)卷积层、使用更大的膨胀因子或增加滤波器大小都是可行的选择(可能有不同的解释)。因此,TCN 可以更好地控制模型的内存大小,并且易于适应不同的领域。
  • 稳定的梯度(Stable gradients)。与循环架构不同,TCN 的反向传播路径与序列的时间方向不同。因此,TCN 避免了梯度爆炸/消失的问题,这是 RNN 的一个主要问题,并导致了 LSTM、GRU、HF-RNN(Martens & Sutskever,2011)等的发展。
  • 训练时内存要求低。特别是在输入序列较长的情况下,LSTM 和 GRU 很容易占用大量内存来存储它们的多个单元门的部分结果。而在 TCN 中,滤波器跨层共享,反向传播路径仅取决于网络深度。因此,在实践中,我们发现门控 RNN 可能比 TCN 使用更多的内存。
  • 可变长度输入。就像 RNN 以循环方式对可变长度的输入进行建模一样,TCN 也可以通过滑动 1D 卷积核来接收任意长度的输入。这意味着 TCN 可以作为 RNN 的替代品,用于任意长度的序列数据

使用 TCN 也有两个明显的缺点。

  • 评估期间的数据存储。在评估/测试中,RNN 只需保持隐藏状态并获取当前输入 xt 即可生成预测。换句话说,整个历史的“摘要”由一组固定长度的向量 ht 提供,而实际观察到的序列可以被丢弃。相比之下,TCN 需要接收到有效历史长度的原始序列,因此在评估期间可能需要更多内存
  • 域迁移的潜在参数变化(Potential parameter change for a transfer of domain)。不同领域对模型预测所需的历史数量可能有不同的要求。因此,当将模型从只需要很少内存的域(即小 k 和 d)转移到需要更长内存的域(即大得多的 k 和 d)时,TCN 可能会因为没有足够大的感受野

4. Sequence Modeling Tasks

我们在通常用于对不同 RNN 序列建模架构的性能进行基准测试的任务上评估 TCN 和 RNN(Hermans & Schrauwen, 2013; Chung et al., 2014; Pascanu et al., 2014; Le et al., 2015; Jozefowicz et al., 2015; Zhang et al., 2016)。目的是对 RNN 序列模型的“主场”进行评估。我们使用一整套综合压力测试,以及来自多个领域的真实数据集。

加法问题。在这个任务中,每个输入由一个长度为 n 的深度为 2 的序列组成,所有值在 [0, 1] 中随机选择,第二维全为零,除了两个标记为 1 的元素。目标是将第二维标记为 1 的两个随机值求和。简单地预测总和为 1 应该给出大约 0.1767 的 MSE。首次由 Hochreiter & Schmidhuber (1997) 引入,加法问题已被反复用作序列模型的压力测试 (Martens & Sutskever, 2011; Pascanu et al., 2013; Le et al., 2015; Arjovsky et al., 2016; Zhang et al., 2016)。

Sequential MNIST and P-MNIST。序列 MNIST 常用于测试循环网络保留遥远过去信息的能力 (Le et al., 2015; Zhang et al., 2016; Wisdom et al., 2016; Cooijmans et al., 2016; Krueger et al., 2017; Jing et al., 2017)。在这项任务中,MNIST图像作为 784×1 序列呈现给模型,用于数字分类。在更具挑战性的 P-MNIST 设置中,序列的顺序是随机排列的 (Le et al., 2015; Arjovsky et al., 2016; Wisdom et al., 2016; Krueger et al., 2017)。

Copy memory。在此任务中,每个输入序列的长度为 T + 20。前 10 个值是在数字 1-8 中随机选择的,其余全为零,除了最后 11 个用数字“9”填充(第一个“9”是分隔符)。目标是生成一个长度相同的输出,除分隔符之后的最后 10 个值外,其他所有位置都为零,其中模型预计会重复它在输入开始时遇到的 10 个值。该任务用于之前的工作,例如 Zhang et al. (2016); Arjovsky et al. (2016); Wisdom et al. (2016); Jing et al. (2017)。

JSB Chorales and Nottingham。 JSB Chorales (Allan & Williams, 2005) 是一个复调音乐数据集,由 J. S. Bach 的 382 个四声部和声合唱的整个语料库组成。每个输入都是一个元素序列。每个元素是一个 88 位二进制代码,对应于钢琴上的 88 个键,其中 1 表示在给定时间按下的键。 Nottingham 是一个基于 1200 首英国和美国民谣曲调的复调音乐数据集,比 JSB Chorales 大得多。 JSB Chorales 和 Nottingham 已被用于循环序列建模的大量实证研究(Chung et al., 2014; Pascanu et al., 2014; Jozefowicz et al., 2015; Greff et al., 2017)。这两项任务的性能都是根据负对数似然 (NLL) 来衡量的

PennTreebank。我们使用 PennTreebank (PTB) (Marcus et al., 1993) 进行字符级和单词级语言建模。用作字符级语言语料库时,PTB 包含 5,059K 字符用于训练,396K 用于验证,446K 用于测试,字母大小为 50。当用作单词级语言语料库时,PTB 包含 888K 单词用于训练, 70K 用于验证,79K 用于测试,词汇量为 10K。这是一个经过深入研究但相对较小的语言建模数据集(Miyamoto & Cho, 2016; Krueger et al., 2017; Merity et al., 2017)。

Wikitext-103。Wikitext-103 (Merity et al., 2016) 几乎是 PTB 的 110 倍,词汇量约为 268K。该数据集包含用于训练的 28K 维基百科文章(约 1.03 亿字)、用于验证的 60 篇文章(约 218K 字)和用于测试的 60 篇文章(约 246K 字)。这是一个比 PTB 更具代表性和真实性的数据集,具有更大的词汇量,包含许多生僻词,并已在 Merity et al. (2016); Grave et al. (2017); Dauphin et al. (2017) 中使用。

LAMBADA。由 Paperno et al. (2016) 介绍。LAMBADA 是一个数据集,包括从小说中提取的 10K 段落,平均 4.6 个句子作为上下文,以及 1 个目标句子,其中最后一个词是要预测的。该数据集的构建是为了让人们在给出上下文句子时可以轻松猜出丢失的单词,但在只给出没有上下文句子的目标句子时却不能。大多数现有模型在 LAMBADA 上都失败了(Paperno et al., 2016; Grave et al., 2017)。一般来说,在 LAMBADA 上的更好结果表明模型更擅长从更长和更广泛的上下文中捕获信息。 LAMBADA 的训练数据是 2662 部超过 2 亿字的小说的全文。词汇量约为 93K。

text8。我们还使用 text8 数据集进行字符级语言建模(Mikolov et al., 2012)。 text8 大约是 PTB 的 20 倍,大约有 100M 个字符来自 Wikipedia(90M 用于训练,5M 用于验证,5M 用于测试)。语料库包含 27 个独特的字母。

5. Experiments

我们将第 3 节中描述的通用 TCN 架构与具有标准正则化的规范循环架构(即 LSTM、GRU 和 vanilla RNN)进行比较。本节报告的实验使用完全相同的 TCN 架构,只是改变了网络的深度 n 和偶尔的核函数大小 k,以便感受野覆盖足够的预测上下文。除非另有说明,否则我们对网络中的第 i 层使用指数膨胀 d=2id = 2^id=2i,对 TCN 使用学习率为 0.002 的 Adam 优化器 (Kingma & Ba, 2015)。我们还凭经验发现梯度裁剪有助于收敛,我们从 [0.3, 1] 中选择裁剪的最大范数。在训练循环模型时,我们使用网格搜索来找到一组好的超参数(特别是优化器、循环下降 p ∈ [0.05, 0.5]、学习率、梯度裁剪和初始遗忘门偏差),同时保持网络与 TCN 大小差不多。 TCN 或 RNN 均未添加其他架构细节,例如门控机制或跳过连接。补充材料中提供了更多细节和对照实验。

5.1. Synopsis of Results

结果概要如表 1 所示。请注意,在其中几个任务中,我们研究的通用、规范的循环架构(例如 LSTM、GRU)并不是最先进的。 (有关更多详细信息,请参阅补充。)有了这个警告,结果强烈表明,在通常用于对循环架构本身的性能进行基准测试的各种序列建模任务中,具有最小调整的通用 TCN 架构优于规范循环架构。我们现在更详细地分析这些结果。

5.2. Synthetic Stress Tests

The adding problem。加法问题的收敛结果,对于问题大小 T = 200 和 600,如图 2 所示。所有模型都选择了大约 70K 参数。 TCN 很快收敛到几乎完美的解决方案(即 MSE 接近 0)。 GRU 的表现也相当不错,尽管收敛速度比 TCN 慢。 LSTMs 和 vanilla RNNs 的表现明显更差。

Sequential MNIST and P-MNIST。图 3 显示了连续和置换 MNIST 上运行超过 10 个时期的收敛结果。所有模型都配置为具有大约 70K 参数。对于这两个问题,TCN 在收敛性和任务的最终准确性方面都大大优于循环架构。对于 P-MNIST,TCN 优于基于具有 Zoneout 和 Recurrent BatchNorm 的循环网络的最新结果 (95.9%) (Cooijmans et al., 2016; Krueger et al., 2017)。

Copy memory。复制记忆任务的收敛结果如图 4 所示。TCN 快速收敛到正确答案,而 LSTM 和 GRU 简单地收敛到与预测全零相同的损失。在这种情况下,我们还与最近提出的 EURNN (Jing et al., 2017) 进行了比较,后者在此任务中表现出色。虽然 TCN 和 EURNN 在序列长度 T = 500 时表现良好,但 TCN 在 T = 1000 或更长时具有明显的优势(就损失和收敛速度而言)

5.3. Polyphonic Music and Language Modeling

我们现在讨论复调音乐建模、字符级语言建模和单词级语言建模的结果。这些领域以循环架构为主,并为这些任务开发了许多专门的设计(Zhang et al., 2016; Ha et al., 2017; Krueger et al., 2017; Grave et al., 2017; Greff et al., 2017;2017; Merity et al., 2017)。我们会在有用时提到其中一些专门的架构,但我们的主要目标是在特定领域的调整之前将通用 TCN 模型与类似的通用循环架构进行比较。结果总结在表1中。

Polyphonic music。在 Nottingham 和 JSB Chorales 上,几乎没有调整的 TCN 在相当大的程度上胜过循环模型,甚至胜过一些用于该任务的增强循环架构,例如 HF-RNN (Boulanger-Lewandowski et al., 2012) 和 Diagonal RNN (苏巴坎和斯马拉格迪斯,2017)。但请注意,其他模型(例如 Deep Belief Net LSTM)表现更好(Vohra et al., 2015);我们认为这可能是由于数据集相对较小,因此正确的正则化方法或生成建模程序可以显着提高性能。这在很大程度上与 RNN/TCN 的区别是正交的,因为很可能有类似的 TCN 变体。

Word-level language modeling。语言建模仍然是循环网络的主要应用之一,最近的许多工作都集中在优化 LSTM 以完成这项任务(Krueger 等人,2017;Merity 等人,2017)。我们的实现遵循标准做法,将 TCN 和 RNN 的编码器和解码器层的权重联系起来(Press & Wolf,2016),这显着减少了模型中的参数数量。对于训练,我们使用 SGD 并在验证准确度达到稳定水平时将 TCN 和 RNN 的学习率退火 0.5 倍。

在较小的 PTB 语料库上,优化的 LSTM 架构(具有循环和嵌入丢失等)优于 TCN,而 TCN 优于 GRU 和 vanilla RNN。然而,在更大的 Wikitext-103 语料库和 LAMBADA 数据集(Paperno et al., 2016)上,没有任何超参数搜索,TCN 优于 Grave et al. (2017) 的 LSTM 结果,实现了低得多的困惑。

Character-level language modeling。在字符级语言建模(PTB 和 text8,准确度以每个字符的位数衡量)方面,通用 TCN 优于正则化 LSTM 和 GRU 以及 Normstabilized LSTM 等方法(Krueger & Memisevic,2015)。存在优于所有这些的专门架构,请参阅补充。

5.4. Memory Size of TCN and RNNs

循环架构的理论优势之一是它们的无限记忆:通过无限长度的序列保留信息的理论能力。我们现在具体研究不同架构在实践中可以保留信息多长时间。我们专注于 1)复制记忆任务,这是一项压力测试,旨在评估循环网络中的长期、远程信息传播,以及 2)LAMBADA 任务,它测试本地和非本地文本理解。

复制记忆任务被完美地设置为检查模型在不同时间长度内保留信息的能力。必要的保留时间可以通过改变序列长度 T 来控制。与第 5.2 节相比,我们现在关注输出序列的最后 10 个元素的准确性(这些元素是必须召回的重要元素)。我们对 TCN 和 RNN 都使用了大小为 10K 的模型。

这项重点研究的结果如图 5 所示。TCN 对所有序列长度始终收敛到 100% 的准确度,而相同大小的 LSTM 和 GRU 随着序列长度 T 的增长迅速退化为随机猜测。当 T < 50 时,LSTM 的准确率低于 20%,而当 T < 200 时,GRU 的准确率低于 20%。这些结果表明,TCN 能够保持比其循环对应物更长的有效历史

通过对大规模 LAMBADA 数据集的实验,这一观察得到了真实数据的支持,该数据集专门用于测试模型利用广泛上下文的能力(Paperno et al., 2016)。如表 1 所示,TCN 在 LAMBADA 上的困惑度明显优于 LSTM 和 vanilla RNN,其网络规模小得多,几乎没有调整。这个数据集的最新结果甚至更好,但只有在额外的记忆机制的帮助下(Grave et al., 2017)。

6. Conclusion

我们已经对一整套序列建模任务中的通用卷积和循环架构进行了实证评估。为此,我们描述了一个简单的时间卷积网络(TCN),它将空洞和残差连接等最佳实践与自回归预测所需的因果卷积相结合。实验结果表明,TCN 模型的性能大大优于 LSTM 和 GRU 等通用循环架构。我们进一步研究了卷积和循环网络中的长距离信息传播,并表明 RNN 的“无限记忆”优势在实践中基本上是不存在的。与具有相同容量的循环架构相比,TCN 表现出更长的记忆

已经提出了许多用于正则化和优化 LSTM 的高级方案(Press & Wolf, 2016; Krueger et al., 2017; Merity et al., 2017; Campos et al., 2018)。这些方案显著提高了基于 LSTM 的架构在某些数据集上实现的准确性TCN 还没有从整个社区对架构和算法的投入中获益。我们认为这样的投入是可取的,并期望它能在 TCN 性能方面取得与近年来 LSTM 性能方面的进步相称的进步。我们将发布我们项目的代码以鼓励这种探索。

递归网络在序列建模中享有的优势可能在很大程度上是历史的遗迹(vestige of history)。直到最近,在引入空洞卷积(dilated convolutions)和残差连接等架构元素之前,卷积架构确实比较弱。我们的结果表明,有了这些元素,一个简单的卷积架构在不同的序列建模任务中比 LSTMs 等递归架构更有效。由于 TCNs 相当清晰和简单,我们认为卷积网络应该被视为序列建模的自然起点和强大的工具包。


A. Hyperparameters Settings

A.1. Hyperparameters for TCN

表 2 列出了我们在将通用 TCN 模型应用于各种任务和数据集时使用的超参数。选择参数的最重要因素是通过选择可以覆盖任务所需上下文量的 k 和 d 来确保 TCN 具有足够大的感受野

如第 5 节所述,选择隐藏单元的数量,以便模型大小与我们正在比较的循环模型大致处于同一水平。在表 2 中,N/A 的梯度裁剪意味着没有应用梯度裁剪。在较大的任务(例如语言建模)中,我们凭经验发现梯度裁剪(我们从 [0.3, 1] 中随机选择一个阈值)有助于规范 TCN 并加速收敛

所有权重均从高斯分布 N (0, 0.01) 初始化。一般来说,只要有效历史(即感受野)大小足够,我们发现 TCN 对超参数变化相对不敏感

A.2. Hyperparameters for LSTM/GRU

表 3 报告了用于 LSTM 的超参数设置。这些值是从具有多达 3 层的 LSTM 的超参数搜索中挑选出来的,优化器是从 {SGD、Adam、RMSprop、Adagrad} 中选择的。对于某些较大的数据集,我们采用了先前工作中使用的设置(例如,Grave et al. (2017) on Wikitext-103)。 GRU 超参数以类似的方式选择,但通常比 LSTM 具有更多的隐藏单元,以保持总网络大小大致相同(因为 GRU 单元更紧凑)。

B. State-of-the-Art Results

如前所述,我们使用的通用 TCN 和 LSTM/GRU 模型在某些任务上可以被更专业的架构所超越。表 4 总结了最先进的结果。所有任务都使用相同的 TCN 架构。请注意,state-of-the-art 模型的大小可能与 TCN 的大小不同

C. Effect of Filter Size and Residual Block

在本节中,我们将简要研究 TCN 层的不同组件的影响。总体而言,我们认为长期依赖建模需要膨胀,因此我们主要关注另外两个因素:每层使用的过滤器大小 k,以及残差块的影响。

我们进行了一系列受控实验,消融分析的结果如图 6 所示。和以前一样,我们对不同的模型保持模型大小和深度完全相同,从而严格控制膨胀因子。实验针对三个不同的任务进行:复制记忆、置换 MNIST (P-MNIST) 和 Penn Treebank 单词级语言建模。这些实验证实,这两个因素(过滤器大小和残差连接)都有助于序列建模性能。

滤波器尺寸 k。在复制内存和 P-MNIST 任务中,我们观察到更大的过滤器尺寸更快的收敛和更好的精度。特别是,查看图 6a,滤波器大小 ≤ 3 的 TCN 仅收敛到与随机猜测相同的水平。相比之下,在词级语言建模中,过滤器大小为 k = 3 的较小核函数效果最好。我们认为这是因为较小的核函数(以及固定膨胀)倾向于更多地关注本地上下文,这对于 PTB 语言建模尤其重要(事实上,n-gram 模型的非常成功表明只有相对较短的内存是建模语言所必需的)。

残差块。在我们在这里比较的所有三个场景中,我们观察到残差函数稳定了训练并带来了更快的收敛和更好的最终结果。特别是在语言建模中,我们发现残差连接对性能有很大贡献(见图 6f)。

D. Gating Mechanisms

先前在用于语言建模的卷积架构的工作中使用的一个组件是门控激活(van den Oord et al., 2016; Dauphin et al., 2017)。我们选择不在通用 TCN 模型中使用门控。我们现在更仔细地研究这个选择。

Dauphin et al. (2017) 比较了门控线性单元 (GLU) 和门控 tanh 单元 (GTU) 的效果,并在其非扩张门控 ConvNet 中采用了 GLU。遵循相同的选择,我们现在比较使用 ReLU 的 TCN 和带有门控 (GLU) 的 TCN,由两个卷积层之间的元素乘积表示,其中一个也通过 sigmoid 函数 σ(x)。请注意,gates 架构使用的卷积层数大约是 ReLU-TCN 的两倍。

结果如表 5 所示,其中我们将模型参数的数量保持在大致相同的大小。 GLU 确实进一步提高了 TCN 在某些语言建模数据集(如 PTB)上的准确性,这与之前的工作一致。然而,我们在其他任务上没有观察到类似的好处,例如复调音乐建模或需要更长时间信息保留的合成压力测试。在 T = 1000 的复制内存任务中,我们发现带有门控的 TCN 收敛到比带有 ReLU 的 TCN 更差的结果(尽管仍然优于循环模型)

【时序】基于 TCN 的用于序列建模的通用卷积和循环网络的经验评估相关推荐

  1. 序列建模:时间卷积网络取代RNN(An Empirical Evaluation of Generic Convolutional and Recurrent)论文 pdf

    下载地址:https://u20150046.ctfile.com/fs/20150046-376633283 作者:Shaojie Bai, J. Zico Kolter, Vladlen Kolt ...

  2. 基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否...

    基于机器学习的web异常检测 from: https://jaq.alibaba.com/community/art/show?articleid=746 Web防火墙是信息安全的第一道防线.随着网络 ...

  3. Recsys'21 | 基于Transformers的行为序列建模

    第一篇,推荐系统在NLP的肩膀上前进. 第二篇,基于Transformers的行为序列建模. 第三篇,业界基于Transformers的序列推荐建模调研. 本文提出了一整套序列推荐建模的pipelin ...

  4. 【时序】TCCT:用于时间序列预测的紧耦合卷积 Transformer

    论文名称:TCCT: Tightly-coupled convolutional transformer on time series forecasting 论文下载:https://doi.org ...

  5. 【深度学习(deep learning)】花书第10章 序列建模:循环和递归网络 读书笔记

    [深度学习(deep learning)]花书第10章 序列建模:循环和递归网络 读书笔记 第10章 序列建模:循环和递归网络 [深度学习(deep learning)]花书第10章 序列建模:循环和 ...

  6. 基于空间方法的图神经网络模型_用于时空图建模的图神经网络模型 Graph WaveNet | 课程上新...

    课程概要 本课程来自集智学园图网络论文解读系列活动. 是对论文<Graph WaveNet for Deep Spatial-Temporal Graph Modeling>的解读. 时空 ...

  7. 推荐系统遇上深度学习(八十七)-[阿里]基于搜索的用户终身行为序列建模

    本文介绍的论文是<Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Thr ...

  8. 【时序】Informer:用于长序列预测的高效 Transformer 论文笔记

    论文名称:Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting 论文下载:https://a ...

  9. Nat. Methods | scBasset:基于DNA序列的单细胞ATAC-seq卷积神经网络建模

    本文介绍由美国生物科技公司Calico Life Sciences的Han Yuan 和 David R. Kelley共同通讯发表在 Nature methods 的研究成果:单细胞ATAC-seq ...

最新文章

  1. Android adb.exe程序启动不起来处理方法
  2. 钢体pdc钻头计算机辅助设计和绘图,PDC钻头三维设计软件的研究与设计
  3. 爆笑!物理书上的照片能不能好好选选啊喂!
  4. pymc3使用_使用PyMC3了解飞机事故趋势
  5. 为啥HashMap的默认容量是16?
  6. 信息学奥赛一本通(1192:放苹果)
  7. 数据结构学习笔记:利用Python列表实现栈结构
  8. 框架下cookie的使用_aspnetcore自带cookie的认证期限分析
  9. DRBD+Heratbeat+NFS高可用文件共享存储
  10. cai鸟驿站管理系统
  11. leetcode *207. 课程表(拓补排序)(2020.8.4)
  12. 《人工智能及其应用》练习题
  13. 步进电机、伺服电机的接线说明书、示意图
  14. 2023最详细的接口测试用例设计教程
  15. Vue+EleMentUI实现el-table-colum表格select下拉框可编辑
  16. x3650m4服务器主板型号,【联想x3650 M4参数】联想x3650 M4系列服务器参数-ZOL中关村在线...
  17. 河北大学本部导航系统(c语言实现)
  18. 京东副总裁何晓冬:GPT-3后,人机对话与交互何去何从?| CCF-GAIR 2020
  19. 'OracleInternal.MTS.DTCPSPEManager' 类型初始值设定项引发异常
  20. Altium Designer创建异形铜皮

热门文章

  1. 榆熙电商:拼多多优惠券都有哪些作用?
  2. 新型冠状病毒之物资的分配
  3. ArcGIS平滑处理
  4. 高匿ip代理工具的特殊功能?
  5. 织梦主动提交_织梦实现发布文章主动推送(实时)给百度的方法
  6. Windows10下VirtualBox虚拟机的备份与迁移
  7. 环信IM集成问题整理——常见集成问题
  8. Jupyter Notebooks 入门
  9. Python之urlparse模块
  10. XDS100 V2仿真器驱动及安装指导