图像在计算机中的本质是矩阵
卷积运算中多通道(例如64通道)与颜色无关,指的是每个特征图所提取的特征所提取的特征
卷积运算
卷积是一种运算,含有卷积运算的网络就是卷积神经网络(有可能含有池化运算)。
卷积核:就是权重参数w组成的,梯度下降法更新
w
=
w
−
∂
L
∂
w
w = w - \frac{\partial L}{\partial w}
w=w−∂w∂L。
如图:卷积运算对应位置相乘最后再相加
输出19 = 0×0 +1×1 +3×2 +4×3
滑动步幅为1,每滑动一下计算一次,先往哪里滑动都可以;
加入偏置b,每个输出对应位置都加b
b同样也是梯度下降法更新 b = b − ∂ L ∂ b b = b - \frac{\partial L}{\partial b} b=b−∂b∂L
步幅
步幅滑动几步都可以,自己设定
填充
通过卷积运算,输出特征图大小相比输入特征图变小,通过一层层卷积运算,会导致后续无法进行,所以要进行填充操作。
步幅和填充共同影响输出特征图的大小
填充:
经过卷积层运算的特征图大小
O H OH OH输出特征图 H e i g h t Height Height
P P P填充 p a d d i n g padding padding
S S S步幅 s t r i d e stride stride
F H FH FH卷积核的 H e i g h t Height Height
O W OW OW同理
多通道数据卷积运算
输入特征图4×4×3 通道数为3,则相应卷积通道数也为3(自动匹配输入特征图通道数),人为设定卷积核大小(此处为3×3);
每个通道的特征图经卷积运算后对应位置的值相加,得到最后的一张特征图
输出特征图的通道数由卷积核数量决定,与、输入特征图通道数、卷积核通道数无关。如在图中无论输入特征图通道数是多少,卷积后输出特征图通道都为一。
卷积核个数
F
N
FN
FN决定输出特征图通道数
加上偏置
b
b
b
二、池化操作
池化过程在一般卷积过程后。池化(pooling) 的本质,其实就是采样。Pooling 对于输入的 Feature Map,选择某种方式对其进行降维压缩,以加快运算速度。
注意:池化层不算神经网络层,因为池化层没有参数。
2.1两种主要池化方式
最大池化(Max Pooling)
上图中橘色方框为2×2的池化窗口(感受野)
池化过程类似于卷积过程,如上图所示,表示的就是对一个 4X4 feature map邻域内的值,用一个 2X2 的filter,步长为2进行‘扫描’,选择最大值输出到下一层,这叫做 Max Pooling。
max pooling常用的 S=2,f=2 的效果:特征图高度、宽度减半,通道数不变。
即经过池化操作特征图高度和宽度会发生改变,但通道数不变
平均池化(Average Pooling)
计算区域子块所包含所有像素点的均值,将均值作为平均池化结果。如 下图(a),这里使用大小为2×2的池化窗口,每次移动的步幅为2,对池化窗口覆盖区域内的像素取平均值,得到相应的输出特征图的像素值。
池化的作用
(1)保留主要特征的同时减少参数和计算量,防止过拟合。
(2)invariance(不变性),这种不变性包括translation(平移),rotation(旋转),scale(尺度)。
Pooling 层说到底还是一个特征选择,信息过滤的过程。也就是说我们损失了一部分信息,这是一个和计算性能的一个妥协,随着运算速度的不断提高,这个妥协会越来越小。
卷积神经网络结构
例如经典卷积神经网络AlexNet、VGG、ResNet等,整体结构可归纳为上图所示
Yolo系列利用经典卷积神经网络作为骨干网络(backbone)用来提取特征。