本文翻译自
前文从零开始实现了RNN,但是没有详细介绍Backpropagation Through Time (BPTT) 算法如何实现梯度计算。这篇文章将详细介绍BPTT。之后会分析梯度消失问题,它导致了LSTM和GRU的发展,这是两个在NLP领域最为流行和有效的模型。
梯度消失问题在1991年被发现,但在近来受到关注,因为深度框架的广泛应用;
为了充分理解这个教程,我建议要熟悉部分分化和基本反向传播算法的工作机制相关教程part1part2part3
BACKPROPAGATION THROUGH TIME (BPTT)
快速重述RNN中的基本公式
yt是在step t正确的单词输出,yt^指预测值。
我们还是传统的认为一个完整的序列(句子)是一个训练样本,所以总的误差为每一步的误差之和;
我们的目标是计算有关U,V,W的损失函数的梯度,使用随机梯度下降算法学习得到更好的参数值。就像我们误差相加,我们也把每一个样本的每一步中的梯度值相加
为了计算梯度,我们使用了分化链规则。
上述,