概述
模拟人的阅读顺序
N-Gram模型:认为一个词只和前面N-1个词有关
循环神经网络RNN理论上可以往前(后)看任意多个词
梯度消失或者梯度爆炸会导致梯度为0或NaN,进而无法继续训练更新参数。上述现象称之为RNN长程依赖问题。
通常来说,梯度爆炸更容易处理一些。因为梯度爆炸的时候,程序会收到NaN错误。也可以设置一个梯度阈值,当梯度超过这个阈值时直接截取。
梯度消失更难检测,更难处理。通常有三种缓解梯度消失的方法∶
1.初始化合理的权重值:初始化权重,使每个神经元尽可能躲开梯度消失的区域,如避免取极大或极小值。
2.选取合适的激活函数:如用relu代替sigmoid和tanh。
3.引入合理的记忆网络:如长短时记忆网络(LTSM)、Gated Recurrent Unit(GRU)等。
激活函数
sigmoid函数的导数值范围为(0,0.25],反向传播时会导致梯度消失
tanh函数的导数值范围为 (0,1],相对范围较大,但仍会导致梯度消失
sigmoid函数不是0中心对称,输出均大于0
tanh函数是0中心对