何时使用(He 或 Glorot)普通初始化而不是统一初始化?它对批量标准化有什么影响?

数据挖掘 神经网络 深度学习 正常化
2021-09-17 19:49:06

我知道残差网络(ResNet)让 He 正常初始化很流行。在 ResNet 中,使用 He 正常初始化,而第一层使用 He 统一初始化。

我浏览了 ResNet 论文和“Delving Deep into Rectifiers”论文(他初始化论文),但我没有发现任何关于正常初始化与统一初始化的提及。

还:

Batch Normalization 允许我们使用更高的学习率,并且对初始化不那么小心。

在 Batch Normalization 论文的摘要中,据说 Batch Normalization 可以让我们在初始化时不那么小心。

ResNet 本身仍然关心何时使用普通初始化和统一初始化(而不是仅仅使用统一初始化)。

所以:

  • 何时使用(He 或 Glorot)正态分布初始化而不是统一初始化?
  • Batch Normalization 的正态分布初始化效果是什么?

旁注:

  • 将普通初始化与批量标准化一起使用是押韵的,但我还没有找到任何论文来支持这一事实。
  • 我知道 ResNet 使用 He init 而不是 Glorot init,因为 He init 在深度网络上表现更好。
  • 我已经了解Glorot init 与 He init
  • 我的问题是关于 Normal vs Uniform init。
1个回答

实际上,正常与统一的初始化似乎相当不清楚。

如果我们仅参考GlorotHe的初始化论文,它们都使用了类似的理论分析:它们为从中提取初始参数的分布找到了很好的方差。该方差适用于所使用的激活函数,并且在没有明确考虑分布类型的情况下得出。因此,他们的理论结论适用于已确定方差的任何类型的分布。事实上,在 Glorot 论文中,使用了均匀分布,而在 He 论文中,它选择了高斯分布。He论文中对这种选择给出的唯一“解释”是:

最近的深度 CNN 大多由从高斯分布中提取的随机权重初始化

参考AlexNet 论文它确实比 Glorot 的初始化稍晚发布,但是没有理由使用正态分布。

事实上,在关于 Keras 问题跟踪器的讨论中,他们似乎也有点困惑,基本上这只能是一个偏好问题......(即假设 Bengio 更喜欢均匀分布,而 Hinton 更喜欢正常分布......)在讨论中,有一个小基准比较了使用均匀分布和高斯分布的 Glorot 初始化。最后,似乎制服赢了,但还不是很清楚。

在最初的ResNet 论文中,它只说他们对所有层都使用了高斯 He init,我无法找到他们在第一层使用统一 He init 的地方。(也许您可以分享对此的参考?)

至于将高斯初始化与批量标准化一起使用,嗯,使用 BN,优化过程对初始化不太敏感,因此这只是我想说的约定。