美文网首页
【神经网络】循环神经网络(RNN)的长期依赖问题

【神经网络】循环神经网络(RNN)的长期依赖问题

作者: AI和金融模型 | 来源:发表于2018-10-27 07:20 被阅读0次

    时间序列数据是在不同时间点上统计同一指标,并按照时间先后排列成的一个集合。时间序列的主要作用是了解一个指标的长期趋势和预测未来。

    循环神经网络(Recurrent Neural Network或RNN )就是一类用于处理序列数据的神经网络。RNN的状态,不仅受输入影响,还受前一时刻状态的影响。

    一种RNN的设计模式

    上图网络结构中,各循环连接是在隐藏层之间,且是共享权重的,设循环连接的权重是W。

    什么是长期依赖

    长期依赖是指当前系统的状态,可能受很长时间之前系统状态的影响,是RNN中无法解决的一个问题。

    如果从“这块冰糖味道真?”来预测下一个词,是很容易得出“”结果的。但是如果有这么一句话,“他吃了一口菜,被辣的流出了眼泪,满脸通红。旁边的人赶紧给他倒了一杯凉水,他咕咚咕咚喝了两口,才逐渐恢复正常。他气愤地说道:这个菜味道真?”,让你从这句话来预测下一个词,确实很难预测的。因为出现了长期依赖,预测结果要依赖于很长时间之前的信息。

    长期依赖问题

    理论上,通过调整参数,RNN是可以学习到时间久远的信息的。但是,实践中的结论是,RNN很难学习到这种信息的。RNN 会丧失学习时间价格较大的信息的能力,导致长期记忆失效。

    长期记忆失效的原因

    RNN中,我们可以认为,循环连接是非常简单的,缺少非线性激活函数的。以文章第一张图的RNN为例,连接关系可以表示为

    。如果abs(W)<1,因为

    前的系数为W,也就是t-1时间的状态信息传递到t时刻,成为了原来的W倍。如果逐层迭代,将

    写成含

    的表达式,那么

    前面的系数会是

    。abs(W)<1时,

    是非常小的一个数,可以认为

    几乎不产生影响。也就是0时刻的信息几乎被遗忘,就导致了长期记忆失效。

    解决长期依赖问题有很多方法的,其中长短时记忆网络(LSTM)是比较常用的一个。

    参考资料

    [1] Yoshua Bengio.Deep Learning

    [2] Christopher Olah.http://colah.github.io/posts/2015-08-Understanding-LSTMs/

    了解更多欢迎关注我的公众号和专栏。

    微信公众号:曲曲菜

    知乎专栏:AI和金融模型

    原创作品,未标明作者不得转载。

    作者公众号二维码

    相关文章

      网友评论

          本文标题:【神经网络】循环神经网络(RNN)的长期依赖问题

          本文链接:https://www.haomeiwen.com/subject/vdmrtqtx.html