LSTM还没「死」(二)

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
简介: LSTM还没「死」(二)

LSTM的隐藏优势:条件输出


条件输出是 LSTM 最被忽视的优势之一,许多数据科学从业者仍然没有意识到这一点。如果你一直在用原始循环网络,就会发现这种类型的网络只能处理被表示为具有各种依赖关系的序列的时序数据。但是,它们不能直接对静态元数据或非时变数据进行建模。


在 NLP 中,静态元数据是不相关的。相反,NLP 模型专注于单词词汇表,其中每个单词都由嵌入表示,这是整个模型的统一概念。每个单词所来自文档的类型并不重要,只要 NLP 模型可以学习每个单词的正确上下文感知表示即可。但要记住:一个特定的单词可以有不同的嵌入,这取决于它的含义和它在句子中的位置。


但是,在时间序列模型中,非时变数据的影响要大得多。例如,假设我们有一个涉及商店产品的销售预测场景,产品的销量可以建模为时间序列,但也会受到假期等外部因素的影响。因此,一个好的预测模型也应该考虑这些变量。这就是TFT所做的,参见下图 5。

482d7c0ea787f4cfeabc59ef0a7885e0.png

_图5:外部静态变量对预测的影响_


但是,TFT是如何实现的呢?TFT 专为集成静态元数据而设计,它使用了各种技术,最重要的一个与 LSTM有关。


LSTM 使用 [11] 中首次介绍的技巧无缝地执行此任务:没有将 LSTM 的初始 h_0 隐藏状态和单元状态 c_0 设置为 0(或随机),而是使用指定向量或嵌入来初始化它们。或者正如 TFT 所做的一样,在拟合期间使这些向量可训练。通过这种方式,LSTM 单元的输出可以适当地在外部变量上发挥作用,而不会影响其时间依赖性。


LSTM vs TCN



在注意力和Transformer出现之前,有另一种有望改变现状的模型,即时间卷积网络(Temporal Convolutional Networks, TCN)。


TCN 在 2016年首次提出并在2018年规范化,它利用卷积网络对基于序列的数据进行建模。自然地,它们也是时间序列预测任务的理想方案。


558fec081c0d2ab80b1e289ee4e3165e.png


_扩张卷积示意图,其中过滤器大小k = 3,扩张因子d = 1, 2, 4。感受野可以覆盖来自输入序列的所有数据点x_0…x_T。图源:_https://arxiv.org/pdf/1803.01271.pdf


TCN 的「秘密武器」是扩张卷积,如上图6所示。标准CNN 使用固定大小的内核/过滤器,因此它们只能覆盖邻近的数据元素。TCN使用扩张卷积,它们在不同长度的输入序列上使用填充(padding),从而能够检测彼此邻近但位置完全不同的item之间的依赖关系。


此外,TCN 中还使用了其他技术,例如残差连接,它现在已经成为深度网络的标准。这里主要关注 LSTM与TCN之间的差异:


  • 速度:一般来说,TCN 比 LSTM 快,因为它们使用卷积,可以并行完成。但在实践中,通过使用大量扩张,并考虑到残差连接,TCN 最终可能会变慢;


  • 输入长度:TCN 和 LSTM 都能够接受可变长度输入;


  • 内存:平均而言,TCN 比 LSTM 需要更多内存,因为每个序列都由多个扩张层处理。同样,这取决于定义每个模型变得有多复杂的超参数;


  • 性能:最初的论文表明 TCN 优于LSTM。然而,在实践中,情况并非总是如此。[13] 中的一项更详尽的研究表明,在某些任务中,TCN 更好,而在其他任务中,LSTM 更有效。


TCN和LSTM都有各自的优缺点。最好的方法是对它们进行评估,找到最适合自己的方案。但要注意,除非你的用例非常小,否则无法通过单个TCN或LSTM模型实现 SOTA 性能。现代用例会考虑更多外部参数,这就需要更具挑战性的方法。反过来,这也就意味着必须使用多个组件或模型。


Kaggle中的深度学习和时间序列



到目前为止,我们一直在从学术角度评估单个模型。然而,如果我们要制定一个更详细的观点,就不能忽略实际应用。


Kaggle提供了一个很好的评估基准,我们以 Kaggle 比赛为例:呼吸机压力预测。该比赛任务是根据控制输入的序列预测机械肺内的压力序列。


这场比赛之所以具有挑战性,有三个原因:


  • 比赛需要同时解决回归和分类任务;


  • 数据集为创造性特征工程打开了大门;


  • 由于每个主题/数据点都用不同的序列表示,因此使用统计模型是不可行的。


现在,有两个比较有趣的地方介绍一下:第一个是排名前三的团队以及其他许多团队在他们的最终解决方案中至少使用了一个基于LSTM的组件(例如stacked LSTMS,双向LSTMS)。


获胜团队提交了一个多层次深度架构,其中包括一个 LSTM 网络和一个 Transformer 块。此架构如图 7 所示:


9f3697bdfa7daedce64c1e707da7332f.png

_图7:第一名解决方案架构。_


卷积神经网络的命运



我希望这篇文章对LSTM的价值作出了很好的论证。但是毫无疑问Transformer是机器学习领域一个惊人突破。这种突破性的成功将会促进未来更高级别的研究。


2020年,Transformer被改编为计算机视觉版,诞生了vision Transformer (ViT),论文《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》中提出。这篇论文引发了进一步的研究,最终经过不断的升级,ViT模型能够在图像分类任务中优于CNN。


因此,这个阶段,我希望我们不要再说「CNN已经死亡」或者「CNN正在衰落」这样的评价。


总结来讲,本文可以总结为以下几点:


  • 要正确评估机器学习领域的突破所带来的影响几乎是不可能的;


  • Transformer的出现重塑了这一局面:LSTM,尤其是NLP中的LSTM不再是人们关注的焦点;


  • 对于时间序列,LSTM更有用;


  • 数据科学涉及多个领域,例如音频、文本、图形等。这反过来又需要各种方法/模型的结合来应对这些挑战。


相关文章
|
6月前
|
机器学习/深度学习 编解码 搜索推荐
【卷积集】近万字长文总结了日常使用的“卷积”特征,内附代码实现送给准备面试的你
【卷积集】近万字长文总结了日常使用的“卷积”特征,内附代码实现送给准备面试的你
139 0
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
LSTM是什么?哪些地方应用的多?
【10月更文挑战第8天】LSTM是什么?哪些地方应用的多?
178 0
|
1月前
|
机器学习/深度学习 自然语言处理 语音技术
RNN是什么?哪些地方应用的多?
【10月更文挑战第8天】RNN是什么?哪些地方应用的多?
95 0
|
3月前
|
机器学习/深度学习
【机器学习】面试题:LSTM长短期记忆网络的理解?LSTM是怎么解决梯度消失的问题的?还有哪些其它的解决梯度消失或梯度爆炸的方法?
长短时记忆网络(LSTM)的基本概念、解决梯度消失问题的机制,以及介绍了包括梯度裁剪、改变激活函数、残差结构和Batch Normalization在内的其他方法来解决梯度消失或梯度爆炸问题。
151 2
|
机器学习/深度学习 数据采集 自然语言处理
LSTM还没「死」!
LSTM还没「死」!
|
机器学习/深度学习 算法
LSTM最通俗的解释
LSTM最通俗的解释
|
机器学习/深度学习
神经网络中的遗忘,遗忘的作用
神经网络中的遗忘,遗忘的作用
121 0
|
机器学习/深度学习 PyTorch 算法框架/工具
Pytorch基于迁移学习的VGG卷积神经网络-手撕(可直接运行)-部分地方不懂的可以参考我上一篇手撕VGG神经网络的注释 两个基本一样 只是这个网络是迁移过来的
Pytorch基于迁移学习的VGG卷积神经网络-手撕(可直接运行)-部分地方不懂的可以参考我上一篇手撕VGG神经网络的注释 两个基本一样 只是这个网络是迁移过来的