是否有任何方法可以处理不涉及批量标准化或 ReLu 单元的饱和​​非线性的消失梯度?

机器算法验证 机器学习 神经网络 卷积神经网络 批量标准化
2022-04-07 11:47:07

我想训练一个具有消失(或爆炸梯度问题,尽管主要是消失)的非线性网络。我知道(当前)标准方法是使用批量标准化1 [BN] 1或干脆放弃非线性并使用 ReLu整流器/ReLu单元。

我想要两件事:

  1. 坚持我的非线性,所以我不想放弃它并使用ReLu(即不允许ReLu!)。重新参数化非线性是可以的,比如在它前面放一个乘法θ(s)例如。
  2. 理想情况下,我不想过多地依赖批量标准化(或者至少如果使用它,它必须以一种新颖的方式使用,而不是在原始论文中使用它或推广到许多非线性)。我想避免 Batch Normalize 的原因之一是它似乎只适用于特定的非线性。例如,对于 sigmoid,tanh,但不清楚它们如何用于其他非线性,比如高斯。

我有这些限制的原因是因为我想通过直接解决问题来解决梯度消失或爆炸梯度的问题,而不是破解仅适用于特定非线性的解决方案,或者只是通过推入来避免问题热卢。

我想知道,在这两个约束下,处理消失梯度问题的替代方法是什么?(另一个需要考虑的非线性是带有欧几里得范数预激活、sigmoid、tanh 等的 RBF 高斯核)

我想到的可能(模糊)的想法是:

  1. 进行良好的初始化,以使饱和非线性不会开始饱和(饱和非线性导致梯度接近于零)。
  2. 对于 RBF,类似地,良好的初始化可能很重要,因为高斯函数大多具有接近 0 的大值(即当过滤器与其激活或数据相似时)。因此,它们太大或太小都会出现类似的梯度消失问题。
  3. 我真的不知道这是否太受限制,但如果有一种不同的方式来使用批量标准化,而不是原始论文中的传统建议(或者可能是一些 BN 的想法,可以推广到更大的非线性,目前看来,据我所知,大多数研究都表明它适用于 sigmoid)。
  4. 另一个想法可能是而不是非线性θ(z)我们有aθ(z)在哪里aR. 如果a>1,则意味着非线性不会对每一层向后乘以多次,以免对较早的层“消失”。它可能会使学习规则变得不稳定,所以也许一些正则化器可能是个好主意。
  5. 本质上处理消失梯度(或至少以不同方式更新每个参数)的优化器。例如,如果它的一层更靠近输入,那么学习步长应该更大。学习算法最好自己考虑到这一点,以便处理消失的梯度。

如果有任何关于如何处理除批处理规范或 ReLu 之外的梯度消失的建议,我很想听听他们的消息!


似乎梯度消失主要是因为非线性具有以下性质|a|<1也因为|θ(s)|<1乘以多次后,它要么爆炸,要么消失。明确地说出问题可能有助于解决它。问题在于它会导致较低层不更新或阻碍通过网络的信号。在前向和后向传递期间(以及在训练期间,不仅仅是在初始化时)保持这个信号流过网络会很好。


1 : Ioffe S. 和 Szegedy C. (2015),
“批量标准化:通过减少内部协变量偏移来加速深度网络训练”,
第 32 届机器学习国际会议论文集,法国里尔,2015 年
。机器学习研究杂志: W&CP 第 37 卷

2个回答

你看过 RMSProp 吗?看看 Geoff Hinton 的这组幻灯片:

小批量梯度下降概述

特别是第 29 页,标题为“rmsprop:rprop 的小批量版本”,尽管可能值得通读完整集以更全面地了解一些相关想法。

与此相关的还有 Yan Le Cun 的No More Pesky Learning Rates

和 Brandyn Webb 的SMORMS3

主要思想是看梯度的标志,看它是否在翻转;如果它是一致的,那么你想朝那个方向移动,如果标志没有翻转,那么你刚刚采取的任何步骤都必须是好的,只要它不是非常小,所以有一些方法可以控制步长以保持它明智的,并且在某种程度上独立于实际梯度。

因此,如何处理消失或爆炸梯度的简短答案很简单——不要使用梯度的大小!

我的一些理解,可能并不正确。

梯度消失问题的原因是sigmoid tanh(和 RBF)在两侧-infinf)都饱和,因此这种非线性的输入很可能落在饱和区域。

BN 的作用是它把非线性的输入“拉”到 0 附近的一个小范围内N(0,1)作为起点,这种非线性不会饱和。所以我想它也适用于 RBF。

为了消除 ReLU 的非线性,我们可以使用 softplus 函数log(1+ex),它与 ReLU 非常接近,在Geoffrey Hinton的论文中用于解释 ReLU 为什么会起作用。

在此处输入图像描述

此外,残差网络或高速公路网络提供了另一种解决梯度消失的方法(通过捷径)。根据我的经验,这种架构的训练方式比仅将损失连接到最后一层要快得多。

此外,训练深度网络的困难不仅仅是因为梯度消失,还有其他因素(例如内部协变量偏移)。最近有一篇关于另一种归一化方法的论文层归一化,虽然它没有说梯度消失,但也许你会感兴趣。