Colvolution Layer 是否一定需要 Bias?

Is Bias necessarily need at Colvolution Layer?

我正在 Python 构建 CNN + 集成模型以使用 Tensorflow 对图像进行分类。我在 google 张图片中抓取了狗和猫的图片。然后将它们改为126 * 126像素大小和灰度,将标签0添加到狗,1添加到猫。 CNN有5个conv层和2个fc层。模型中使用了HE、PReLU、max-pooling、drop-out、Adam。 Parameter Tuning 完成后,我添加了 Early-Stopping,模型学习了 65~70 个 epoch,以 92.5~92.7% 的准确率完成。 学习完成后,我想将我的 CNN 模型更改为 VGG 网络,我检查了我的 CNN 参数,令人震惊的是,我发现我没有在 conv 层添加 Bias。 2 个 fc 层有 Bias,但 5 个 conv 层没有 Bias。所以我在第 5 个卷积层添加了偏差,但我的模型无法学习。成本增加到无限。

偏差不一定在深度卷积层?

您是如何将偏差添加到卷积层的?有两种方法可以做到这一点:Tied biases 每个内核共享一个偏置,untied biases 每个内核和输出使用一个偏置。另请阅读 this.

关于你的问题是否有必要,答案是不需要。卷积层中的偏差增加了模型的容量,使其在理论上能够表示更复杂的数据。但是,如果您的模型已经具备执行此操作的能力,则不需要它们。

一个例子是 this 152 层 ResNet 架构的实现,其中卷积层没有偏差。 取而代之的是在后续的批量归一化层中添加偏差。