LSTM是如何工作的?
时间序列领域中最流行的模型之一是 LSTM——长短期记忆模型。它是一种循环神经网络,大量用于序列预测。在这篇博客中,我们将介绍为什么首选 LSTM 以及它是如何工作的。在进入 LSTM 之前,让我们更深入地了解这些术语的含义。 时间序列分析——在这种情况下,数据点在特定的时间间隔内进行分析。它用于了解一段时间内的模式,可以是每月、每年甚至每天。这种分析可以在股票价格预测或企业中看到。 神经网络——
时间序列领域中最流行的模型之一是 LSTM——长短期记忆模型。它是一种循环神经网络,大量用于序列预测。在这篇博客中,我们将介绍为什么首选 LSTM 以及它是如何工作的。在进入 LSTM 之前,让我们更深入地了解这些术语的含义。
时间序列分析——在这种情况下,数据点在特定的时间间隔内进行分析。它用于了解一段时间内的模式,可以是每月、每年甚至每天。这种分析可以在股票价格预测或企业中看到。
神经网络——神经网络由多种算法组成,主要用于分析各种数据点之间的潜在关系。它的灵感来自生物神经网络。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--pcqpaybG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/pjezap0rgnfr3oztqfzv.png)
循环神经网络(RNN)——如果我们有相关的数据点,那么我们使用 RNN。 RNN 使用内存的概念,在其中存储某些数据点。传统 RNN 的问题在于,随着数据点数量的增加,它们无法记住数据。比如说,我们要处理一段文本来做预测,RNN 可能从一开始就遗漏了重要信息。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--GW60WeFy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to -uploads.s3.amazonaws.com/uploads/articles/0d0yuq9ekf6v50cbcbog.png)
LSTM 是一种特殊类型的 RNN,它可以长期存储数据。它克服了梯度消失和梯度爆炸两个技术问题。 LSTM 模块由一个单元状态和 3 个门组成。细胞状态就像传送带,它允许信息以微小的变化线性流动。该模型确实具有删除或添加信息的能力,这是使用 3 个门完成的。大门有助于调节信息。但由于信息流是线性的,它使流动更容易。
[中的单元格](https://res.cloudinary.com/practicaldev/image/fetch/s--jkKCHgr9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to -uploads.s3.amazonaws.com/uploads/articles/5jaadk4x4nyd54bauhr4.png)
LSTM 架构:
在 LSTM 中,有三个主要步骤。我们要么忘记,要么输入,要么输出。一个类比是新闻频道的工作方式。比方说,他们正在播出一桩命案,最初怀疑死因是中毒,但验尸报告出来后,死因竟然是头部受伤,有关信息中毒被“遗忘”了。
同样,如果有 3 个嫌疑人,然后是另一个嫌疑人。这个人被添加或“输入”。
最后,经过警方的调查,有一个主要嫌疑人,这个信息就会被“输出”。
为了执行这三个步骤,我们有 3 个门。让我们详细看看它们中的每一个:
1\。忘记门:
遗忘门负责删除信息。它删除不再需要分析的信息,并为下一个信息腾出空间。这有助于模型变得更有效率。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--nhIw-U9h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/uploads/articles/93tt3wo4dm4dd6hm3epy.png)
这个门有 2 个输入,
-
ht_1:前一个单元格的隐藏状态
-
x_t:在特定步骤输入
这些输入乘以权重矩阵,然后添加一个偏差。在此之后,将 sigmoid 函数应用于计算值。 sigmoid 函数给出 0 到 1 之间的输出。这有助于模型决定要“忘记”哪些信息。如果输出为 0,则该单元格的信息被完全遗忘。类似地,如果输出为 1,则要记住整个单元格的信息。来自 sigmoid 函数的向量输出与细胞状态相乘。
2\。输入门:
顾名思义,此门用于向单元状态添加信息。这是它的结构,
[](https://res.cloudinary.com/practicaldev/image/fetch/s--ZLnn-5gT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/uploads/articles/57hsemr00h79zbmi32ua.png)
首先,需要添加的值使用 sigmoid 函数进行调节。输入仍然是 h_t-1 和 x_t。接下来,创建一个向量,其中包含要添加到单元状态的所有可能值。这是使用 tan h 函数完成的。 Tan 输出一个介于 -1 到 +1 之间的值。调节函数(sigmoid 函数)的值与创建的向量相乘。然后使用加法操作将有用信息添加到单元状态。
这使我们能够确保我们只有过滤和重要的信息。
3\。输出门:
此门用于使用当前可用的信息并显示最相关的输出。它看起来像这样:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--_KJhupzS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/0f3ix63mcvyc501sodzj.png)
将 tan h 函数应用于单元状态后,将创建一个向量。输出范围在 -1 和 +1 之间。 sigmoid 函数再次用于调节需要使用 h_t-1 和 x_t 从向量中输出的值。调节函数的值与向量相乘并作为输出发送。它也被发送到下一个单元格的隐藏状态。
LSTM 已被证明可以在序列预测中提供最先进的结果。它用于复杂的问题领域,如机器翻译、语音识别、文本生成等。我希望这能让你对 LSTM 模型的工作原理有一个基本的了解。
参考:
深度学习要点:长短期记忆简介
了解 LSTM 网络
LSTM 和 GRU 图解指南:逐步说明
更多推荐
所有评论(0)