深度学习面试题36:RNN与长程依赖关系(Long-Term Dependencies)
目录
长程依赖关系的解释
为什么传统RNN不能解决长程依赖问题
如何解决长程依赖问题
参考资料
长程依赖关系的解释 |
句子1:the clouds are in the (). 对语言模型而言,这里的()很容易就能被确定为sky,因为它刚“读过”的单词是“clouds are in the”,语言模型的是具有记忆的,因此很大概率可以预测对。
而句子2:I grew up in France… I speak fluent ().这里的省略号表示一大堆单词,而这里的()被RNN这样的语言模型预测为French的概率就很低了,因为他的记忆已经“模糊”了,换句话说,由于不停的“读”新的单词,很早之前的信息已经被冲淡了。
所以长程依赖可以理解为:当你想使用语言模型,并有效利用较早时间步的信息,最终产生预测的时候,那么你就要和较长路程前的信息建立一种依赖关系,这就是长程依赖。
长程依赖问题(The Problem of Long-Term Dependencies),也就是研究长程依赖的问题。
为什么传统RNN不能解决长程依赖问题 |
回忆RNN的网络结构,RNN之所以能够对序列数据建模,是因为它具有一个记忆单元(隐藏层的参数),但是记忆单元中记录的较早信息会随着时间步的推移而冲淡,所以就无法建立起和较早时间步信息的依赖关系。
如何解决长程依赖问题 |
需要改变RNN的结构,从而建立起一种和较早时间步联系的桥梁,比如后面要细谈的LSTM和GRU等。
参考资料 |
https://colah.github.io/posts/2015-08-Understanding-LSTMs/