LSTM-长短期神经网络

        LSTM是特殊的RNN,尤其适合顺序序列数据的处理,内部由遗忘门、输入门和输出门组成,循环神经网络(RNNs):通过不断将信息循环操作,保证信息持续存在,从而解决不能结合经验来理解当前问题的问题。RNN和LSTM都只能依据之前时刻的时序信息来预测下一时刻的输出

 

LSTM-长短期神经网络_第1张图片

        

图中可看出A允许将信息不断的在内部循环,这可以使其保证每一步的计算都能保存以前的信息。

把RNNs自循环结构展开,可以看成是同一个网络复制多次并连成一条线,把自身信息传递给下一时刻的自己。

LSTM-长短期神经网络_第2张图片

为了避免RNN出现的梯度消息情况,引出了LSTM的结构如下:

LSTM-长短期神经网络_第3张图片 LSTM内部有四个网络层,这不同于标准RNN网络里只有一个网络层的单元。

LSTM-长短期神经网络_第4张图片

  • Neural Network Layer:激活函数操作

  • Pointwise Operation:点操作

  • Vector Transfer:数据流向

  • Concatenate:表示向量的合并(concat)操作

  • Copy:向量的拷贝

    LSTM核心是细胞状态,穿过图的顶部的长横线,长直线称之为细胞状态(Cell State),决定什么样的信息会被保留,什么样的信息会被遗忘,记为C(t)。

细胞状态像传送带一样,它贯穿整个细胞却只有很少的分支,这样能保证信息不变的流过整个RNN,细胞状态如下图所示:

LSTM-长短期神经网络_第5张图片

LSTM网络能通过一种被称为门的结构对细胞状态进行删除或者添加信息。

门能够有选择性的决定让哪些信息通过。门的结构为一个sigmoid层和一个点乘操作的组合:

LSTM-长短期神经网络_第6张图片

门的结构

sigmoid层输出0-1的向量,控制多少信息能流过sigmoid层,0表示不能通过,1表示可通过。

★ LSTM由遗忘门、输入门和输出门这三个门来控制细胞状态。

Step1:遗忘门

LSTM-长短期神经网络_第7张图片

        决定细胞状态需要丢弃哪些信息,通过遗忘门的sigmoid单元处理,它通过查看h(t-1)和x(t)

信息来输出一个0-1之间的向量,向量中的0-1值决定细胞状态C(t-1)中哪些信息保留或丢弃,结构如下:

LSTM-长短期神经网络_第8张图片

计算:

LSTM-长短期神经网络_第9张图片

Step2:输入门:它的作用是处理哪部分应该被添加到细胞状态中

LSTM-长短期神经网络_第10张图片

LSTM-长短期神经网络_第11张图片

        决定给细胞状态添加哪些新信息。①利用h(t-1)和x(t)通过输入门的操作决定更新哪些信息;②利用h(t-1)和x(t)通过一个tanh层得到新的候选细胞信息C~(t),这些信息可能会被更新到细胞信息中。

Step3:更新细胞状态(对传送带的更新)

        将旧的细胞信息C(t-1)更新为新的细胞信息。更新规则为:通过遗忘门选择忘记旧细胞信息的一部分,然后通过输入门添加候选细胞信息C ~(t)的一部分得到新的细胞信息C(t).

LSTM-长短期神经网络_第12张图片

LSTM-长短期神经网络_第13张图片

Step4:

        输出门(output gate)由 o(t) 控制,在这一时刻的输出 h(t)和 y(t) 就是由输出门控制的 h(t)的更新由两部分组成,第一部分是o(t), 它由上一序列的隐藏状态h(t−1)和本序列数据x(t),以及激活函数sigmoid得到,第二部分由隐藏状态C(t)和tanh激活函数组成。

        更新完细胞状态后需要根据输入的h(t-1)和x(t)来判断输出细胞的哪些状态特征。①经过被称为输出门的sigmoid层得到判断条件,然后将细胞状态经过tanh层得到一个[ − 1 , 1 ] 间的向量,该向量与输入门得到的判断条件相乘即得到最终RNN单元的输出:

LSTM-长短期神经网络_第14张图片

LSTM-长短期神经网络_第15张图片

LSTM-长短期神经网络_第16张图片

简要来说,LSTM 单元能够学习到识别重要输入(输入门作用),存储进长时状态,并保存必要的时间(遗忘门功能),并学会提取当前输出所需要的记忆。

  1. 门循环单元(GRU)

它将忘记门和输入门合并成一个新的门,称为更新门。GRU还有一个门称为重置门。

LSTM-长短期神经网络_第17张图片

        其中重置门为上图中前面那个门,决定了如何将新的输入信息与前面的记忆相结合。更新门为上图中后面那个门,定义了前面记忆保存到当前时间步的量。由于该模型比标准LSTM模型更简单,因此被广泛应用。

参数数量:

LSTM-长短期神经网络_第18张图片

LSTM:

LSTM-长短期神经网络_第19张图片

LSTM-长短期神经网络_第20张图片

RNN的提升改进:

(1)多层RNN

LSTM-长短期神经网络_第21张图片

keras代码:

LSTM-长短期神经网络_第22张图片

(2)双向RNN:

LSTM-长短期神经网络_第23张图片

 只保留两条链最后的状态,即h(t) 和 h(t'),其余状态被舍弃。

LSTM-长短期神经网络_第24张图片

双向LSTM参数比单向的LSTM参数多一倍。

LSTM-长短期神经网络_第25张图片

解决Embedding层带来的参数过多导致过拟合的问题——————-预训练解决

你可能感兴趣的:(深度学习,NLP)