传统的神经网络,层与层之间是全连接的,但是每层内部的节点是无连接的,因此无法利用上下文关系。
1.RNN
RNN最大的不同之处就是在每层内部的节点之间也建立起权连接。

- 针对问题:训练样本是序列数据
- 模型思想:循环反馈
-
模型特点:
(1)当前时间的隐藏状态是由上一时间的隐藏状态和当前时间的输入x共同决定的
(2)U、V、W权值共享
- 模型缺点:梯度消失,无法处理长序列数据(解决:LSTM、GRU)
RNN的前向传播
基于时间反向传播BPTT
循环神经网络(RNN)模型与前向反向传播算法 - 刘建平Pinard - 博客园
https://www.cnblogs.com/pinard/p/6509630.html
RNN的缺点
梯度爆炸/消失、很难学到长距离的信息依赖
2.LSTM
使用LSTM模型可以更好的捕捉到较长距离的依赖关系。因为LSTM通过训练过程可以学到记忆哪些信息和遗忘哪些信息。
针对RNN梯度消失问题,LSTM对序列索引位置t的隐藏结构做改进:
- 新增另一个隐藏状态,称为细胞状态(LSTM的核心思想)
- 设置门控结构控制细胞状态:遗忘门、输入门、输出门
2.1 遗忘门
遗忘门决定了上一时刻的细胞状态 C ( t − 1 ) C^{(t-1)} C(t−1)(代表长期的记忆) 有多少保留到当前时刻的细胞状态 C ( t ) C^{(t)} C(t)。
遗忘门 f ( t ) f^{(t)} f(t)的公式形式和RNN的隐藏状态 h ( t ) h^{(t)} h(t)更新公式一致,区别在于激活函数,RNN是tanh激活函数,取值[-1,1],遗忘门是sigmoid函数,取值[0,1]代表遗忘概率。
2.2 输入门
输入门决定了当前时刻的输入 x ( t ) x^{(t)} x(t)(代表当前记忆) 有多少保存到当前时刻的细胞状态 C ( t ) C^{(t)} C(t)
输入门的第一部分 i ( t ) i^{(t)} i(t)表示保存概率,取值[0,1],公式形式和遗忘门完全一样,第二部分 a ( t ) a^{(t)} a(t)代表当前的记忆,公式形式则和RNN的隐藏状态 h ( t ) h^{(t)} h(t)更新公式完全一致。
2.3 细胞状态更新
在研究LSTM输出门之前,我们要先看看LSTM之细胞状态。前面的遗忘门和输入门的结果都会作用于细胞状态 C ( t ) C^{(t)} C(t)。
2.4 输出门
输出门决定了当前细胞状态 C ( t ) C^{(t)} C(t) 有多少输出到 LSTM 的当前输出值 h ( t ) h^{(t)} h(t)。
输出门的第一部分 o ( t ) o^{(t)} o(t)表示保存概率,公式形式和遗忘门完全一样
LSTM的前向传播
LSTM的反向传播
LSTM模型与前向反向传播算法 - 刘建平Pinard - 博客园
https://www.cnblogs.com/pinard/p/6519110.html
LSTM的缺点:
利用LSTM对句子进行建模时无法编码从后到前的信息
3.双向长短期记忆网络(BiLSTM)
通过BiLSTM可以更好的捕捉双向的语义依赖。