卷积神经网络本质上是采用卷积运算的神经网络。 (而不是完全连接的层)作为它的一个层。CNN是一种非常成功的技术, 应用于输入数据的预测有一个已知的网格 拓扑结构类似于时间序列(一维网格)或图像(二维网格)。
卷积运算 让我们开始发展一维卷积运算的直觉。给定输入i(t)和a 内核k(a)卷积运算由
卷积运算 让我们开始发展一维卷积运算的直觉。给定输入i(t)和a 内核k(a)卷积运算由
st=aIaK(t-a)
给定卷积运算的交换性,此运算的等价形式如下:
st=aIt-aK(a)
此外,可以替换负号(翻转),得到如下的互相关:
st=aIt+aK(a)
在深入学习的文献和软件实现中,使用卷积和互相关。 可互换。操作的本质是内核是一组更短的数据点 与输入相比,当输入与 内核。图5-1和5-2说明了这一关键理念。我们接受一个任意的输入和一个任意的内核, 执行卷积操作,当内核类似于 输入的特定部分。
Figure 5-1. Convolution operation – Intuition
图5-2。卷积运算——一维
让我们通过观察图5-1和5-2并注意到以下几点:
1。输入是一组任意大的数据点。
2。内核是一组数据点,这些数据点的数目比输入的要小。
3。卷积操作在某种意义上使内核滑过输入,并且计算内核与输入部分的相似程度。
4。卷积运算产生的值最大,而内核的值最大。类似于输入的一部分。卷积运算可以扩展到二维。给定输入i(m,n)和内核 k(a,b)卷积运算由
st=abIa,bK(m-a,n-b)
给定卷积运算的交换性,此运算的等价形式如下:
st=abIm-a,n-bK(a,b)
此外,可以替换负号(翻转),得到如下的互相关:
st=abIm+a,n+bK(a,b)
图5-3说明了二维卷积运算。注意这只是简单的扩展 卷积到二维的概念。
图5-3。卷积运算-二维 引入卷积运算后,我们现在可以深入研究 CNN,是使用卷积层而不是包含矩阵的完全连接层 乘法。因此,完全连接的层可以描述为y=f(x×w),其中x是输入向量,y是 输出向量w是一组权重,f是激活函数。相应地,卷积层 可以描述为y=f(s(x×w)),其中s表示输入和 砝码。
现在让我们对比一下完全连接的层和卷积层。图5-4充分说明了连接层和图5-5示意性地说明了卷积层。图5-6说明了参数在一个卷积层中共享,而在一个完全连接的层中缺乏。应注意以下几点:
1。对于相同数量的输入和输出,完全连接的层有很多更多的连接,并相应地加权一个卷积层。
2。在卷积运算中,输入与输出之间的交互作用较少。层与完全连接层中的许多交互作用相比。 这被称为稀疏交互。
3。参数/权重在卷积层中共享,前提是内核 比输入小得多,内核在输入之间滑动。因此,在那里 卷积层中的唯一参数/权重要少得多。
Figure 5-4. Dense Interactions in Fully Connected Layers
池化操作
现在让我们来看一下池操作,它几乎总是与卷积。池操作背后的直觉是,特性的确切位置不是担心是否事实上被发现。它只提供翻译不变性。例如,假设 手边的任务是学会在照片中发现人脸。我们还假设 照片是倾斜的(通常是倾斜的),假设我们有一个卷积层来检测 眼睛。我们想从眼睛的方位抽象出它们在照片中的位置。合并 运营实现了这一目标,是CNN的重要组成部分。 图5-7说明了二维输入的池操作。应注意以下几点:
1。池对输入的一部分进行操作,并在此基础上应用函数f 输入以产生输出。
2。函数f通常是max操作(导致max池),但是 其他变量,如平均值或 L2 norm可以作为一种替代方法。
3。对于二维输入,这是一个矩形部分。
4。汇集产生的产出在维度上要小得多,因为 与输入相比。
图5-7。汇集或再取样 3。对于二维输入,这是一个矩形部分。 4。汇集产生的产出在维度上要小得多,因为 与输入相比。
卷积检测器池构建块 现在让我们来看看卷积检测器池块,它可以被看作是 美国有线电视新闻网。 现在让我们来看看我们之前讨论过的所有操作是如何协同工作的。参见图5-8 图5-9。应注意以下几点:
1。检测器级只是一个非线性激活函数。
2。卷积、检测器和池操作依次应用于 将输入转换为输出。输出被称为功能图。
3。输出通常传递到其他层(卷积或完全连接)。
4。多卷积检测器池块可以并行应用, 使用相同的输入并生成多个输出或特征映射。
图5-8。卷积,然后是检测器级和池
5~9。多个过滤器/内核提供多个功能图
对于由3个通道组成的图像输入,单独的卷积运算应用于 每个通道和卷积后的输出相加。如图5-10所示。
Figure 5-10. Convolution with Multiple Channels
已经涵盖了CNN的所有组成部分,我们现在可以在其 整体如图5-11所示。CNN包括卷积检测器池的两个阶段 在每个阶段具有多个过滤器/内核的块,生成多个功能图。张贴这两个 阶段我们有一个完全连接的层来产生输出。一般来说,CNN可能有多个 卷积检测器池块的阶段(使用多个过滤器),通常后面是 连接层。
Figure 5-11. A Complete Convolution Neural Network Architecture
卷积变量 我们现在将介绍卷积的一些变体,如图5-12所示。跨步卷积是一个变量 在标准卷积中,内核以预先定义的步幅在输入上滑动。安 另一种看待这一问题的方法是,标准卷积的步幅大小等于
1。 另一个变化是分片卷积,其中实际上有多个内核与 交替输入。 图5-12。卷积,主题变化
Figure 5-12. Convolution, variation on the theme
主题的另一个变化是局部连接层,它基本上利用了 但不采用参数/权重共享。如图5-13所示。 图5-13。
局部连接的权重 CNN背后的直觉 到目前为止,在本章中,我们已经介绍了CNN背后的关键组成概念,即卷积 操作、池操作以及它们如何结合使用。现在让我们后退一步 使用这些构建块将CNN背后的直觉内化。 首先要考虑的是CNN的容量(参见第2章关于机器容量的内容 学习模式)。CNN,它用 卷积运算,具有比全连通网络更小的容量。也就是说,存在的数据集 完全连接的网络将能够模拟CNN不会的模式。所以,首先要注意的是CNN 通过限制能力实现更多,从而提高培训效率。
CNN背后的直觉
到目前为止,在本章中,我们已经介绍了CNN背后的关键组成概念,即卷积 操作、池操作以及它们如何结合使用。现在让我们后退一步 使用这些构建块将CNN背后的直觉内化。 首先要考虑的是CNN的容量(参见第2章关于机器容量的内容 学习模式)。CNN,它用 卷积运算,具有比全连通网络更小的容量。也就是说,存在的数据集 完全连接的网络将能够模拟CNN不会的模式。所以,首先要注意的是CNN 通过限制能力实现更多,从而提高培训效率。
第二个要考虑的想法是,学习驱动卷积运算的滤波器在某种意义上是, 代表性学习。例如,学习的过滤器可能会学习检测边缘、形状等。 这里要考虑的重要一点是,我们不是手动描述要从 输入数据,但描述的是一个学会设计特性/表示的体系结构。 第三个要考虑的概念是由池操作引入的位置不变性。合并 操作将功能的位置与检测到的事实分开。检测直线的滤波器 可能在映像的任何部分检测到该筛选器,但池操作选择的事实是 检测到(最大池)。 第四种观点是等级制度。CNN可能有多个卷积和聚集层 然后是完全连接的网络。这使得CNN可以构建一个概念层次,其中 更抽象的概念是基于更简单的概念(参见第1章)。 第五个也是最后一个想法是在一系列卷积的末尾存在一个完全连接的层,并且 汇集层。其思想是卷积层和池层的序列生成特征和 标准神经网络学习最终分类/回归函数。区分这一点很重要 CNN的传统机器学习方面。在传统的机器学习中,专家会 工程师的特征并将其输入神经网络。对于CNN,这些特性/表示是 从数据中学习。 总结 在本章中,我们介绍了CNN的基础知识。关键的要点是卷积运算, 池操作,它们是如何结合使用的,以及功能是如何不是手工设计的,而是如何学习的。 CNN是深度学习最成功的应用,体现了学习特征的思想。/ 表达而不是手工设计。