lstm原文_NLP中应用最广泛的特征抽取模型-LSTM,虽老生常谈,却不乏新意

RNN梯度消失原因详解:https://t.zsxq.com/7qzRBeE

那好,既然RNN有这样的问题,该怎么解决呢?我们今天的主角LSTM(Long Short-Term Memory)就该登场了。

1 LSTM的提出

在LSTM提出之前,RNN的训练基于BPTT(Back-Propagation Through Time)或者RTRL(Real Time Recurrent Learning)。通过这两种方式对RNN进行训练时,当误差在序列内进行传播时,会出现梯度消失或者爆炸的情况。

当出现梯度爆炸时,在训练时,权重会出现摇摆和震荡;梯度消失使得训练会耗费大量的时间,甚至干脆就停滞。

基于这样的情况,两位大神Sepp Hochreiter和Jürgen Schmidhuber提出了LSTM:

Hochreiter, S, and J. Schmidhuber. "Long short-term memory." Neural Computation 9.8(1997):1735-1780.

我们先回顾一下RNN的误差传递公式:

820f4613a84ff2ea560fc5408240ee98.png

一个很简单的想法,如果误差在不同时刻相互连接的RNN单元之间,传递的是一个常量,即令下式是一个常量。其中f为激活函数。

46d78f660c05c213c1d2e8f93a6469b2.png

这样,梯度消失或者爆炸的问题是不是就可以解决了?

因此,Sepp Hochreiter和Jürgen Schmidhuber提出了CEC(Constant Error Carrousel),这也是LSTM的核心特点。

所谓CEC,就是令

9cbb1232d8334b45bdcb02a1ef4cb641.png

Sepp Hochreiter和Jürgen Schmidhuber指出可以选择恒等函数作为激活函数,并且令w_j,j=1便可满足上式,保证梯度在误差随时间传递之后不至于出现梯度消失或者梯度爆炸。这个想法很简单和朴素,因此Sepp Hochreiter和Jürgen Schmidhuber称之为Naive Approach

但是对RNN仅仅是做这样的修改也还会有一些问题,不管是输入权重还是输出权重,在更新都既要考虑“记住”前面时刻的内容;又要考虑不要让前面时刻的内容干扰到当前时刻的输入,这种矛盾会使训练变得困难。因此两位大神针对这个问题,设计新的模型结构,下面介绍LSTM的模型结构。

2 LSTM的结构

现在网络上讲LSTM结构的文章,实在是太多了,小Dream哥本来是不想再讲的。出于文章完整性和系统性的考虑,这里还是将LSTM的模型结构和前向传播过程列一下。

lstm原文_NLP中应用最广泛的特征抽取模型-LSTM,虽老生常谈,却不乏新意_第1张图片

可以看到LSTM的结构要比RNN的复杂的多,其主要是增加了细胞状态和3个门结构。看上去比较复杂,同学们先不要着急,下面我们一步一步来讲一讲LSTM的结构。

lstm原文_NLP中应用最广泛的特征抽取模型-LSTM,虽老生常谈,却不乏新意_第2张图片

如上图,细胞状态C_t横向穿过,看起来像一条传送带,只是经过了少量的线性变化,因此状态容易保持下来。

lstm原文_NLP中应用最广泛的特征抽取模型-LSTM,虽老生常谈,却不乏新意_第3张图片

上图是LSTM的第一个门,遗忘门。这个门根据输入信息(h_t-1和x_t)决定要忘记细胞状态C_t-1的哪些部分。

接下来是信息更新门,决定了细胞状态C_t,它分为两个部分。

lstm原文_NLP中应用最广泛的特征抽取模型-LSTM,虽老生常谈,却不乏新意_第4张图片

第一步,根据输入信息,用tanh产生该时刻需要更新到细胞状态中的内容;用sigmoid函数产生更新的比例。

lstm原文_NLP中应用最广泛的特征抽取模型-LSTM,虽老生常谈,却不乏新意_第5张图片

第二步,将需要更新的内容更新到细胞状态中去,生成C_t。

lstm原文_NLP中应用最广泛的特征抽取模型-LSTM,虽老生常谈,却不乏新意_第6张图片

最后,是输出门。根据新的细胞状态和输入信息,产生新的输出h_t。

上面大致介绍了LSTM的结构,及其前向传播过程,图片来自:

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

这里先总结一下,LSTM在原本RNN的基础上增加了CEC的内容,CEC保证了误差以常数的形式在网络中流动,这部分通过引入细胞状态C来体现。并且,为了解决输入和输出在参数更新时的矛盾,在CEC的基础上添加3个门使得模型变成非线性的,就可以调整不同时序的输出对模型后续动作的影响。

3 LSTM局限性

LSTM提出之后,在语音处理、机器翻译、实体识别等NLP领域迅速取得很好的效果,在工业界获得很好的应用。但其也有一定的局限性,下面我们做一下介绍。

(1) 相较于RNN,LSTM的网络结构复杂很多,因为引入了更多的权重参数,这增加了计算的复杂度。

(2) 不管是RNN,还是它的衍生LSTM等,都需要随着时间推移进行顺序处理。因此对于输入序列的处理效率很低。

(3) 特征提取能力不强,t时刻的输入不能提取到t时刻之后序列信息的内容。这点在transformer出来之后,体现的尤为明显。

总结

上文详细讲述了LSTM提出的由来,大致介绍了其模型结构,由此分析了其能够解决RNN无法训练的问题。最后,介绍了LSTM的局限性。

LSTM是一个应用广泛的模型,但随着Attention机制的提出,transfomer开始作为一种更为强大的特征抽取模型,开始横扫各大NLP任务的榜单。不出意外,transformer将会取代RNN及其衍生(LSTM GRU)模型,成为NLP中,最受欢迎、最为强大的特征抽取模型。

原文转自:https://zhuanlan.zhihu.com/p/73742835

你可能感兴趣的:(lstm原文)