在上一篇文章中,我们研究了处理非时间序列数据的模型。是时候转向其他一些型号了。在这里,我们将讨论深度顺序模型。它们主要用于处理/预测时间序列数据。

简单递归神经网络(RNN)/ Elman网络

简单的递归神经网络(也称为RNN)将时间序列问题视为计算机视觉的CNN。在时间序列问题中,您将一个值序列提供给模型,并要求其预测该序列的下n个值。RNN会遍历序列的每个值,同时建立对所见事物的记忆,这有助于它预测未来的情况。

打个比方:新的和改进的秘密火车

我小时候玩过这个游戏,您可能会用另一个名字知道这一点。要求孩子们排成一排,然后您会随机向该行中的第一个孩子小声说。孩子应该在该单词上添加一个适当的单词,然后对下一个孩子说悄悄话,依此类推。等到消息传到最后一个孩子的时候,您应该有了一个激动人心的故事,这个故事是由孩子的想象力酝酿的。

计算深度学习推理时间 深度学习算法_时间序列

输入简单的RNN!这是RNN的关键。它以时间t_x (t)(最后一个孩子的新单词)的输入和时间t-1 - h(t-1)(消息的先前单词)的状态作为输入,并产生输出y( t)(上一条消息+上一个孩子的新单词+您的新单词)。

训练RNN后,您可以(但通常不会)永远预测,因为时间t的预测(即y(t))成为t + 1的输入(即y(t)= x(t +1))。这是RNN在现实世界中的样子。

计算深度学习推理时间 深度学习算法_应用领域_02

RNN在情感分析问题中的工作方式。它在产生状态(红色球)时从一个单词到另一个单词。最终,有一个完全连接的网络(FCN),它采用最后一个状态并产生一个标签(正/负/中性)。

应用领域

时间序列预测(例如天气/销售预测)

情感分析-给定电影/产品评论(一系列单词),预测其是否为负面/正面/中性。

语言建模-考虑到故事的一部分,请想象故事的其余部分/ 根据描述生成代码

长短期记忆网络

LSTM是RNN-ville的酷新手。LSTM比RNN复杂,并且比RNN记忆的时间更长。LSTM还将遍历序列的每个值,同时建立对所见内容的记忆,这有助于它预测未来的情况。但是还记得RNN具有单一状态(代表内存)吗?LSTM具有两种状态(一种是长期的,一种是短期的),因此命名为LSTM。(了解更多:LSTM

打个比方:快餐连锁店

所有这些解释使我感到饥饿!因此,让我们进入快餐连锁店。这是一个字面意义上的链,因为如果您点餐,那么一家汉堡店就会做汉堡,其他薯条等等。在这次快餐之旅中,您将转到第一家商店,然后说以下话。

我需要一个带烤老虎面包和烤鸡肉的汉堡。

有一个人下订单(绿色),然后将信息发送给红色人,比方说他敬酒了面包。与蓝色人物交流时,他可以放下烘烤的部分,然后说:

一个汉堡配老虎面包和烤鸡

(我们仍然需要烤制部分,因为下一家商店将根据烤制部分决定酱料)。然后,您开车去下一家商店说:

加上切达干酪,大薯条,我穿着绿色T恤

现在,绿色人知道他的T恤颜色完全无关紧要,因此放弃了该部分。该商店还从先前的商店中获得红色和蓝色的信息。接下来,他们将加入酱汁,准备薯片。如果我们以后需要(如果客户投诉),第二家商店的红色人员将持有大部分订购说明。但是他只会说

汉堡和大薯条

对蓝人来说,这就是他要做的全部工作。最后,您可以从第二家商店的输出终端获得订单。

计算深度学习推理时间 深度学习算法_神经网络_03

快餐连锁店。有三个人。绿色(输入),红色(电池状态)和蓝色(输出状态)。他们还可以从您提供的输入中丢弃某些信息,也可以在内部处理它们时丢弃信息。

LSTM与该链的运作方式相距不远。在给定的时间t,

输入x(t)(在示例中为客户),

输出状态h(t-1)(先前商店的蓝色人物)和

单元格状态c(t-1)(先前商店的红色人物)。

并产生,

输出状态h(t)(这家商店中的蓝人),并且

单元格状态c(t)(这家商店中的红色人)

但是,LSTM具有门控机制,而不是对这些元素进行直接计算,它可以用来确定允许这些元素从中流过多少信息。例如,记住当客户说“我在第二家商店里穿着绿色的T恤”时,发生了什么情况,绿色的人(输入门)丢弃了该信息,因为这对订单并不重要。另一个例子是,当红色的人掉下面包在第一家商店烤面包的部分时。LSTM单元中有许多门。即

输入门(绿色人)-丢弃对输入无用的信息。

忘记门(红色人员的一部分)-丢弃在先前的电池状态下无用的信息

输出门(蓝色人的一部分)-丢弃对单元格状态无用的信息,以生成输出状态

如您所见,交互非常复杂。但主要的收获是,

LSTM维护两个状态(输出-短期状态和单元状态-长期状态),并在计算最终和临时输出时使用门控来丢弃信息。

这就是LSTM的样子。

计算深度学习推理时间 深度学习算法_神经网络_04

现实世界中的LSTM。您会看到这是一个复杂的连接迷宫。因此,此时不要试图了解它们之间的连接方式。了解所涉及的各种实体。红色虚线球表示由LSTM单元计算的中间输出

应用领域

与RNN相同

门控循环单元(GRU)

!我离开时,LSTM确实造成了损失。GRU是LSTM的后继产品,它简化了LSTM未来的机制,而又不会损害性能。(了解更多:GRU [1] [2])

打个比方:快餐连锁店v2.0

不要成为食品评论家,但是我们前面看到的快餐连锁店看起来效率很低。有办法提高效率吗?这是一种方法。

计算深度学习推理时间 深度学习算法_应用领域_05

新的和改进的快餐连锁店。我们不再得到红色人。这将减少延迟,并帮助您更快地康复。

摆脱红色的人(细胞状态)。现在,长期记忆和短期记忆都由绿色人员(输出状态)管理。

只有一个输入门和一个输出门(即,不要忘记门)

您可以将GRU视为简单RNN和LSTM之间的中间人。这就是GRU的样子。

计算深度学习推理时间 深度学习算法_应用领域_06

现实世界中的GRU。尽管它不像LSTM那样复杂,但仍然有很多不足之处。因此,此时不要试图了解它们之间的连接方式。了解所涉及的各种实体。红色虚线球表示由GRU单元计算的临时输出。

应用范围:

与RNN相同

结论

我们研究了简单的RNN,LSTM和GRU。这是主要的要点。

简单的RNN-一种简单的模型,它从一个时间步长过渡到另一个时间步长,同时在每个步骤上生成输出状态(无门控机制)

LSTM-非常复杂。有两个状态;单元状态(长期)和输出状态(短期)。它还具有控制机制,可以控制有多少信息流过该模型。

GRU — RNN和LSTM之间的折衷方案。仅具有一种输出状态,但仍具有门控机制。