我的理解是我们在旋转时使用填充,因为使用滤波器进行卷积可以通过缩小输出来减小输出的尺寸,并且从输入矩阵的边缘/角落丢失信息。但是,我们还在多个Conv图层之后使用池化层,以便对我们的要素图进行下采样。这看起来有点矛盾吗?我们使用填充因为我们不想减小空间维度,但我们稍后使用池来减少空间维度。有人能为这些2提供一些直觉吗?
答案 0 :(得分:1)
不失一般性,假设我们正在处理图像作为输入。填充背后的原因不仅是为了防止尺寸缩小,还要确保输入角和边缘上的输入像素在影响输出时不会“不利”。在没有填充的情况下,图像角上的像素仅与一个滤镜区域重叠,而图像中间的像素与许多滤镜区域重叠。因此,中间的像素影响下一层中的更多单元,因此对输出具有更大的影响。其次,您确实希望缩小输入的维度(请记住,深度学习完全是关于压缩,即找到输入的低维表示,以解开数据中的变化因素)。由没有填充的卷积引起的收缩并不理想,如果你有一个非常深的网络,你很快会得到非常低的维度表示,丢失数据中的大部分相关信息。相反,您希望以智能方式缩小尺寸,这是通过Pooling实现的。特别是,Max Pooling已被发现运作良好。这实际上是一个经验结果,即没有太多理论来解释为什么会这样。您可以想象,通过对附近的激活采取最大值,您仍然保留有关此区域中特定要素的存在的信息,同时丢失有关其确切位置的信息。这可能是好事也可能是坏事。很好,因为它会为你带来翻译不变性,而且很糟糕,因为确切的位置可能与你的问题有关。