就像 20 世纪初,爱因斯坦的 Annus mirabilis 论文成为了量子力学的根底。只是这一次,是 AlexNet 论文 [1],这是一种挑战计算机视觉的架构,并从新唤起了人们对机器学习(起初转变为深度学习)的趣味。在过来的十年里,人们见证了机器学习畛域革命性的提高,这是无可否认的。
这种微小增长带来的问题是很难正确评估每一个冲破:在新的冲破还未开始遍及时,另一个更弱小、更快或更便宜的办法就会呈现。这样微小的增长同时也带来了更多的炒作,这些炒作吸引了许多新人,而这些新人往往充满热情但经验不足。
深度学习畛域中被误会最多的的冲破是 RNN。如果你用搜寻诸如“LSTM 已死”和“RNN 已死”之类的关键词,你会发现大量的后果,到底是不是这样呢?本文将展现 RNN 依然在相干的许多理论场景中起着微小的作用。
本文不仅仅探讨 LSTM 和 Transformer。还将探讨学习如何公正地评估数据迷信中的概念。
LSTM
每家大型科技公司都采纳 LSTM;没有 LSTM 就没有 NLP 钻研。
长短期记忆网络 – LSTM [2]是在 1997 年被发明进去的,然而因为过后的算力问题直到在 2014 年才开始腾飞。它属于循环神经网络 – RNN [3] 中的一员,经常与门控循环单元 – GRU [4]进行比拟。
随着 GPU 的倒退和第一个深度学习框架的呈现,LSTM 成为主导 NLP 畛域的最先进模型。2013 年词嵌入的发现也有助于建设迁徙的学习机制。事实上,过后简直所有 NLP 工作的规范组件都是:a) 预训练的词嵌入,b) LSTM,以及 c) seq2seq 架构 [5]。
在那个期间,每个人都批准 LSTM 在 NLP 畛域占据主导地位:它们被用于语音辨认、文本到语音合成、语言建模和机器翻译。每家大型科技公司都承受了它们;没有 LSTM 就没有 NLP。
谷歌为机器翻译创立的最佳模型之一如下所示:
[6] 中介绍的这种简单模型是谷歌翻译服务背地的架构。与之前的版本相比,它缩小了 60% 的翻译谬误。它大量应用了 LSTM,造成了驰名的编码器 - 解码器拓扑(包含双向 LSTM)。
此实现还利用了 Attention,这是一种容许模型依据须要关注输出序列的相干局部的机制。如图 1 所示,其中编码器的顶部向量应用注意力分数进行加权。换句话说,每个工夫步的每个单词都应用一个可学习的分数来加权,从而最大限度地缩小谬误。无关更多信息,能够浏览原始论文 [5]。
然而 LSTM 有两个次要毛病:
- 它们在训练过程中不容易并行化。
- 因为它们的循环性质,它们能够建模的序列长度是无限的。
这个会在稍后具体介绍。
Transformers
RNN 是程序模型,这意味着单词是按程序解决的。然而 Transformer 并行处理所有单词。
2017 年,Google 推出了 Transformer [7] 架构,这是 NLP 生态系统的里程碑。这个新模型通过提出 Multi-Head Attention 机制来深入研究 Attention:
- 充分利用自注意力,从而取得卓越的性能。
- 采纳模块化构造,使矩阵运算更具并行性化。换句话说,它运行得更快并且具备更好的可扩展性。
Transformed 模型中没有应用 LSTM。即便在上下文信息很重要的第一层(LSTM 可能有用)也没有用,Transformer 论文提出了一种称为地位编码的不同的机制。这也揭示了两种模型之间的次要区别:RNN 是程序模型,意味着单词是按程序解决的。然而 Transformer 并行处理所有单词。这才可能大大减少训练工夫。
从那时起 Transformer 的外围哲学始终是 NLP 钻研的根底,并催生了很多新的变体,看看下图:
工夫序列
LSTM 和 Transformer 都十分善于对序列信息进行建模。因而,它们实践上也都能够利用于工夫序列预测案例。
试验结果表明,它们在准确性方面并不能决定性地优于传统的统计办法(例如 ARIMA)。另一方面,统计办法和基于 rnn 的办法相结合则更无效。一个这样的例子是 Uber 构建的 ES-RNN 模型,该模型最终博得了 M4 比赛:它是一种在扩张的 LSTM 之上应用指数平滑的混合模型。
当然,Transformer 也受到了考验。对于工夫序列预测,最罕用的办法是:应用原始的 Transformer,并将地位编码层替换为 Time2vec 层。然而目前看,Transformer 模型都无奈超过统计办法。
另外就是,有几点非凡的阐明:
- 这并不意味着统计办法总是更好。例如,如果有大量数据,LSTM 的性能可能比 ARIMA 更好。
- 统计办法须要更多的数据预处理:这可能包含使工夫序列的平稳性、打消季节性、波动性等。LSTM 能够更容易地捕获序列的天然特色,至多通过应用更简略的技术能够做到这一点。
- 统计办法的通用性较差:例如,自回归办法无奈解决将来未知的额定特色。
综上所述,就预测能力而言,ML 办法并不总是优于统计办法。
直到 2018-2019 年,钻研才失去了微小的停顿,深度学习模型开始在工夫序列预测工作中变得更具竞争力。无关工夫序列预测和深度学习的更全面剖析:
图 3:Temporal Fusion Transformer
图 4:DeepAR
下面两张图显示了两个最先进的模型。它们别离形容了 Google 的 Temporal Fusion Transformer 和 Amazon 的 DeepAR 的架构。从图中看到什么乏味的事件了吗?这些模型有很多乏味的中央,但与本文主题无关的最重要的一点是:
两种模型都应用 LSTM!
DeepAR 是一种简单的工夫序列模型,它联合了自回归和深度学习的特色。图 4 显示的 h_i, t 向量实际上是 LSTM 单元的暗藏状态。而后应用这些暗藏状态来计算高斯分布的 μ 和 σ 参数。从该散布中,抉择 n 个样本,其中值代表预测值。
Temporal Fusion Transformer – TFT 是一种用于工夫序列的多层纯深度学习模型。该模型具备 LSTM 编码器 - 解码器以及提供可解释预测的新鲜注意力机制。
本文中不会在这里深入研究这些模型的细节,咱们这里只说重点:这两种深度学习模型都优于传统的统计办法。此外,这两种模型都更加通用,因为它们能够解决多个工夫序列并承受更丰盛的特色集(TFT 稍逊一筹)。
Recurrence 和 Attention 是如何关联的
为了阐明这一点,这里援用 TFT 论文的内容:
为了学习不同尺度的工夫关系,TFT 应用循环层进行部分解决,并应用可解释的自注意力层进行长期依赖学习。
思考到咱们目前所晓得的,以及下面的援用,当初能够把这些点分割起来:
循环网络十分善于捕获序列的部分工夫特色,而注意力则更善于学习长期动静。
这并不是一个果断的论断,因为 TFT 论文的作者通过执行融化钻研证实了这一点(融化钻研通过删除或替换简单机器学习零碎的某些组件以理解每个组件的奉献)。
TFT 的作者在其余组件中测试了 LSTM 编码器 - 解码器层:通过用原始 Transformer 的规范地位编码层替换它来进行融化钻研,最初他们发现了两件事:
- seq2seq 的应用有助于模型的性能。
- 在执行基准测试的 5 个数据集中 4 个数据集,LSTM 层实现了更高的性能。
所以咱们能够有把握地得出结论,LSTM 层依然是工夫序列深度学习模型中的不可代替的组件。此外,它们不会与注意力机制相冲突。相同它们能够与基于注意力的组件相结合,并且以进一步提高模型的效率。
LSTM 中的宝藏:条件输入
这是 LSTM 最被忽视的劣势之一,然而直到现在许多从业者依然没有意识到这一点。
如果你曾经应用过一般的 RNN,应该会晓得这种类型的网络只能解决工夫数据,即有各种依赖关系的以序列示意的数据。然而它们不能间接对动态元数据或不随工夫变动的数据建模。
而在 NLP 中动态元数据是不相干的。NLP 模型专一于单词的词汇表,其中每个单词都通过嵌入进行示意,这是整个模型的对立概念。单词在文档中的地位并不重要,重要的是 NLP 模型能够学习每个单词的正确上下文感知示意(四周单词内容)。所以一个特定的单词能够有不同的嵌入,这取决于它的含意和它在句子中的地位(这里的地位并不是程序而是他前后的单词是什么)。
然而,在工夫序列模型中,不随工夫变动的数据影响要大得多。例如,有一个波及商店产品的销售预测场景。产品的销售量能够建模为工夫序列,但也会受到假期等内部因素的影响。因而,一个好的预测模型也应该思考这些变量。这就是 TFT 所做的(下图 5)。然而 TFT 是如何实现的呢?
图 5: 内部动态变量对预测的影响
TFT 专为集成动态元数据而设计。它应用了各种技术,这些技术在原始论文中有形容。然而,最重要的是与 lstm 无关。
LSTM 能够无缝地执行这个工作,应用 [11] 中首先引入的一个技巧: 不将 LSTM 的初始 h_0 暗藏状态和单元格状态 c_0 设置为 0(或随机),而是应用指定的向量 / 嵌入来初始化它们。或者咱们能够让这些向量在拟合过程中可训练(实际上,这就是 TFT 所做的)。通过这种形式,LSTM 单元格的输入被适当地限度在内部变量上,而不会影响它的工夫依赖性。
LSTM vs TCN
在注意力机制和 Transformers 呈现之前,还有另一种无望扭转世界的新模式。这些就是工夫卷积网络(TCN)。
TCN 应用扩张卷积,它在不同长度的输出序列上进行 padding – 使它们可能检测不仅彼此靠近而且在齐全不同地位的数据之间的依赖关系。
TCN 于 2016 年 [12] 首次引入并于 2018 年 [13] 正式化,它利用卷积网络对基于序列的数据进行建模。它们也是工夫序列预测工作的现实人选。
图 6:过滤器大小 k = 3 和扩张因子 d = 1、2、4 的扩张卷积。感触野能够笼罩输出序列中的所有数据点 x_0 … x_T。
TCN 的“秘籍”是扩张卷积,如图 6 所示。规范 CNN 应用固定大小的内核 / 过滤器,因而它们只能笼罩紧邻的数据元素。而 TCN 应用扩张卷积,对不同长度的输出序列进行 padding – 使它们可能检测不仅彼此靠近而且位于齐全不同地位的我的项目之间的依赖关系。
除此之外,还应用残差连贯等规范的深层 CNN 所应用的办法。这里咱们也不会深入研究细节,只将关注 LSTM 的差别:
- 速度:一般来说,TCN 比 LSTM 快,因为它们应用卷积,能够并行实现。在实践中,通过应用大量扩张和残差连贯,TCN 最终可能会变慢。
- 输出长度:TCN 和 LSTM 都可能承受可变长度输出。
- 内存占用:均匀而言,TCN 比 LSTM 须要更多内存,因为每个序列都由多个收缩层解决。这取决于定义每个模型变得如许简单的超参数。
- 性能:最后的论文表明 TCN 优于 LSTM。然而在实践中,状况并非总是如此。[13] 中的一项更详尽的钻研表明,在某些工作中,TCN 更好而在其余工作中 LSTM 更无效。
两种模式都有其长处和毛病。没有最终的胜利者,抉择来说最好的办法是评估它们以及最适宜的状况。
然而这种办法当初如同曾经过期了,尽管在图像识别中还在大量应用扩张卷积,那是因为图像的示意形式的特点,与时序的表格数据有很大的不同。另外就是通过利用单个 TCN 或 LSTM 模型来实现最先进的性能这种形式应该曾经不存在了,当初的案例都会思考更多内部参数,这就意味着必须应用多个组件 / 模型进行组合。
Kaggle 中的深度学习和工夫序列
到目前为止,咱们始终在从学术角度评估单个模型。如果要更具体的观点,则不能疏忽理论的利用。
对于理论利用来说一个很好的评估根底是 Kaggle,它提供了对于数据迷信畛域实际方面的验证。为了证实本文的主题,所以寻找的较量都是近期开始的,例如这个较量:呼吸机压力预测(https://www.kaggle.com/c/vent…)。工作是依据管制输出的程序预测机械肺内的压力程序。每个训练实例都能够被视为它本人的工夫序列,因而使工作成为一个多工夫序列问题。
这场较量具备挑战性,起因有 3 个:
- 竞争问题能够表述为回归和分类工作。
- 数据集能够进行创造性的特色工程。
- 每个数据点由不同的序列示意,统计模型是不行的。
所以对于本文的主题内容,咱们总结两件乏味的事件:
- 排名前 3 的团队以及许多其余团队在他们的最终解决方案中至多应用了一个基于 LSTM 的组件(例如重叠式 LSTMS、双向 LSTMS)。
- 获胜团队应用了一个多层次的深度架构,其中包含 LSTM 网络和 Transformer 块等。该架构如图 7 所示:
图 7:top1 解决方案架构
该团队还施行了许多其余有助于他们获胜的技术。然而这里重要的是:每种模型都有其独特的劣势和劣势,因而不能将本人局限于繁多模型或繁多办法。
CNN 的命运
心愿这篇文章对 LSTM 的价值做出了很好的论证。然而毫无疑问 Transformers 是机器学习畛域的一个惊人冲破。这种胜利程度将确定性地导致将来更高水平的倒退。
2020 年,Transformers 适应了计算机视觉,诞生了 Vision Transformer (ViT)。论文引发了进一步的钻研,最终这个通过额定批改的新模型可能在许多图像分类工作中胜过 CNN。更好的是,钻研人员发现将这两种成分联合起来会产生更好的后果。咱们将在将来看到更多的 ViT。
心愿这一次咱们能防止“CNNs 之死”之类的大胆且无知的舆论,尽管当初曾经看到很多这样的流量题目党了,然而心愿本文的内容能够让大家更靠近于感性,要有本人的判断力。
结束语
简而言之,本文钻研探讨了以下几点:
- 简直不可能正确评估机器学习畛域冲破的影响。
- Transformers 的呈现重塑了格局:LSTM,尤其是在 NLP 中,不再是关注的焦点。
- 对于工夫序列,LSTM 更有用。他们还无奈被代替(至多当初没有)。
- 数据迷信是一门跨畛域的学科,须要联合各种办法 / 模型来应答这些挑战。
本文援用:
- Alex et al.“ImageNet Classification with Deep Convolutional Neural Networks”(NIPS 2012)
- Hochreiter et al.,“Long Short-term Memory”(Neural Computation, 1997)
- Rumelhart et al. Learning internal representations by error propagation (Sept. 1985)
- Kyunghyun et al. On the Properties of Neural Machine Translation: Encoder-Decoder Approaches
- Sutskever et al 2014, Sequence to Sequence Learning with Neural Networks (2014)
- Yonghui Wu et al. Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation (2016)
- A. Vaswani et al. Attention Is All You Need, Jun 2017
- Seyed Mehran Kazemi et al. Time2Vec: Learning a Vector Representation of Time, July 2019
- Bryan Lim et al., Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting (International Journal of Forecasting December 2021)
- D. Salinas et al., DeepAR: Probabilistic forecasting with autoregressive recurrent networks, International Journal of Forecasting (2019).
- Andrej Karpathy, Li Fei-Fei, Deep Visual-Semantic Alignments for Generating Image Descriptions
- Lea et al. Temporal convolutional networks for action segmentation and detection (CVPR 2017)
- Bai et al., An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling(2018)
- Dosovitskiy et al., An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale(2020)
- https://www.overfit.cn/post/7d2cd6b9c3e542bbb12bb1636e9b3bb6
作者:Nikos Kafritsas