10.11.2 引导信息流的正则化

梯度截断有助于处理爆炸的梯度,但它无助于消失的梯度。 为了解决消失的梯度问题并更好地捕获长期依赖,我们讨论了如下想法:在展开循环架构的计算图中,沿着与弧边相关联的梯度乘积接近1的部分创建路径。 在\sec?中已经讨论过,实现这一点的一种方法是使用LSTM以及其他自循环和门控机制。

[warning] "沿着与弧边相关联的梯度乘积接近1的部分创建路径"和"LSTM"是什么关系?

另一个想法是正则化或约束参数,以引导"信息流"。 特别是即使损失函数只对序列尾部的输出作惩罚,我们也希望梯度向量$\nabla_{h^{(t)}} L$在反向传播时能维持其幅度。

[success] 解决梯度爆炸问题:梯度截断 解决梯度消失问题: (1)沿着与弧边相关联的梯度乘积接近1的部分创建路径,例如LSTM (2)正则化或约束参数 形式上,我们要使 [warning] 后面的公式看不懂

(h(t)L)h(t)h(t1)\begin{aligned} (\nabla_{h^{(t)}} L) \frac{\partial h^{(t)}}{\partial h^{(t-1)}} \end{aligned}

h(t)L\begin{aligned} \nabla_{h^{(t)}} L \end{aligned}

一样大。 在这个目标下,{Pascanu+al-ICML2013-small}提出以下正则项:

Ω=t((h(t)L)h(t)h(t1)h(t)L1)2.\begin{aligned} \Omega = \sum_t \Bigg( \frac{ { ||(\nabla_{h^{(t)}} L) \frac{\partial h^{(t)}}{\partial h^{(t-1)}}}||} {||\nabla_{h^{(t)}} L||} -1 \Bigg)^2. \end{aligned}

计算这一梯度的正则项可能会出现困难,但{Pascanu+al-ICML2013-small}提出可以将后向传播向量$\nabla_{h^{(t)}} L$考虑为恒值作为近似(为了计算正则化的目的,没有必要通过它们向后传播)。 使用该正则项的实验表明,如果与标准的启发式截断(处理梯度爆炸)相结合,该正则项可以显著地增加RNN可以学习的依赖的跨度。 因为这种方法将RNN的动态保持在爆炸梯度的边缘,梯度截断特别重要。 如果没有梯度截断,梯度爆炸将阻碍学习的成功。

这种方法的一个主要弱点是,在处理数据冗余的任务时如语言模型,它并不像LSTM一样有效。

Last updated