77

我知道批量归一化通过将激活转向单位高斯分布从而解决梯度消失问题,有助于加快训练速度。批规范行为在训练(使用每批的均值/方差)和测试时间(使用训练阶段的最终运行均值/方差)时应用不同。

另一方面,实例归一化充当本文https://arxiv.org/abs/1607.08022中提到的对比度归一化。作者提到输出的风格化图像不应该依赖于输入内容图像的对比度,因此实例归一化会有所帮助。

但是我们不应该也将实例归一化用于图像分类,其中类标签不应该依赖于输入图像的对比度。我还没有看到任何使用实例标准化代替批量标准化进行分类的论文。这是什么原因?此外,可以而且应该将批处理和实例规范化一起使用。我渴望对何时使用哪种规范化有一个直观的和理论上的理解。

4

4 回答 4

114

定义

让我们从两者的严格定义开始:

批量标准化 批量标准公式

实例规范化 实例规范公式

正如你所注意到的,除了联合归一化的输入张量的数量之外,它们正在做同样的事情。批处理版本对批处理和空间位置上的所有图像进行归一化(在 CNN 情况下,在普通情况下是不同的);实例版本独立地规范化批次的每个元素,即仅跨空间位置

换句话说,在批量范数计算一个均值和标准偏差(从而使整个层的分布为高斯分布)的情况下,实例范数计算T它们,使每个单独的图像分布看起来是高斯分布,但不是联合分布。

一个简单的类比:在数据预处理步骤中,可以对每个图像的数据进行归一化,也可以对整个数据集进行归一化。

信用:公式来自这里

哪个标准化更好?

答案取决于网络架构,特别是归一化层之后做了什么。图像分类网络通常将特征图堆叠在一起并将它们连接到 FC 层,FC 层在批次之间共享权重(现代方法是使用 CONV 层而不是 FC,但这个论点仍然适用)。

这就是分布细微差别开始重要的地方:同一个神经元将接收来自所有图像的输入。如果整个批次的方差很大,来自小激活的梯度将被高激活完全抑制,这正是批次规范试图解决的问题。这就是为什么每个实例的标准化很可能根本不会改善网络收敛性的原因。

另一方面,批量归一化为训练增加了额外的噪音,因为特定实例的结果取决于相邻实例。事实证明,这种噪声对网络可能是好是坏。这在Tim Salimans 等人的“Weight Normalization”论文中得到了很好的解释,该论文将递归神经网络和强化学习 DQN 命名为对噪声敏感的应用程序。我不完全确定,但我认为相同的噪声敏感性是程式化任务中的主要问题,实例规范试图与之抗争。检查权重规范对于这个特定任务是否表现更好会很有趣。

你能结合批处理和实例规范化吗?

虽然它是一个有效的神经网络,但它没有实际用途。批量归一化噪声要么有助于学习过程(在这种情况下更可取),要么会损害学习过程(在这种情况下最好忽略它)。在这两种情况下,让网络保留一种归一化可能会提高性能。

于 2018-01-05T18:01:06.790 回答
64

很好的问题,已经很好地回答了。补充一点:我发现来自 Kaiming He 的 Group Norm 论文的这个可视化很有帮助。

资料来源:链接到媒体对比规范的文章

于 2018-09-28T11:11:29.817 回答
19

我想为这个问题添加更多信息,因为这方面有一些最近的作品。你的直觉

使用实例归一化进行图像分类,其中类标签不应依赖于输入图像的对比度

部分正确。我会说,在夜间或黎明拍摄图像时,光天化日之下的猪仍然是猪。但是,这并不意味着在整个网络中使用实例规范化会给您带来更好的结果。以下是一些原因:

  1. 颜色分布仍然起作用。如果它有很多红色,它更可能是苹果而不是橙子。
  2. 在后面的层中,您无法再想象实例归一化充当对比度归一化。特定于类的细节将出现在更深的层中,并且通过实例对其进行归一化将极大地损害模型的性能。

IBN-Net在其模型中同时使用批量归一化和实例归一化。他们只将实例归一化放在早期层,并且在准确性和泛化能力上都取得了进步。他们在这里有开源代码。

在此处输入图像描述

于 2018-10-03T13:13:19.960 回答
5

IN 提供视觉和外观不变性,BN 加速训练并保留判别特征。在浅层(CNN 的起始层)中首选 IN,因此应减少外观变化,在深层(最后 CNN 层)中首选 BN,以保持区分。

于 2019-02-14T09:20:24.227 回答