一. 卷积(convolution)的概念
卷积是一个使用卷积核(filter)对像素矩阵进行规划的过程。
具体为:在每层像素矩阵上按步长扫描下去,扫描到的像素矩阵和卷积核中对应位置元素做哈达玛积,然后再将得到的对应位置元素相加,即为卷积核一个扫描的输出值,卷积核扫描完一个像素矩阵上所有像素,得到一个新的特征图矩阵,也是这个卷积层的输出,一个卷积核相当于一个特征提取器,一个卷积核得到一个特征图(feature map)。
卷积核大小:3X3, 5X5;常用3X3的卷积核。
卷积中特征图大小计算公式:
wout=(win+2xpadding-F+1)/stride
此时,输入特征图大小与输出特征图大小一样,’SAME’,padding为特征图填充圈数,可知:当卷积核F=3时,padding=1,依此类推。
卷积核元素:卷积核元素即是要训练的模型神经元参数,又叫权重(weight)。
具体为:首先随机初始化参数,训练模型时,即在反向传播时不断更新这些参数,直至寻找到最优参数。最优参数通过损失函数来评估。
像素矩阵:如何得到?彩色图像有RGB(red,green,blue)三个通道,即三个像素矩阵,各个像素矩阵用二维矩阵来表示,像素取值范围[0,255],其中255为白色,0为黑色
卷积可以对原图像进行二次转化,提取特征图;相当于信号处理的滤波器,如拉普拉斯滤波(高通滤波器,保留高频边缘,用于边缘检测,需要用二阶导数),高斯滤波,这些滤波器都可以写成卷积核形式,如拉普拉斯算子(中心位置数字-8,其余数字为1,目的系数之和为0),拉普拉斯算子对噪声很敏感。
一阶导数计算梯度,用于线的检测
prewitt算子:检测水平,垂直,对角线;sobel算子:中心系数使用权重2,较好抑制噪声,检测水平,垂直,对角线。
二. padding
在进行卷积操作后,像素矩阵维度会变小,不方便计算,padding操作后卷积出来的特征图矩阵会核原矩阵尺寸一样。
具体为:给原始像素矩阵的四周添上一圈0。
三. 池化(pooling)
在进行卷积操作后,提取得到特征图,特征图中相邻区域中有相似特征信息(可以互相替代),可以删去一部分冗余信息,减少参数数量并降低计算量,抑制了过拟合风险,同时保留了平移,旋转,尺度的不变性。
具体有:最大池化(max_pooling):(取局部领域中最大值。更好的保留纹理特征)和平均池化(mean_pooling):(求局部领域所有值和的平均值。更好保留整体数据特征)。
常用的是最大池化。常用2x2的滤波器(filter),2的步长(stride)进行扫描,特征图的高度(height)、宽度(width)减半,通道数不变。
池化也增加了图像的感受野,提升了模型的能力。
池化层没有参数!!!
四. 感受野(Receptive Field)
即特征图上一个像素对应回输入图像的区域大小。(需要通过卷积核尺寸和池化滤波器尺寸和步长计算)
感受野计算:
思想:从最后一层特征图开始,从下往上的计算(倒着计算)。先计算最深层在前一层上的感受野,然后依此类推逐层推算到输入层(即第一层)。最后一层的特征图的感受野等于其卷积核的大小,第i层特征图的感受野大小和第i层的卷积核和步长相关,还和第i+1层的感受野大小相关。
感受野计算公式:RFi = (RFi+1 - 1) x Stridei + Kerneli+1
其中:i是当前特征层的层数;RFi是第i层感受野大小;RFi+1是第i+1层感受野大小;Stridei是第i层卷积核步长;Kerneli+1是第i层卷积核尺寸大小。
1个3x3卷积核感受野为3x3,2个3x3卷积核感受野为5x5,3个3x3卷积核感受野为7x7,n个3x3卷积核感受野为2n+1 x 2n+1,n为3x3卷积核个数;池化层卷积核一般为2x2,卷积层卷积核一般为3x3;
若无池化,4个3x3卷积核感受野为9x9,而加入3个2x2卷积核的池化层后,感受野变为30x30,很明显感受野迅速增大。
根据此特点,越深层的特征点描述的原图像信息越全面,可通过增加网络层数,增加池化层,和使用更大的卷积核来增加感受野。
有效感受野(Effective Receptive Field)
实际的有效感受野是一个高斯分布,增大有效感受野:空洞卷积(不丢失分辨率(精确定位),扩大感受野(检测分割大目标))。
空洞卷积/扩张卷积
空洞卷积:在相同计算条件下,提供了更大感受野。空洞位置填0.
通过在原卷积核元素之间插入空格来使原卷积核扩张。扩张率(dilation rate)表示扩张程度。但是参数数量是一样的,不会增加卷积核的大小。
比较:一个5x5大小的区域经过2次3x3的卷积后,变成一个像素点;一个13x13大小的区域经过2次3x3的空洞卷积后,变成了一个像素点。
空洞卷积与普通卷积相比:卷积核大小一样,即参数数量一样,输出的特征图大小一样,区别在于空洞卷积在不做pooling损失信息的情况下有更大的感受野,
扩张率:卷积核个元素之间间隔数量。显然普通卷积核的扩张率为0,感受野3x3;
空洞卷积感受野计算公式:
F = (2log2rate+2 - 1) x (2log2rate+2 - 1)
普通卷积,扩张率为1,感受野3x3;扩张率为2,感受野为7x7;扩张率为4,感受野为15x15;
五.Fletten
将池化后的像素拉开,变成一维向量,方便输入到全连接层。