文章目录
- 目前普通RNN存在的问题
- Long Short-Term Memory 长短时记忆网络
- 引入
- 结构
- 过程
- 说明
- 为什么LSTM能解决梯度问题?
- 结构与公式
目前普通RNN存在的问题
记忆存储部分一直在任务中传递,倘若序列较长, 其参数的幂较大,易于出现梯度消失或者梯度爆照的问题。这就造成一般的RNN不能“长期依赖”。
因此我们引入LSTM。
Long Short-Term Memory 长短时记忆网络
引入
序列短时,相关的信息和预测的词位置之间的间隔小,RNN可以学会使用先前的信息;
然而,序列长时,相关信息和当前预测位置之间的间隔大,RNN会丧失学习到连接如此之远的信息的能力;
此外,序列过长时,会发生梯度爆炸或者梯度消失。
结构
四个输入分别为:存入的记忆以及三个决定门开闭的信号
一个输出为:取出的记忆。
过程
说明
1.与一般的神经网络相比,只需要将神经元变成LSTM的结构即可。
2.LSTM不仅仅是更新c<t>c^{<t>}c<t>,其实还会把输出作为输入,把记忆也作为输入(变种):
其中ht≠yth_t \\not =y_tht20fde=yt。这与SRN类似,但多了一个记忆单元。
3.当然,LSTM也不仅仅是一层:
4.其中,输入xtx^txt经过四个transform转化为三个信号一个输入数据,用以运行LSTM,每一个input都是一个向量,控制多个LSTM。
5.能够解决梯度消失的情况。
为什么LSTM能解决梯度问题?
原本:ω1(ω1⋅x1+x2)\\omega_1(\\omega_1\\cdot x_1 + x_2)ω1(ω1⋅x1+x2)
LSTM:c<2>=Γic^<2>+Γfc<1>c^{<2>} =\\Gamma_i\\widehat{c}^{<2>} + \\Gamma_fc^{<1>}c<2>=Γic<2>+Γfc<1>
导致梯度爆炸/梯度消失的罪魁祸首是递归的倒数一直大于1,或者一直在0和1之间,而LSTM的递归倒数在不同的情况下,控制门控取值,从而抑制梯度消失或者爆炸,保持梯度。
整体公式
无peephole。
GRU(Gated Recurrent Unit)
门控循环单元,LSTM的简化版。
结构与公式
优势
参数少,过拟合风险小:
LSTM的参数量是Navie RNN的四倍,参数量过多就会存在过拟合的风险,而GRU只用两个门控开关就达到了和LSTM接近的结果,参数量不过是Naive RNN的三倍。