Module 01 · Foundations of Convolutional Neural Networks
Padding填充
在构建深度神经网络时,卷积操作的一个重要修改就是 填充(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),这是卷积操作的另一重要变种。
🔜 下一个视频:步长卷积的实现与应用