本文重点
在前面的课程中,我们学习了使用3*3的过滤器去卷积一个5*5的图像,那么最终会得到一个3*3的输出。那是因为 3×3 过滤器在 5×5 矩阵中,只可能有 3×3 种可能的位置。
这背后的数学解释是,如果我们有一个n×n的图像,用f×f的过滤器做卷积,那么输出的维度就是(n−f+1)×(n−f+1)。在这个例子里是5−3+1=3,因此得到了一个 3×3 的输出。
两个问题
第一个:每次做卷积操作,图像就会缩小。可能做了几次卷积之后,图像就会变得很小了,可能会缩小到只有 1×1 的大小。
第二个:原始图片的边缘位置在卷积核卷积的时候可能只被卷到一次。但中间位置可能会被卷积多次。所以那些在角落或者边缘区域的像素点在输出中采用较少,意味着卷积过程中丢掉了图像边缘位置的许多信息。
解决两个问题的方式——填充
卷积神经网络中的填充操作是指在输入数据周围填充一定数量的虚拟数据,以便在卷积操作时可以保持输出数据的大小不变或者减少数据的尺寸损失。
为了解决这个问题,我们可以使用填充padding(填充),比如本例中,我们可以沿着图像边缘再填充一层像素(我们用p表示几层,这里p=1)。那么5×5 的图像就被填充成了一个7×7 的图像。如果你用 3×3 的卷积核对这个 7×7 的图像卷积,你得到的输出就不是 3×3 的&#x