Coursera 笔记

Module 01 · Foundations of Convolutional Neural Networks

Padding填充

Coursera ↗

在构建深度神经网络时,卷积操作的一个重要修改就是 填充(Padding)。让我们来看看它是如何工作的。


1. 卷积操作回顾

图像与滤波器的卷积

在之前的视频中,我们看到了一个 6x6 图像 和 3x3 滤波器 的卷积操作。卷积后得到的结果是 4x4 输出矩阵,这是因为,只有 4x4 个位置可以放下 3x3 滤波器,从而进行卷积。数学上来说,给定一个 n x n 的图像和一个 f x f 的滤波器,输出的尺寸为:

对于这个例子,6 - 3 + 1 = 4,所以输出的结果是 4x4。


2. 填充的必要性

问题 1:图像尺寸缩小

每次应用卷积操作时,图像的尺寸都会缩小。例如,从 6x6 缩小到 4x4,如果进行多次卷积,图像尺寸最终可能会变得非常小,甚至缩小到 1x1,导致无法进行更多的特征提取。因此,图像缩小的问题在构建深度神经网络时尤为突出,尤其是在有多个卷积层时,图像尺寸会逐渐减小,最终无法有效处理。

问题 2:边缘信息丢失

在卷积过程中,位于 图像边缘 或 角落 的像素点只会影响到 一个输出,而 图像中心 的像素点会影响到多个输出。因此,图像的 边缘信息 会被丢弃或使用得较少,这也是一个需要解决的问题。


3. 填充解决方案

为了避免图像尺寸过度缩小以及边缘信息丢失,可以通过 填充(Padding) 操作来解决这些问题。

填充的应用

假设我们为图像添加 1像素 的填充,将原来的 6x6 图像 扩展为 8x8 图像。然后,用 3x3 滤波器 对 8x8 图像 进行卷积,得到的输出仍然是 6x6,从而 保持了原始图像的大小。

公式

如果填充为 p 像素,输出的尺寸为:

在此例中,n = 6,f = 3,p = 1,所以输出的尺寸为:

这样,通过填充,我们成功地保留了图像的 原始尺寸,并且避免了丢失边缘信息的问题。

更多填充选项

除了 1像素填充,你还可以选择 2像素填充,或者其他更多的填充方式。通过填充,我们确保图像的边缘像素在卷积过程中得到了更多的利用,从而减少边缘信息的丢失。


4. 常见的填充类型

在卷积操作中,常见的填充方式有两种:有效卷积(Valid Convolution) 和 相同卷积(Same Convolution)。

有效卷积(Valid Convolution)

  • 无填充,即 p = 0。
  • 输出尺寸为:n - f + 1,例如,6x6 图像和 3x3 滤波器的卷积结果为 4x4。

相同卷积(Same Convolution)

  • 输出尺寸与输入尺寸相同。
  • 为了实现这一点,需要选择合适的填充量,使得输出与输入的尺寸一致。
  • 输出尺寸公式为:n + 2p - f + 1 = n。

计算填充量

为了使输出尺寸与输入尺寸相同,我们可以通过以下公式来确定填充量 p:

例如,若 f = 3,则填充量为:

如果 f = 5,则填充量为:

通常情况下,滤波器的大小 f 为 奇数,这是因为奇数滤波器能够保证有一个明确的 中心像素,这在计算机视觉中非常重要。


5. 为什么滤波器大小通常为奇数?

对称性与中心像素

  • 当滤波器大小为 偶数 时,填充会变得不对称,导致左侧和右侧的填充量不同。
  • 使用 奇数大小 的滤波器(如 3x3、5x5 等)时,可以确保滤波器有一个明确的 中心像素,这对于定位和特征提取非常重要。

常见滤波器大小3x3、5x5、7x7,甚至1x1,通常都是奇数尺寸。


6. 填充与卷积的选择

在实际应用中,您可以根据需要选择以下方式来指定卷积的填充:

  • 有效卷积(Valid Convolution):即不进行填充,适用于不关心边缘信息的情况。
  • 相同卷积(Same Convolution):通过填充确保输出与输入具有相同的尺寸,适用于需要保留输入图像尺寸的情况。

小结

  • 填充(Padding) 是深度神经网络中非常重要的操作,解决了图像尺寸缩小和边缘信息丢失的问题。
  • 常见的填充方式有 有效卷积(Valid Convolution) 和 相同卷积(Same Convolution),它们分别对应不同的填充策略。
  • 滤波器通常选择 奇数尺寸,以保证有一个明确的中心像素,方便特征提取。

在下一个视频中,我们将探讨 步长卷积(Strided Convolutions),这是卷积操作的另一重要变种。


🔜 下一个视频:步长卷积的实现与应用