- 卷积计算可认为是一种有效提取图像特征的方法。
- 一般会用一个正方形的卷积核,按指定步长在输入特征图上滑动。
- 遍历输入特征图中的每个像素点。对每个步长,卷积核会与输入特征图出现重合区域,重合区域对应元素相乘、求和再加上偏置项得到输出特征的一个像素点。
- 输入特征图的深度(channel数)决定了当前层卷积核的深度。
- 当前层卷积核的个数,决定了当前层输出特征图的深度。
下面是三个卷积核的例子w×h×c。
第一个是单通道的3×3卷积核(3×3×1),加上一个偏置项,每个核有3×3+1=10个参数。
第二个是三通道的3×3卷积核(3×3×3),加上一个偏置项,每个核有3×3×3+1=28个参数。
第三个是三通道的5×5卷积核(5×5×5),加上一个偏置项,每个核有5×5×3+1=76个参数。
1) 输入特征图为单通道
输入特征图上的元素与卷积核的对应元素相乘后求和,再加上一个偏置项。
2)输入特征图为3通道
3)一个卷积核的计算过程
下面继续举例解释卷积计算过程
1)输入特征图是单通道,且采用单卷积核,即输入特征图是5×5的矩阵,卷积核是3×3的矩阵,移动步长是1
卷积核从左到右,从上到下依次移动,每一动一步将框注的特征矩阵与卷积核矩阵对于元素相乘相加,直到扫描完所有的像素点矩阵为止。
[
1
−
1
0
−
1
−
2
2
1
2
−
2
]
∗
[
−
1
1
2
1
−
1
3
0
−
1
−
2
]
=
[
−
1
−
1
0
−
1
2
6
0
−
2
4
]
\begin{bmatrix} 1 & -1 & 0 \\ -1 & -2 & 2 \\ 1&2&-2 \end{bmatrix} * \begin{bmatrix} -1 & 1 & 2 \\ 1 & -1 & 3 \\ 0&-1&-2 \end{bmatrix} = \begin{bmatrix} -1 & -1 & 0 \\ -1 & 2 & 6 \\ 0&-2&4 \end{bmatrix}
⎣⎡1−11−1−2202−2⎦⎤∗⎣⎡−1101−1−123−2⎦⎤=⎣⎡−1−10−12−2064⎦⎤
对应元素相乘后,将最后的矩阵中的所有元素相加(此处未加偏置项):
−
1
−
1
+
0
−
1
+
2
+
6
+
0
−
2
+
4
=
7
-1-1+0-1+2+6+0-2+4=7
−1−1+0−1+2+6+0−2+4=7
1)输入特征图是3通道,且采用单卷积核,即输入特征图是3个5×5的矩阵,卷积核是3个3×3的矩阵,移动步长是1,注意输入特征图的通道数与卷积核的通道数相同
整个的计算示意图如下图所示,输入的每个通道处的感受野均与卷积核的对应通道相乘累加,得到与通道数量相等的中间变量,这些中间变量全部相加即得到当前位置的输出值。总之,输入通道的通道数量决定了卷积核的通道数。一个卷积核只能得到一个输出矩阵,无论输入特征图的通道数量是多少。
1)输入特征图是多通道,且采用多卷积核
- 输入特征图为多通道、多卷积核是深度神经网络中最常见的形式。在多通道和单卷积核的运算过程中, 卷积核和一个输入特征图做卷积计算后得到一个输出特征图。
- 在多通道和多卷积核运算后,会输出与卷积核数量相同的多个特征图,以3通道输入,2个卷积核的卷积层为例,通过卷积计算后输出2个特征图。
内容参考以下资料,供大家学习:
人工智能实践:Tensorflow笔记
《TensorFlow+2.0深度学习算法实战教材》:网盘下载:https://pan.baidu.com/s/1CBaZ2k3o4k2P40Fx3BXG4A 提取码:g72y