传统RNN -> cell 为 LSTM / GRU 结构的RNN 。
总结
RNN不能保持 长期依赖(会远距离梯度消失,不能学到远距离的依赖关系),LSTM/GRU 这样的 选择性记忆的门控网络 缓解了这个问题。
LSTM的输入输出
在时刻𝑡 ,
LSTM单元的输入是:单词𝑥𝑡 (词向量),上一个时刻的状态向量𝑐𝑡−1 (上边的横线) 和 上一个时刻的隐状态向量ℎ𝑡−1 (下边的横线);
LSTM单元的输出是: 当前时刻的状态向量𝑐𝑡和 当前时刻的隐状态向量ℎ𝑡(输出的)。
GRU
LSTM有三个不同的门,参数较多,训练起来比较困难。GRU只含有两个门(更新门和重置门)控结构,且在超参数全部调优的情况下,二者性能相当,但是GRU结构更为简单,训练样本较少,易实现。
目录
什么是 RNN的梯度消失?为什么能LSTM、GRU的门机制梯度消失?
一、RNN
外层,y输出的时候 ,用到 softmax(归一化指数函数)。外层激活函数可以替换为tanh、relu。
隐层,用的是sigmoid。
例如,我们看到,在RNN看到字符“ h”的第一步中,它给下一个字母“ h”分配了置信度1.0,对字母“ e”分配了2.2置信度,对字母“ e”分配了-3.0,对4.1分配了置信度。到“ o”。由于在我们的训练数据中(字符串“ hello”),下一个正确的字符是“ e”,因此我们希望增加其置信度(绿色)并降低所有其他字母的置信度(红色)。同样,我们希望网络在4个时间步长中的每个步长上都具有所需的目标角色,以便网络为其分配更大的置信度。
什么是 RNN的梯度消失?为什么能LSTM、GRU的门机制梯度消失?
RNN 中总的梯度是不会消失的。即便梯度越传越弱,那也只是远距离的梯度消失,由于近距离的梯度不会消失,所有梯度之和便不会消失。
所谓 RNN 梯度消失的真正含义是,指的是远距离的梯度消失,导致模型难以学到远距离的依赖关系。
二、LSTM
三、GRU
LSTM能够解决 RNN 因 长期依赖 带来的 梯度消失 和 梯度爆炸 问题。
RNN 中总的梯度是不会消失的。即便梯度越传越弱,那也只是远距离的梯度消失,由于近距离的梯度不会消失,所有梯度之和便不会消失。
所谓 RNN 梯度消失的真正含义是,指的是远距离的梯度消失,导致模型难以学到远距离的依赖关系。
LSTM有三个不同的门,参数较多,训练起来比较困难。GRU只含有两个门控结构,且在超参数全部调优的情况下,二者性能相当,但是GRU结构更为简单,训练样本较少,易实现。
(1)GRU只有两个门。GRU将LSTM中的输入门和遗忘门合二为一,称为更新门(update gate),上图中的𝑧𝑡zt,控制前边记忆信息能够继续保留到当前时刻的数据量,或者说决定有多少前一时间步的信息和当前时间步的信息要被继续传递到未来;GRU的另一个门称为重置门(reset gate),上图中的𝑟𝑡rt ,控制要遗忘多少过去的信息。
(2)取消进行线性自更新的记忆单元(memory cell),而是直接在隐藏单元中利用门控直接进行线性自更新。GRU的逻辑图如上图所示。
更新门Rt 、遗忘门Zt