本文共 869 字,大约阅读时间需要 2 分钟。
为了构建深度神经网络,我们需要掌握一个基本的卷积操作——Padding(填充)。了解它是如何工作的,能帮助我们更好地设计和应用卷积网络。
当使用一个3×3的过滤器对一个6×6的图像进行卷积操作时,最终会得到一个4×4的输出矩阵。这背后的数学原理是:如果有一个n×n的图像,用f×f的过滤器进行卷积,那么输出的维度将是(n - f + 1)×(n - f + 1)。在本例中,6 - 3 + 1 = 4。
这样会有两个缺点:①每次卷积操作后,图像会缩小。②边缘或角落区域的像素在输出中贡献较少,导致边缘信息丢失。为了解决这些问题,可以在卷积操作之前对图像进行填充。在本例中,可以在图像边缘添加一层像素(如上图中的蓝线)。这样,原本的6×6图像会被填充成一个8×8的图像。然后用3×3的过滤器对这个8×8的图像进行卷积,输出大小将从4×4恢复到6×6。通常,我们使用0填充,也就是在四周填充一层像素(p=1)。根据计算公式,输出大小将是n + 2p - f + 1。在本例中,6 + 2×1 - 3 + 1 = 6。
这种填充方式减弱了边缘信息丢失的问题。另一种选择是填充两个像素点。关于填充的数量p,通常有两种选择:Valid卷积(p=0)和Same卷积(p=1)。在Same卷积中,输出大小与输入大小相同。通过公式n + 2p - f + 1 = n,可以求解p的值,得出p = (f - 1)/2。
在计算机视觉中,过滤器尺寸f通常是奇数。这背后有两个原因:①如果f是偶数,填充必须是非对称的(asymmetric padding)。只有当f是奇数时,Same卷积才能有自然的填充方式。②当f是奇数时,过滤器有一个中心像素点,便于定位。
虽然这些可能不是全部原因,但在文献中,3×3的过滤器最为常见。因此,Andrew建议只使用奇数尺寸的过滤器。
总的来说,Padding是卷积操作中的一个重要概念。通过选择填充类型(如Valid或Same)或指定填充数量p,可以控制输出大小。Same卷积是最常用的选择,因为它确保输出与输入大小一致。
转载地址:http://rcvfk.baihongyu.com/