1. 2D卷积
卷积的目的是从输入中提取有用的特征。在图像处理中,卷积可以选择多种不同的滤波器。每种类型的过滤器都有助于从输入图像中提取不同的方面或特征,例如横向/纵向/对角线边缘。同样,在卷积神经网络中,通过卷积,利用训练过程中自动学习权值的滤波器来提取不同的特征。然后,所有这些提取的特征被“组合”以做出决定。
卷积有几个优点,如权值共享和平移不变性。卷积还考虑了像素的空间关系。这些任务可能非常有用,尤其是在许多计算机视觉任务中,因为这些任务通常涉及识别某些组件与其他组件在空间上有一定关系的对象(例如,狗的身体通常与头部、四条腿和尾巴相连)。
单通道版本
深度学习中,卷积是元素的乘法和加法。对于具有一个通道的图像(灰度图像),卷积如图所示,过滤器也即卷积核是3x3矩阵,元素为[[0,1,2],[2,2,0],[0,1,2]]。滤波器在输入端滑动。在每一个位置上,它都进行元素乘法和加法。每个滑动位置以一个数字结束。最后的输出是一个3×3的矩阵。(注意,在本例中,步幅=1,填充=0。这些概念将在下面的算术部分中描述。
多通道版本
在许多应用程序中,我们处理的是具有多个通道的图像。一个典型的例子是RGB图像。
多通道数据的另一个例子是卷积神经网络中的层。卷积网络层通常由多个信道(通常是数百个信道)组成。每个通道描述前一层的不同方面。我们如何在不同深度的层之间进行转换?如何将深度为n的层转换为深度为m的层?
澄清一些术语:层,通道,特征图,滤波器,核。从层次结构角度来看,层和滤波器概念属于同一层次,而通道和核处于下面的一个层次。通道和特征图是一样的。一个图层可以有多个通道(或特征图):如果输入是RGB图像,则输入图层有3个通道。“通道”通常用来描述“层”的结构。类似地,“核”用于描述“滤波器”的结构。
“层”(“滤波器”)和“通道”(“核”)之间的区别:
滤波器和核之间区别有些棘手。有时,它们可以互换使用,这会造成混乱。本质上,这两个术语有细微的区别。
“核”是指一个二维权重数组。
“滤波器”是指堆叠在一起的多个核的三维结构
对于二维滤波器,滤波器和核是一样的。但对于一个3D滤波器和深度学习中的大多数卷积来说,滤波器就是核的集合。每个核都是唯一的,强调输入通道的不同方面。
有了这些概念,多通道卷积就如下所示。每个核被应用到前一层的输入通道上,以输出一个输出通道。这是一个核扩展的过程。我们对所有核重复这样的过程以生成多个通道。然后将这些通道中的每一个相加,形成一个单独的输出通道。如图
这里输入层是一个5x5x3矩阵,有3个通道。滤波器是一个3x3x3矩阵。
首先滤波器中的每个核分别应用于输入层的3个通道,进行3次卷积,产生3个尺寸为3x3的通道。
然后将这三个通道相加(元素相加),形成一个单通道(3x3x1)。该通道是使用滤波器(3x3x3矩阵)对输入层(5x5x3矩阵)进行卷积的结果。
我们可以把这个过程看作是在输入层中滑动一个三维过滤矩阵。请注意,输入层核滤波器具有相同的深度(通道数=核数)。3D滤波器尽在图像的两个方向:高度和宽度上移动(这就是为什么这种操作称为二维卷积,尽管3D滤波器用于处理三维体积数据)。在每个滑动位置,我们执行元素相乘和相加,结果是一个数字。在下面示例中,滑动5个水平位置和5个垂直位置执行。总的来说,我们得到一个单一的输出通道。
现在我们可以看到如何在不同深度之间进行过渡。假设输入层有Din通道,我们希望输出层有Dout通道。我们需要做的是将Dout个滤波器应用到输入层,每个滤波器都有Din个核。每个滤波器提供一个输出通道。在应用了Dout个滤波器后,我们就有了Dout通道,这些通道可以叠加在一起形成输出层。如下图所示: