批量标准化层如何工作?

人工智能 神经网络 深度学习 批量标准化
2021-10-22 22:18:59

我知道我们对输入特征进行规范化,以便使它们具有相同的比例,这样就不会以任意方式学习权重,并且训练会更快。

然后我研究了批量归一化并观察到我们可以通过以下方式对隐藏层的输出进行归一化:

第 1 步:对隐藏层的输出进行归一化,以使均值和单位方差为零,即标准正态(即减去均值并除以该小批量的标准差)。

第 2 步:将此归一化向量重新缩放为具有新分布的新向量β意思是和γ标准差,其中两者βγ是可训练的。

我不明白第二步的目的为什么我们不能只做第一步,使向量标准正常,然后继续前进呢?为什么我们需要将每个隐藏神经元的输入重新缩放为学习的任意分布(通过 beta 和 gamma 参数)?

2个回答

定义和解释

关于批量标准化的具体工作原理,我建议您阅读以下论文:

最近对 BN 如何工作的解释是,它可以减少Ian Goodfellow 演讲中提到的高阶效应所以这并不是真正减少内部协变量偏移。

直觉

对于它是如何直观地工作的,你可以认为我们想要对中间输出(零均值和单位方差)进行归一化,如果归一化不会删除太多有用的信息。

然而,归一化可能并不适合所有的中间输出。所以βγ引入以提供额外的灵活性,如果规范化删除了太多有用的信息,那么βγ会学习变成原来的均值和方差,让BN层进行恒等变换,就好像不存在一样。

在实践中,βγ不会成为原始的均值和方差,因为所有中间输出都可以以某种特定方式归一化而不会丢失太多有用信息。所以你可以认为它是对每个 BN 层的自定义归一化。

tl;博士

BN 层默认对中间输出进行归一化,但是,如果神经网络发现这些中间输出不应该被归一化,则神经网络撤消或为归一化提供更大的灵活性。

看,这目前是一个颇有争议的问题。J3soons 回答已经链接到原始论文和另一篇论文。然而,批量归一化的大部分证据仍然是经验性的,对于它为什么起作用几乎没有理论解释。

有许多相互竞争的理论。此外,还有许多论文解释了批标准化在某些设置中的工作原理。但是,没有一般定理/解释可以解释该技术为何有效。

这是一篇分析它在简化设置中如何工作的论文。这个提供了对批处理规范的另一种分析(您可以在Arxiv上找到它们的附录)。是我能找到的最新同行评审的另一个。引用最后一篇论文:

也许混淆的核心是 BatchNorm 有很多影响。它与减少协变量偏移 (Ioffe and Szegedy, 2015)、提高学习率 (Bjorck et al., 2018)、改进初始化 (Zhang et al., 2019) 和改善条件反射 (Desjardins et al., 2015) 相关),仅举几例。这些纠缠的影响使正确研究该技术变得困难。