中间的2*2数组在卷积计算中称为核数组、卷积核或过滤器
二维卷积层将输入和卷积核做互相关运算,并加上一个标量偏差来得到输出。卷积层的模型参数包括了卷积核和标量偏差。在训练模型的时候,先对卷积核随机初始化,然后不断迭代卷积核和偏差
卷积窗口形状为$p\times q$的卷积层称为$p\times q$卷积层或$p\times q$卷积核
卷积层可以通过重复使用卷积核有效的表征局部空间
实际上,卷积运算与互相关运算类似。为了得到卷积运算的输出,我们只需要将核数组左右翻转并上下翻转,在与输入数组做互相关运算。
二维卷积层输出的二维数组可以看作输入在空间维度(宽和高)上某一级的表征,也叫特征图。影响元素x的前向计算的所有可能的输入区域(可能大于输入的实际尺寸)叫作x的感受野。
我们可以通过更深的卷积神经网络使特征图中的单个元素的感受野变得更加广阔,从而捕捉输入上更大尺寸的特征。
一般来说,假设输入形状是$n_h\times n_w$,卷积核窗口形状是$k_h\times k_w$,那么输出形状将会是 $$ (n_h-k_h+1)\times (n_w-k_w+1) $$ 所以卷积层的输出形状由输入形状和卷积核窗口形状决定。下面介绍卷积层的两个超参数填充和步幅。
填充是指在输入高和宽的两侧填充元素(通常是0元素)。
一般来说,如果在高的两侧一共填充$p_h$行,在宽的两侧一共填充$p_w$列,那么输出形状将会是 $$ (n_h-k_h+p_h+1)\times (n_w-k_w+p_w+1) $$ 很多情况下,会设置$p_h=k_h-1$和$p_w=k_w-1$来使输入和输出具有相同的高和宽。卷积神经网络经常使用奇数高和宽的卷积核。
一般来说,当高上步幅为$s_h$,宽上步幅为$s_w$时,输出形状为 $$ \lfloor(n_h-k_h+p_h+s_h)/s_h\times (n_w-k_w+p_w+s_w)/s_w\rfloor $$ 如果设置$p_h=k_h-1$和$p_w=k_w-1$,那么输出形状将简化为$\lfloor(n_h+s_h-1)/s_h\times (n_w+s_w-1)/s_w\rfloor$。更进一步,如果输入的高和宽能分别被高和宽上的步幅整除,那么输出形状将是$\lfloor(n_h/s_h)\times (n_w/s_w)\rfloor$。
小结:
之前我们用到的输入和输出都是二维数组,但真实数据的维度经常更高。例如,彩色图像在高和宽两个维度外还有RGB(红、绿、蓝)3个颜色通道。
当输入数据含有多个通道时,我们需要构造一个输入通道数与输入数据的通道数相同的卷积核。
设卷积核输入通道数和输出通道数分别为$c_i$和$c_o$,高和宽分别为$k_h$和$k_w$。如果希望得到含多个通道的输出,我们可以为每个输出通道分别创建形状为$c_i\times k_h\times k_w$的核数组。将他们在输出通道维上连结,卷积核的形状即$c_o\times c_i\times k_h\times k_w$。在做互相关运算时,每个输出通道上的结果有卷积核在该输出通道上的核数组与整个输入数组计算而来。
$1\times 1$卷积层是卷积窗口形状为$1\times 1$的多通道卷积层。$1\times 1$卷积失去了卷积层可以识别高和宽维度上相邻元素构成的模式的功能。实际上$1\times1$卷积的主要计算发生在通道维上。
输出中的每个元素来自输入中在高和宽上相同位置的元素在不同通道之间的按权重累加。假设我们将通道维作为特征维将高和宽维度上的元素当成数据样本,那么**$1\times1$卷积层的作用与全连接层等价。**
小结:
池化层的提出是为了缓解卷积层对位置的过度敏感性。
池化层直接计算池化窗口内元素的最大值或者平均值,该计算也分别叫作最大池化和平均池化。
同卷积层一样,池化层也可以在输入的高和宽两侧的填充并调整窗口来移动步幅来改变输出形状。
在处理多通道输入数据时,池化层对每个输入通道分别池化,而不是想卷积层那样各通道的输入按通道相加。这意味着池化层的输出通道数和输入通道数相等。
小结:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。