RNN梯度消失问题

梯度消失

RNN循环神经网络:

长期依赖效应,RNN并不擅长处理。RNN中某一单元主要受它附近的单元的影响。

一个很深的神经网络进行反向传播时,从输出得到的y很难传播回去。即它很难影响靠前层的权重。


RNN有同样的问题。后面层的输出误差很难影响前面层的计算。
基本的RNN模型会有很多局部影响,某一单元主要受它附近的单元的影响。


这意味着很难让一个神经网络能够意识到它看到的是单数名词还是复数名词,然后在序列后面,生成单复数依赖形式,正确使用was或were。并且一个英语句子中间部分可能很长,所以需要让RNN长时间记住一个单词是单数还是复数,前面的句子才能正确。

cat was full after ate food...

cats were full after ate food...

由cat变成cats时候,was也要变成were。

单数使用was,复数使用were,这是固定的规则,但是RNN不擅长处理长期依赖的问题。

梯度爆炸

梯度消失比梯度爆炸更需要去解决。

因为梯度爆炸更明显,梯度爆炸很容易发现(它使网络崩溃),如数值溢出。一般使用梯度修剪解决梯度爆炸问题。

梯度修剪:观察参数值,如果它大于阈值,就修改它。

梯度消失更难解决。



猜你喜欢

转载自blog.csdn.net/weixin_39773661/article/details/80973956