池化层与卷积层中使用填充

我的理解是,我们在进行卷积时使用填充,因为卷积操作会通过缩小输出尺寸来减少其维度,同时也会丢失输入矩阵边缘/角落的信息。然而,在多个卷积层之后,我们又使用池化层来对特征图进行下采样。这不是有些矛盾吗?我们使用填充是因为我们不想减少空间维度,但随后又使用池化来减少空间维度。能否有人提供这两种方法背后的直觉?


回答:

假设我们处理的是图像作为输入,填充的原因不仅是为了防止维度缩小,还为了确保输入图像的角落和边缘像素在影响输出时不会处于“劣势”。如果没有填充,图像角落的像素只与一个滤波器区域重叠,而图像中间的像素则与多个滤波器区域重叠。因此,中间的像素会影响下一层的更多单元,从而对输出有更大的影响。其次,你确实希望缩小输入的维度(记住,深度学习的核心是压缩,即寻找输入的低维表示,以分离数据中的变化因素)。没有填充的卷积所导致的缩小是不理想的,如果你有一个非常深的网络,你很快就会得到非常低维的表示,这些表示会丢失数据中的大部分相关信息。相反,你希望以一种智能的方式缩小维度,这就是通过池化实现的。特别是,Max Pooling被发现效果很好。这真的是一个经验结果,即没有很多理论来解释为什么会这样。你可以想象,通过对附近的激活值取最大值,你仍然保留了该区域中某个特定特征存在的信息,同时丢失了关于其确切位置的信息。这可能是好事也可能是坏事。好的一面是它为你提供了平移不变性,而坏的一面是确切位置可能对你的问题很重要。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注