在RNN应用,如自然语言处理中,由于输入语句的长度和语法原因,语句最末尾的内容可能由最开始内容决定,如单复数、时态问题等,两者之间相隔较远的距离,导致梯度下降或其他优化算法很难调整参数来影响最开始的位置,这就是神经网络中常提到的Vanishing Gradients问题。如下例所示:
The cat, which already ate a lot of food, was full.
The cats, which already ate a lot of food, were full.
在以上两个语句中,末尾的was/were由最开始的cat/cats决定,但是两者相聚较远的距离,这就会引起Vanishing Gradients问题,梯度下降算法很难根据was/were处的损失函数,反过来影响最开始位置的权值。我们可以使用GRU或LSTM算法解决这一问题。
GRU
GRU (Gated Recurrent Unit)是解决RNN中长依赖、Vanishing Gradients的有效方法之一,以下是GRU的运算公式:
LSTM
LSTM (Long Short-Term Memory)长短期记忆网络,也是解决RNN中长依赖、Vanishing Gradients的有效方法之一,以下是LSTM的运算公式