TF01—卷积计算过程
TF01—卷积计算过程
在之前我们使用六步法构建了全连接网络,训练了Minist数据集和Fashion数据集,实现了图像识别应用
全连接网络中的每一个神经元小球,与前后相邻层的每一个神经元都有连接关系,实践证明,全连接网络对识别和检测都有非常好的效果
在Minist图像识别的输入全连接网络的是一幅28行28列的784个像素点的灰度值,仅两层全连接网络就有十万多个带训练参数

-
全连接NN:每个神经元与前后相邻层的每一个神经元都有连接关系,输入是特征,输出为预测的结果

实际项目中输入神经网络的的图片多是高分辨率彩色图,使得送入全连接网络的输入特征数过多,随着隐藏层层数的增加网络规模过大,待优化参数过多容易导致模型过拟合

在实际应用时,会先对原始图像及逆行特征提取,再把提取到的特征送给全连接网络,让全连接网络输出识别结果

比如上图中,这副彩色图片进入神经网络时,会对它进行若干层特征提取,把提取到的特征送入全连接网络进行识别
卷积(Convolutional)
- 卷积计算可认为是一种有效提取图像特征的方法
- 一般会用一个正方形的卷积核,按指定步长,在输入特征图上滑动,遍历输入特征图中的每个像素点,每一个步长,卷积核会输入特征图出现重合区域,重合区域对应元素相乘、求和再加上偏置项得到输出特征的一个像素点

如果输入特征是单通道灰度图,使用这样深度为1的单通道卷积核

如果输入特征是三通道彩色图,可以使用这样一个3*3*3
的卷积核或者这样一个5*5*3的卷积核
总之要使卷积核的通道数与输入特征图的通道数一致,因为要想让卷积核与输入特征图对应点匹配上,必须让卷积核的深度与输入特征图的深度一致,所以输入特征的深度(channel数),决定了当前层卷积核的深度;
由于每个卷积核在卷积计算后,会得到一张输出特征图,所以当前层使用了几个卷积核,就有几张输出特征图,所以当前层卷积核的个数,决定了当前层输出特征图的深度

如果你觉得某层模型的特征提取能力不足,可以在这一层多用几个卷积核提高这一层的特征提取能力

上图,是我们刚才用的三个卷积核,里面的每一个小颗粒,都存储着一个待训练参数,在执行卷积计算时,卷积核里的这些参数是固定的,在每次反向传播时,这些小颗粒中存储的待训练参数,会被梯度下降法更新,卷积就是利用立体卷积核,实现了参数的空间共享

对于输入特征图是单通道的,选择单通道卷积核,上图例子的输入特征图是5行5列单通道,选用3*3单通道卷积核,滑动步长是1,在这个输入特征图上滑动,每滑动一步,输入特征图与卷积核里的9个元素重合他们对应的元素相乘求和再加上偏置项b,例如上图滑动位置时,利用下面的算式得到输出特称图上的一个特征值:

对于输入通道时三通道的,选择三通道卷积核,这里的例子的输入特征图,是5行5列红绿蓝三通道数据,这里选用了3*3三通道卷积核,滑动步长是1,每滑动一步,输入特征图与卷积核里的27个元素重合,他们对应的元素相乘求和再加上偏置项b,比如卷积核滑动到这个位置,红绿蓝三层分别与卷积核的三层特征数据重合,他们对应元素相乘求和加上偏置项b,得到输出特征图中的一个像素值

以上就是卷积计算过程,动态可视化如下,当输入特征图被遍历完成,得到一张输出特征图,完成了一个卷积核的卷积计算过程,当有n个卷积核时,会有n张输出特征图:
