实例规范化与批量规范化
computer-vision
conv-neural-network
machine-learning
neural-network
8
0

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

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

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

参考资料:
Stack Overflow
收藏
评论
共 4 个回答
高赞 时间 活跃

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

资料来源: 链接到“中等对比规范”的文章

收藏
评论

IN提供视觉和外观不变性,BN加快训练速度并保留区分特征。在浅层(CNN的起始层)中优选使用IN,因此应消除外观变化,并且应降低深层(最后CNN层)中的BN,以保持区分度。

收藏
评论

定义

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

批量标准化 批-范式

实例规范化 实例范式

正如您所注意到的,除了共同标准化的输入张量的数量外,它们在做同样的事情。批处理版本规范了批处理和空间位置上的所有图像(在CNN情况下,通常情况下是不同的 );实例版本独立地(即,仅跨空间位置)标准化每个批次。

换句话说,批处理范式计算一个均值和std dev(从而使整个层分布为高斯分布),实例范式计算它们的T ,从而使每个图像分布看起来都是高斯分布,而不是联合的。

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

信誉:公式来自这里

哪个标准化更好?

答案取决于网络体系结构,尤其取决于规范化层之后的操作。图像分类网络通常将要素图堆叠在一起,并将其连接到FC层,FC层在整个批次中共享权重 (现代方法是使用CONV层而不是FC,但该参数仍然适用)。

这就是开始分配细微差别的地方:同一神经元将接收所有图像的输入。如果批次之间的方差很大,则高激活将完全抑制小激活产生的梯度,这正是批处理规范试图解决的问题。这就是为什么按实例进行规范化完全有可能根本无法改善网络融合的原因。

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

您可以结合批处理和实例规范化吗?

尽管它构成了有效的神经网络,但并没有实际用途。批处理规范化噪声要么有助于学习过程(在这种情况下,它是可取的),要么对它有害(在这种情况下,最好省略它)。在这两种情况下,使网络保留一种类型的规范化可能会改善性能。

收藏
评论

我想为这个问题添加更多信息,因为该领域有一些最新作品。你的直觉

使用实例规范化进行图像分类,其中类别标签不应取决于输入图像的对比度

是部分正确的。我要说的是,在夜晚或黎明拍摄图像时,在光天化日之下的猪仍然是猪。但是,这并不意味着在网络上使用实例规范化将为您带来更好的结果。原因如下:

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

IBN-Net在模型中同时使用批处理规范化和实例规范化。他们只将实例规范化放在较早的层中,并且在准确性和泛化能力方面都取得了进步。他们在这里开源代码。

在此处输入图片说明

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题