论文名称: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.
对于大多数深度学习从业者来说,序列建模是循环网络的代名词。然而最近的结果表明,。给出新的序列建模任务或数据集,应该使用哪种架构?。这些模型在广泛的标准任务中进行评估,通常用于基准测试循环网络。结果表明,。我们得出结论,。
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 合成压力试验。。
为了表示卷积网络,我们描述了一种适用于所有任务的方法。这种结构是由最近的研究提供的,但结合现代卷积结构的一些最佳实践,故意保持简单。与之相结合 LSTM 和 GRU 比较了规范的循环架构。
。这一点特别值得注意,因为这些任务包括通常用于评估循环网络设计的各种基准(Chung et al., 2014; Pascanu et al., 2014; Jozefowicz et al., 2015; Zhang et al., 2016)。这。
为了进一步了解这些结果,我们对循环网络的记忆保留特性进行了更深入的分析。我们表明,。
据我们所知,提出的研究是。结果表明,。 。
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)。。众所周知,,例如 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)。
对不同循环架构的有效性进行了多项实证研究。这些研究的一些动机是。
- 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 优于最新模型”。
最近的其他工作旨在的各个方面。这包括
- 。
虽然这些组合在结合两种架构的理想方面方面显示出希望,但我们在这里的研究重点是比较通用卷积和循环架构。
3. Temporal Convolutional Networks
我们首先描述卷积序列预测的通用架构。我。我们将所呈现的架构称为,强调我们采用这个术语不是作为真正新架构的标签,而是。注意,该术语之前已使用过(Lea et al., 2017)。TCN 的显着特征是:
- 1)架构中的卷积是因果关系,这意味着没有从未来到过去的信息“泄漏”;
- 2),就像使用 RNN 一样。
除此之外,我们强调。
我们的架构受到最近用于序列数据的卷积架构的启发(van den Oord et al., 2016; Kalchbrenner et al., 2016; Dauphin et al., 2017; Gehring et al., 2017a;b),
与 Dauphin 等人 (2017) 的语言建模架构相比,
3.1. Sequence Modeling
在定义网络结构之前,我们强调序列建模任务的性质。假设给定一个输入序列 x 0 , . . . , x T x_0, . . . , x_T x0,...,xT, 并希望预测每个时刻相应的输出 y 0 , . . . , y T y_0, . . . , y_T y0,...,yT。关键约束是,要预测某个时间 t t t 的输出 y t y_t yt,我们被限制为仅使用之前观察到的那些输入: x 0 , . . . , x t x_0,. . . , x_t x0,...,xt 。形式上,序列建模网络是产生以下映射的任何函数 f : X T + 1 → Y T + 1 f : X^{T +1} → Y^{T +1} f:XT+1→YT+1:
如果它满足 y t y_t yt 仅取决于 x 0 , . . . , x t x_0,. . . , x_t x0,...,xt 的因果约束而不是任何“未来”输入 x t + 1 , . . . , x T x_{t+1}, . . . , x_T xt+1,...,xT。在序列建模设置中学习的目标是找到一个网络 f f f 最小化实际输出和预测之间的一些预期损失 L ( y 0 , . . . , y T , f ( x 0 , . . . , x T ) ) L(y_0, . . . , y_T , f(x_0, . . . , x_T)) L(y0,...,yT,f(x0,...,xT)),其中序列和输出是根据某种分布绘制的。
这种形式包含许多设置,例如
3.2. Causal Convolutions
如上所述,
- 为了实现第一点,
TCN 使用一维全卷积网络 (FCN) 架构 (Long et al., 2015),其中每个隐藏层的长度与输入层相同,长度填充为零(核函数大小 -添加 1) 以保持后续层的长度与之前的层相同 。 - 为了实现第二点,
TCN 使用因果卷积,即时间 t 的输出仅与时间 t 和前一层中更早的元素进行卷积 。
简单来说:
请注意,
这种基本设计的一个主要
3.3. Dilated Convolutions
- 选择更大的滤波器大小 k k k
- 增加膨胀因子 d d d,其中一个这样的层的有效历史是 ( k − 1 ) d (k-1)d (k−1)d。在使用空洞卷积时很常见,随着网络的深度呈指数增加 d d d(即,在网络的第 i i i 层, d = O ( 2 i ) d = O(2^i) d=O(2i))。
3.4. Residual Connections
残差块 (He et al., 2016) 包含一个分支,引出一系列转换 F,其输出被添加到块的输入 x: 这有效地
我们的基线 TCN 的残差块如图 1(b) 所示。
然而,
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
我们在通常用于
加法问题。
Sequential MNIST and P-MNIST。
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)进行比较。
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) 进行了比较,后者在此任务中表现出色。
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中。
在较小的 PTB 语料库上,优化的 LSTM 架构(具有循环和嵌入丢失等)优于 TCN,而 TCN 优于 GRU 和 vanilla RNN。然而,在更大的 Wikitext-103 语料库和 LAMBADA 数据集(Paperno et al., 2016)上,没有任何超参数搜索,TCN 优于 Grave et al. (2017) 的 LSTM 结果,实现了低得多的困惑。
5.4. Memory Size of TCN and RNNs
这项重点研究的结果如图 5 所示。
通过对大规模 LAMBADA 数据集的实验,这一观察得到了真实数据的支持,该数据集专门用于测试模型利用广泛上下文的能力(Paperno et al., 2016)。如表 1 所示,TCN 在 LAMBADA 上的困惑度明显优于 LSTM 和 vanilla RNN,其网络规模小得多,几乎没有调整。这个数据集的最新结果甚至更好,但只有在额外的记忆机制的帮助下(Grave et al., 2017)。
6. Conclusion
我们已经对一整套序列建模任务中的通用卷积和循环架构进行了实证评估。为此,我们描述了一个简单的
已经提出了许多
A. Hyperparameters Settings
A.1. Hyperparameters for TCN
表 2 列出了我们在将通用 TCN 模型应用于各种任务和数据集时使用的超参数。
如第 5 节所述,选择隐藏单元的数量,以便模型大小与我们正在比较的循环模型大致处于同一水平。
A.2. Hyperparameters for LSTM/GRU
表 3 报告了用于 LSTM 的超参数设置。这些值是从具有多达 3 层的 LSTM 的超参数搜索中挑选出来的,
B. State-of-the-Art Results
如前所述,我们使用的通用 TCN 和 LSTM/GRU 模型在某些任务上可以被更专业的架构所超越。表 4 总结了最先进的结果。所有任务都使用相同的 TCN 架构。请注意,
C. Effect of Filter Size and Residual Block
在本节中,我们将简要研究 TCN 层的不同组件的影响。总体而言,我们认为长期依赖建模需要膨胀,因此我们主要关注另外两个因素:每层使用的过滤器大小 k,以及残差块的影响。
我们进行了一系列受控实验,消融分析的结果如图 6 所示。和以前一样,
滤波器尺寸 k。