LSTM 已死,事实真是这样吗?
就像 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 之上使用指数平滑的混合模型。
完整文章:
https://www.overfit.cn/post/7d2cd6b9c3e542bbb12bb1636e9b3bb6
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2020-03-25 手写批量线性回归算法:在Python3中梯度下降方法实现模型训练