在 RNN 中,过长的序列可能会导致梯度消失或者梯度爆炸;一个朴素的思想就是避免完全计算所有的矩阵乘法链来得到最终的梯度,我们可以进行截断,在计算一定长度的反向传播链之后将得到的结果作为最终结果的近似;

定长截断

如题,在计算某个恒定步长的反向传播之后截断;

随机截断

通过某些数学操作能够实现随机截断的效果;但是在实际应用过程中,与定长截断相比没有突出的优势,其原因如下:

  1. 经过随机步数的反向传播,模型难以正确捕获依赖关系
  2. 按道理来说有一些更长的反向传播步数会得到更加精确的结果,但是随机的截断步数引起了结果更大的方差,导致结果并没有预期中那么稳定
  3. 在实际生成过程中,我们也更倾向于使用更短的时间步来进行预测;因为预测过长的时间步总是会得到更差的效果,这是无法避免的

定长截断评述

定长截断其实也发挥了一个“轻微正则化”的效果,能够让模型避免过长的依赖关系;这样做是基于“模型不会依赖太长的输入”这个经验性的假设;