泛统计理论初探——初步理解长短期记忆网络

神经网络学习-介绍长短期记忆网络LSTM

初探长短期记忆网络
    在之前的文章中,我们介绍过循环神经网络RNN的原理,但由于RNN无法对更长的信息进行处理和使用,所以需要引入一种基于RNN的变种的神经网络,也就是所谓的LSTM长短期记忆神经网络。这种网络可以很好地处理间隔较长的信息,也就是自然语言处理中常见的上下文信息,可能在实际情况下预测当前词汇所需要用到的信息在几句话之前或者是上一个段落,这种时候通过LSTM特有的结构可以较好地利用这些信息,下面我们来对LSTM的原理进行介绍。
在这里插入图片描述
    上面这个图就是LSTM神经网络的内部结构,很明显可以看出是有多个非线性激活函数的。那么其实LSTM主要是通过三种门来进行长距离信息的学习,分别是输入门、输出门、遗忘门。通过这三种门和之前的历史状态可以计算得到当前的状态,其中最为重要的是遗忘门,因为它可以通过映射到0和1的区间里进行判定,如果计算的结果越接近于1,就说明要记忆这个信息;而当计算的结果越接近于0,就说明要遗忘这个信息。而LSTM的整套机制是通过如下的公式来实现的。
在这里插入图片描述
    首先是第一行f(t)的公式,也就是所谓的遗忘门,这个门控是LSTM里最重要的机制,正如前一段所介绍的,它通过将历史信息h(t-1)和当前信息x(t)进行结合,并在最外面套了一个δ函数进行映射,该函数选择的是具有非线性特征的sigmoid函数,可以将值映射在0到1之间,通过这个机制可以决定是遗忘历史信息或者记住历史信息。
    其次是第二行和第三行以及第四行的公式,第二行的公式i(t)就是一个输入门,同样也是通过sigmoid函数去进行非线性的映射,从而决定哪些信息需要被输入。而第三行的公式是一个tanh函数,它将历史信息和当前信息进行一个映射,也就是得到一组有可能被输入的信息的汇总。而第四行的公式C(t)是将输入信息和可能遗忘信息的汇总,也就是把代表可能选择要遗忘的可能性f(t)去乘以历史状态C(t-1),然后另一项是要输入的可能性i(t)去乘以备选信息,最后将两项进行加和后得到C(t)为当前状态。
    最后两个公式是输出门,它的思路和之前一样,也是通过一个sigmoid函数去控制输出的可能性,也就是计算得到的o(t) 。并且最后再用tanh函数去映射之前汇总了遗忘信息和当前输入信息的状态C(t),得到一个输出的备选值后最终去乘以输出门的可能性得到最终的输出值h(t) 。所以以上三个大的步骤就是LSTM的处理思路,它用三个门去对历史信息和当前信息进行了汇总,从而达到比RNN循环神经网络更好的预测效果。
    对于LSTM来说,它比RNN在很多场合的预测能力要更准确,而且因为它的乘积与加和汇总机制,在某种程度上解决了RNN的梯度消失的问题。但是不得不说它的缺点也是存在的,因为它内部结构复杂,所以要学习更多的参数,实战中很多人会使用较为精简的GRU神经网络;而另一个问题就是此类序列神经网络的通病,那就是因为其拓扑结构的特异性,导致这种神经网络的训练和计算无法并行化,大大降低了训练速度。
    总的来说,长短期记忆网络是RNN的一个变种网络,在这个基础上其实还有其他的变种比如GRU门控神经网络等,或者是双向的长短期记忆网络等,这些我们在后续的文章会进行介绍。对于LSTM这种神经网络,引入了遗忘门的思路是非常重要的,它可以选择遗忘或是记忆,这种门控制的思路是后续很多处理NLP的神经网络都会使用的,所以初学者需要弄清楚背后的原理和使用场景。

猜你喜欢

转载自blog.csdn.net/qq_26727101/article/details/109906394
今日推荐