LSTM及其变体学习记录

        在自然语言处理中会有这样一种情况:句子的前后之间有着某种关联。而有着这种关联的句子如果在适当的模型中进行训练就能够实现预测下一个词出现的可能性。但典型的CNN网络并不能通过训练获取这种前后关联的时序关系,它不能保持之前所习得的知识。而RNN就解决了这个问题,RNN(Recurrent Neural Network)时包含循环的网络,它允许了信息的持久化。

        上图为一个RNN结构,可以看出,RNN可以视作时同一种神经网络的多次复制,且每一个神经网络模块都会将当前消息传递给下一个网络。


什么是LSTM?

        LSTM,全称是Long Short-Term Memory,属于RNN的一种。由于其结构特点,使得LSTM非常适合用于时序数据的建模。
        从自然语言处理的角度,典型的神经网络往往采用加和的方法对句子进行判断情感极性,比如"I do not love him."其中在"not"上被判作负值,"love"会被判作正值,但句子的情感极性是明显偏贬义的,而直接加和往往会失掉前后关联,比如“do not”是对于“love”的否定。但LSTM模型能够更好的捕获较长距离的依赖关系,因为LSTM可以通过训练过程学到记忆或是遗忘某些信息。


LSTM的框架:

        LSTM模型是由t时刻的输入LSTM及其变体学习记录、细胞状态LSTM及其变体学习记录、临时细胞状态LSTM及其变体学习记录、隐层状态LSTM及其变体学习记录、遗忘门LSTM及其变体学习记录、记忆门LSTM及其变体学习记录、输出门LSTM及其变体学习记录组成。LSTM通过细胞状态中信息遗忘和记忆新的信息使得对后续时刻计算有用的信息得以传递,其无用的信息被丢弃。在每个单元都输出一个隐层状态LSTM及其变体学习记录,其中遗忘LSTM及其变体学习记录、记忆LSTM及其变体学习记录和输出LSTM及其变体学习记录由上个时刻的隐层状态和当前输出计算出的遗忘门LSTM及其变体学习记录、记忆门LSTM及其变体学习记录和输出门LSTM及其变体学习记录来控制。


LSTM的计算过程:

1、遗忘门:选择需要遗忘的信息

输入为前一单元的隐层状态LSTM及其变体学习记录和当前时刻的单元LSTM及其变体学习记录,通过LSTM及其变体学习记录函数计算得到遗忘门LSTM及其变体学习记录的值

2、记忆门:选择需要记忆的信息
输入为前一单元的隐层状态LSTM及其变体学习记录和当前单元的输入LSTM及其变体学习记录,通过LSTM及其变体学习记录函数输出记忆门LSTM及其变体学习记录和临时细胞状态LSTM及其变体学习记录的值

3、计算当前时刻细胞状态


输入为记忆门LSTM及其变体学习记录、遗忘门LSTM及其变体学习记录和临时细胞状态LSTM及其变体学习记录、上一单元细胞状态LSTM及其变体学习记录,通过式LSTM及其变体学习记录计算得到当前单元细胞状态LSTM及其变体学习记录的值

4、输出门和当前单元隐层状态


输入为前一单元隐层状态LSTM及其变体学习记录、当前单元输入LSTM及其变体学习记录,通过σ函数计算得到输出门的值;再由输出门LSTM及其变体学习记录和当前单元细胞状态LSTM及其变体学习记录通过式LSTM及其变体学习记录计算得到当前单元隐层状态

最终我们可以得到与输入长度相同的隐层状态序列。


        但是,尽管LSTM对于语义的前后联系已经有着一定的作用,但很明显其输入和训练都是基于时序的。也就是说,它并不能编码从后到前的信息,即如果我们对某个词的形容出现在后半部分,那么LSTM并不能够准确地判断该句子。所以BiLSTM(Bi-directional Long Short-Term Memory)也就应运而生了,它是由前向LSTM和后向LSTM组合而成,能够更好地捕捉到双向的语义依赖。


BiLSTM

上一篇:回归预测 | MATLAB实现Attention-LSTM(注意力机制长短期记忆神经网络)多输入单输出


下一篇:NLP学习笔记<4> 循环神经网络RNN之()LSTM