55

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

 5 years ago
source link: https://mp.weixin.qq.com/s?__biz=MzUxMDk1NjAxNQ%3D%3D&%3Bmid=2247483815&%3Bidx=1&%3Bsn=174806a6c92d56f87c32e36b77d68565&%3Bchksm=f97a5927ce0dd0314c3330f8e13156bc1146a77f08d5adacffad5e09673ee1fea9f35f8
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

2emyaiB.jpg!web

一种RNN的设计模式

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

什么是长期依赖

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

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

eiMzuqE.jpg!web

长期依赖问题

理论上,通过调整参数,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/

本文作者:曲曲菜(微信公众号: 曲曲菜

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

uMv2u2Y.jpg!web

更多AI和金融知识,长按图片关注作者公众号


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK