![af9de8b2221ebf146186c8ce46bd8b9e.gif](https://img-blog.csdnimg.cn/img_convert/af9de8b2221ebf146186c8ce46bd8b9e.gif)
理解卷积神经网络CNN,特别是对第一次接触卷积神经网络的人来说,经常会对诸如卷积核、滤波器、通道等概念和他们的堆叠架构感到困惑。然而卷积是强大且高度可扩展的概念,在本文中,我们将逐步分解卷积操作的原理,将他与标准的全连接网络联系起来,并且探索如何构建一个强大的视觉层次,使其成为高性能的图像特征提取器。
二维卷积:操作 二维卷积是一个相当简单的操作:从卷积核开始,这是一个小的权值矩阵。这个卷积核在 2 维输入数据上「滑动」,对当前输入的部分元素进行矩阵乘法,然后将结果汇为单个输出像素。
![caaae23bb4993c2f54860cca28b0d518.gif](https://img-blog.csdnimg.cn/img_convert/caaae23bb4993c2f54860cca28b0d518.gif)
一个标准的卷积 卷积核重复这个过程知道遍历了整张图片,将一个二维矩阵转换为另一个二维矩阵。输出特征实质上是在输入数据相同位置上的加权和(权值是卷积核本身的值)。 输入数据是否落入这个「大致相似区域」,直接决定了数据经过卷积核后的输出。这意味着卷积核的尺寸直接决定了生成新的特征时汇合了多少(或几个)输入特征。 这与全连接层完全相反。在上面的例子中,我们的输入特征为 5*5=25,输出数据为 3*3=9. 如果我们使用标准的全连接层,就会产生一个 25*9=225 个参数的权值矩阵,每个输出都是所有输入数据的加权求和。卷积操作允许我们只用 9 个参数来实现这个变换,每个输出特性不用「查看」每个输入特征,而是只是「查看」来自大致相同位置的输入特征。请注意这一点,因为这对我们后面的讨论至关重要。
Padding 和 Strides 在我们继续介绍卷积神经网络之前,介绍两种卷积层中常用的技术:Padding 和 Strides Padding:如果你看到上面的动画,那么会注意到在卷积核滑动的过程中,边缘基本会被「裁剪」掉,将 5*5 特征矩阵转换为 3*3 的特征矩阵。边缘上的像素永远不在卷积核的中心,因为内核没有任何东西可以扩展到边缘之外。这并不理想,因为我们经常希望输出的尺寸等于输入。
![bb149106a97de05de8a679ad10b8865f.gif](https://img-blog.csdnimg.cn/img_convert/bb149106a97de05de8a679ad10b8865f.gif)
一些 padding 操作 Padding 做了一些非常机智的办法来解决这个问题:用额外的「假」像素(通常值为 0, 因此经常使用的术语「零填充」)填充边缘。这样,在滑动时的卷积核可以允许原始边缘像素位于其中心,同时延伸到边缘之外的假像素,从而产生与输入相同大小的输出。
![1f0b9be4f6badcfb364458ea7c487774.gif](https://img-blog.csdnimg.cn/img_convert/1f0b9be4f6badcfb364458ea7c487774.gif)
一