龙空技术网

5分钟掌握长短期记忆 (LSTM) 网络

自由坦荡的湖泊AI 29

前言:

眼前姐妹们对“网络作用中最基本的功能是什么”大约比较重视,朋友们都需要知道一些“网络作用中最基本的功能是什么”的相关内容。那么小编在网摘上网罗了一些关于“网络作用中最基本的功能是什么””的相关内容,希望姐妹们能喜欢,兄弟们一起来了解一下吧!

循环网络的开发首先是为了通过包含隐藏层和一种回送过程将记忆元素引入神经网络,从而可以按顺序保存长序列中的数据-序列(seq2seq)情况,例如语言、时间序列和其他需要将输入序列转换为输出序列的情况。

然而,很快发现普通 RNN 适合需要短期记忆的任务,但对于需要长期记忆的任务则不太适用。例如,考虑一个语言模型尝试根据先前的单词来预测下一个单词。如果试图预测句子“he roast beef is in the oven””中的最后一个单词,我们不需要任何进一步的上下文。很明显,下一个词将是over。在这种情况下,当相关信息和需要它的地方之间的差距很小时,RNN 可以学习使用过去的信息。

但也有一些情况需要更多背景信息。考虑尝试预测文本中的最后一个单词“Fred is a support of Donald Trump.”。弗雷德可能是一名注册共和党人。”周围的信息表明下一个单词可能是一个政党的名称,但如果想知道是哪个特定政党,需要前一句话的更大上下文及其含义。相关信息与需要的信息之间的差距很可能会变得非常大。这正是 RNN 表现不佳的地方。

梯度消失问题

经典 RNN 中出现梯度消失问题是因为它们使用了一种称为随时间反向传播 (BPTT) 的反向传播变体。在下图中,可以看到循环神经网络在某个时间步处理输入a_n并为下一个时间步生成预测y_{t+1} 。前一次的隐藏状态也会传递到网络,并且通常是 t=0 时的零向量。

当时间展开时,可以看到输入a_t在整个时域中的链式传递。还看到隐藏状态随着时间的推移而变化,不断用于生成后续输入。本质上是在“复制”网络,但网络的每个副本都具有相同的参数。然后可以像往常一样简单地应用反向传播来计算梯度。

这就是问题出现的地方。为了保证神经网络能够学习处理非线性数据,需要在网络中添加非线性激活函数。

下图清楚地说明了为什么如果反向传播必须缠绕的“副本”链很长,梯度就会“消失”:Sigmoid 导数的最大值 < 0.3!如果Sigmoid 的导数跨三个时间步,梯度就会很快接近 0。上游层受到的影响最大,因为当序列太长时它们完全停止学习。这就是梯度消失问题。

LSTM 网络

长短期记忆网络(通常简称为“LSTM”)是一种特殊的 RNN,能够学习长期依赖性。它们由Hochreiter & Schmidhuber (1997)提出,并在随后的工作中被许多人完善和推广。它们在解决各种各样的问题上都表现得非常好,并且在Transformer兴起之前就被广泛使用。

所有循环神经网络都具有神经网络重复模块链的形式。在标准 RNN 中,这个重复模块将具有非常简单的结构,例如单个 tanh 层。

LSTM 也具有链式结构,但重复模块具有不同的结构。有四个神经网络以一种特殊的方式相互作用,而不是一个。

LSTM的基本思想

LSTM 与 RNN 的本质区别以及使它们能够进行长期短期记忆的本质区别在于单元状态,即从左到右贯穿图表的水平线。它充当一种直接贯穿整个链条的传送带。信息很容易不受影。

LSTM 具有门构在单元状态中添加或删除信息的能力

门由 sigmoid 神经网络层和逐点( Hadamard)乘法运算符组成,如下所示。

sigmoid 函数输出 0 到 1 之间的数字。零表示不让任何数据通过,1 表示让所有数据通过。 LSTM 具有三个控制数据操作的门(遗忘门、输入门和输出门)。

LSTM 的详细工作原理

LSTM 模型的第一步是决定希望从细胞状态中丢弃哪些信息。负责此决定的门是“忘记门层”。它查看连接的 h_{t-1} 和 x_t,并应用 sigmoid 函数,为前一个单元状态 C_{t-1] 中的每

遗忘门的数学定义如下:

以及示意图如下:

第二步

现在希望在单元状态中存储哪些新的或更新的信息。这就是更新们,它有两个部分。首先,称为“输入门层”的 sigmoid 层决定哪些值将被更新。然后,tanh 层创建一个候选值向量C ~_t,可以将其添加到状态中。然后将这两个步骤结合起来生成状态更新。

更新门的定义如下骤):

图中的相关部分突出显示如下:

下一步是将旧的单元状态 C_{t-1} 更新为新的单元状态 C_t。前面的步骤决定了要做什么,现在实际上已经完成了。

将旧状态乘以f_t,忘记了之前决定忘记的事情。然添加i_t * C ~ _t,这是新的候选值,根据决定更新每个状态值的量进行缩放。

定义和图表的相关部分如下所示:

需要决定的最后一件事是输出。。首先,我用 sigmoid 层来决定将输出单元状态的哪些部分。然后,将其全部通过 tanh(强制值介于 -1 和 1 之间),并将其乘以 sigmoid 门的输出。

这是图表和定义:

LSTM 的局限性和 Transformer 的兴起

在 2010 年代,LSTM 是机器翻译等序列到序列学习活动的首选网络类型。然而,还有一个 LSTM 也没有解决的瓶颈:处理必须按顺序进行。序列的每个部分必须按顺序馈送到网络,之后基于每个令牌计算转导。

Vaswani 等人在017)提出了 Transformer 架构),它允许通过剥离架构中的重复方面来实现并行性。

标签: #网络作用中最基本的功能是什么