背景
GRU有重置门与更新门, 候选隐藏状态,更新隐状态。LSTM有忘记门、输入门与输出门,候选记忆单元,记忆单元,隐状态。
RNN
RNN使得同一层样本之间的信息进行了传递
ht=σ([ht−1,xt]⋅Wf+bf){h_t} = \sigma ([{h_{t - 1}},{x_t}]\cdot {W_f} + {b_f})ht=σ([ht−1,xt]⋅Wf+bf)
LSTM
paper
Hochreiter S, Schmidhuber J. Long short-term memory[J]. Neural computation, 1997, 9(8): 1735-1780.
RNN是无法利用长距离信息的,例如文字预测,I eat foods 只需要前面的信息(eat 和foods相关),但是例如I eat foods, apple,banana,orange are foods. 这个foods和前面的foods具有相关关系。公式中的乘法是按照对应元素相乘。
tanh函数将函数值映射到了[−1,1][-1,1][−1,1]之间,sigmoid函数将函数值映射到了[0,1][0,1][0,1]之间
LSTM明确旨在避免长期依赖性的问题。 长时间记住信息实际上是他们的默认行为,而不是他们难以学习的东西。
GRU
参考资料
LSTM为什么可以弥补梯度消失的问题:
RNN求导后,累乘导致梯度消失,
https://blog.youkuaiyun.com/qq_32806793/article/details/89388868
https://zhuanlan.zhihu.com/p/28749444(包含求导过程)
https://www.cnblogs.com/stephen-goodboy/p/12773466.html(这个原理比较容易理解)
https://www.cnblogs.com/hehejeson/articles/12634207.html(这个里面明确的说明了具体的细节信息)
https://blog.youkuaiyun.com/zhaojc1995/article/details/114649486(这个更好理解)
https://www.zhihu.com/question/46197687?sort=created (LSTM为什么使用了两种激活函数)
https://zhuanlan.zhihu.com/p/37644325