训练深度神经网络时的梯度裁剪


10

训练RNN或CNN时,何时需要执行梯度剪切?我对后者特别感兴趣。剪辑的一个好的起始值是什么?(当然可以调整)

Answers:


4

当您遇到梯度消失或梯度爆炸的问题时,您可能希望执行梯度剪切。但是,对于这两种情况,都有更好的解决方案:

  • 当梯度太大而发生数值溢出时,会发生爆炸性梯度。通过将网络的权重初始化为较小的值,可以轻松解决此问题。如果这样做不起作用,则可能是代码中存在错误。

  • 当优化卡在鞍点上时,梯度会消失,梯度变得太小而无法进行优化。这可以通过使用具有动量或RMS或两者的梯度下降来解决(也称为Adam优化器)。

梯度裁剪上限的起始值将小于该变量可以采用的最大值。对于下限,我会说这是特定于问题的,但也许从1e-10开始。


1
我不确定这个答案的上下文是否应该排除RNN,但如果不是,那么两个提出的解决方案都不会比梯度削波好,尤其是在RNN的情况下。
亚历克斯R.17年

抱歉,我在CNN的背景下思考的更多,请随时进行编辑
Miguel
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.