实例标准化是否存在转换偏差?

数据挖掘 深度学习 卷积神经网络 批量标准化
2022-02-17 16:31:29

众所周知,BatchNorm 之后的 Conv 层不应该有偏差,因为 BatchNorm 具有偏差项。

然而,使用 InstanceNorm,统计数据是特定于实例的,而不是特定于批次的,但仍然有两个可学习的参数,其中是一个可学习的偏差。γββ

自然,后面跟着 InstanceNorm 层的 Conv 层也不应该使用偏差。

尽管 github 上一些著名的实现坚持在 InstanceNorm 之后使用 Conv 偏差。

你对此有何看法?

2个回答

我才知道为什么。在 pytorch 中,这一切都取决于仿射参数是否设置为 True 或 False。

affine – 一个布尔值,当设置为 True 时,此模块具有可学习的仿射参数,初始化方式与批量标准化相同。默认值:假。

对于 InstanceNorm,它默认为 False,这就是为什么人们将 conv bias 与 instance norm 一起使用,而对于 BatchNorm,仿射默认为 True,这解释了为什么人们不将 conv bias 与 BatchNorm 一起使用

Bias 不应该在 InstanceNorm 之前使用,就像在 BatchNorm 之前一样。无论您将仿射设置为 True 还是 False,这些层都会首先对输入进行归一化,因此任何添加的偏差都会被丢弃。