1.图例讲解RNN
1.1 RNN具有短期记忆功能
首先对右图进行讲解,RNN每一时刻的隐藏状态不仅由该时刻的输入决定,还取决于上一时刻的隐藏状态的值,如右图中间模型当t时刻输入后,St取决于Xt和S(t-1)
所以左图中当输入x后,会不断重复w过程,每次的s的值都是由本次的x和上次的s综合决定的,最后输出o
1.2 梯度爆炸和梯度消失
当我们给计算机输入一段话:“我下个月想去重庆旅游,首先我需要做一份攻略合理规划时间和金钱,然后我需要…”,计算机会不断识别它认为重要的信息:下个月、重庆、旅游…,上面说到了RNN具有短期记忆功能,也就是说当我们使用rnn去对这段话进行判断我要去什么地方旅游,因为真正有效的信息在比较前面,rnn最终能记忆到的有效信息可能少之又少,于是它判断我要去上海旅游,如下图最开始计算机读入11时,rnn可以全部记住,可是随着12、13…越来越多数据的读入,rnn能记得数据的比例越来越小
那么当它判断我要去上海旅游,这显然与我真正想说的目的地不同,所以我就要开始去寻找真正有效的信息,于是我开始往回看,在反向传播过程中每一时刻倒退回上一时刻需要乘以一个参数,那么如果这个参数大于1,在最后的误差会不断乘以一个大于1的参数然后越往前越大,最终这个误差会变得巨大(指数增长速度非常快),我们将其称之为梯度爆炸(如下图左);反之,若这个参数小于1,那么在经过无数次的相乘后,在最后的误差到了前面会无限趋近于0,我们将其称之为梯度消失(如下图右)。
具体可参考这篇文章https://zhuanlan.zhihu.com/p/28687529