什么时候不应该在图层中使用偏差?

人工智能 优化 深度神经网络 火炬
2021-11-15 01:57:32

我对深度学习并没有那么丰富的经验,而且我一直在研究深度神经网络的研究代码(主要是 PyTorch),特别是 GAN,而且在很多情况下,我看到作者bias=False在没有太多理由的情况下设置了某些层。这通常不会在具有类似目的的一长串层中完成,而是主要在独特的层中完成,例如条件向量之后的初始线性层,或注意力架构中的某些层。

我想必须有一个策略来解决这个问题,但大多数在线文章似乎证实了我最初的看法,即偏见是可以在几乎每一层进行训练的好东西。

是否有特定的优化/理论原因来关闭网络中特定层的偏差?在设计自己的架构时,我该如何选择何时进行?

1个回答

最常见的情况bias=False是在批量标准化之前/之后的层中,中间没有激活器。BatchNorm 层无论如何都会重新集中数据,消除偏差并使其成为无用的可训练参数。引用原始 BatchNorm 论文

请注意,由于我们对进行了归一化,因此可以忽略偏差Wu+bb

类似的事情发生在 Transformers 的 LinearNormalization 和(据我了解的条件如何工作)在 GAN 的条件层中——数据重新居中,有效地消除了偏差。

根据我的经验,这是最常见的原因bias=False,但可以想象其他消除偏见的原因。根据经验,如果您想“将零转换为零”,我会说您不包括偏见 -学习旋转之类的东西可以是这种(相当奇特的)应用程序的一个例子。