目录
第1章 前序知识
1.1 RNN循环神经网络模型
1.2 LSTM长短记忆时序模型
1.3 LSTM模型的缺点
第2章 GRU模型详解
2.1 GRU模型概述
2.2 RNN网络结构对比
2.3 LSTM网络结构对比
2.4 GRU网络的结构
2.5 GRU网络特点
第3章 GRU的反向传播
第1章 前序知识
1.1 RNN循环神经网络模型
1.3 LSTM模型的缺点
随着 LSTM 在自然语言处理特别是文本分类任务的广泛应用,人们逐渐发现 LSTM有如下一些缺点:
- 具有训练时间长
- 参数较多
- 内部计算复杂
LSTM的简化模型GRU因运而生。
第2章 GRU模型详解
2.1 GRU模型概述
GRU(Gated Recurrent Unit):门控循环网络
GRU是LSTM网络的一种效果很好的变体,相比较LSTM网络,GRU网络的结构更加简单,效果也很好,同时它也可以较好的解决RNN网络中长依赖、梯度消失等问题。因此也是当前非常流形的一种网络。
2.2 RNN网络结构对比
2.3 LSTM网络结构对比
2.4 GRU网络的结构
(1)输入:与RNN网络一致
- 当前的时序样本输入Xt
- 先前保存的状态Ht-1
- Ht-1与Xt组合成[Ht-1, Xt] ,作为后续控制门的输入
(3)输出:与RNN网络一致
- 输入:[Ht-1, Xt]
- 运算矩阵Wi
- 激活函数Tanh
- 功能:生成本次迭代提取的新的状态特征 ~Ht
- 数学表达式:
(3)Ht-1状态输入重置门:与LSTM类似
- 输入:[Ht-1, Xt]
- 运算矩阵Wr
- 激活函数sigmod
- 输出在[0, 1]之间
- 功能(乘法):用于对先前状态Ht-1的过滤选择。它决定了先前的状态Ht-1,有多大的比例能够参与本次特征状态输出Ht。0表示忽略先前保留的状态,1表示完全使用先前的状态,其他值表示使用先前状态的程度。
- 数学表达式:
(4)Ht状态更新门: 与LSTM类似
- 输入:[Ht-1, Xt]
- 运算矩阵Wz
- 激活函数sigmod
- 输出在[0, 1]之间
- 功能(乘法):用于对当前状态Ht的更新控制。它决定了本次迭代的输出,多大程度可以用于最终的特征状态输出。0表示忽略本次迭代的状态输出,1表示100%使用当前的状态输出,其他值表示使用当前状态的程度。
- 数学表达式:
(5)Ht的状态更新:与LSTM类似
- 输入1= 先前状态Ht-1 * (1 - 状态更新门的输出)
- 输入2 = 当前新生成的状态~Ht * 状态更新门的输出
- 运算:累加/叠加 = 输入1 + 输入2 =》
2.5 GRU网络特点
LSTM和CRU都是通过各种门函数来将重要特征保留下来,这样就保证了在long-term传播的时候也不会丢失。
此外GRU相对于LSTM少了一个门函数,因此在参数的数量上也是要少于LSTM的,所以整体上GRU的训练速度要快于LSTM。
第3章 GRU的反向传播
从前向传播过程中的公式可以看出要学习的参数有Wr、Wz、Wh、Wo。其中前三个参数都是拼接的(因为后先的向量也是拼接的),所以在训练的过程中需要将他们分割出来:
输出层的输入:
输出层的输出:
在得到最终的输出后,就可以写出网络传递的损失,单个样本某时刻的损失为:
则单个样本的在所有时刻的损失为:
采用后向误差传播算法来学习网络,所以先得求损失函数对各参数的偏导(总共有7个):
其中各中间参数为:
在算出了对各参数的偏导之后,就可以更新参数,依次迭代知道损失收敛。