深度学习笔记 5 卷积、池化

目录

1. 卷积

1.1 卷积的目的

1.2 卷积的基本属性

1.3 卷积的特点

2. 卷积分类与计算

 2.1 标准卷积

2.2 反卷积(转置卷积)

​2.3 空洞卷积

2.4 深度可分离卷积

2.5 分组卷积

2.6可变形卷积 

3. 池化


1. 卷积

卷积(Convolution),也叫褶积,通过两个函数 f 和 g 生成第三个函数的一种数学算子,表征函数 f 与 g 经过翻转和平移的重叠部分函数值乘积对重叠长度的积分。

1.1 卷积的目的

卷积是为了提取图像特征,通过卷积层,可以自动提取图像的高维度且有效的特征;并且卷积核的权重是可以学习的,在高层神经网络中,卷积操作能突破传统滤波器的限制,根据目标函数提取出想要的特征。

1.2 卷积的基本属性

卷积核(Kernel):卷积操作的感受野,直观理解就是一个滤波矩阵,普遍使用的卷积核大小为3×3、5×5等;

步长(Stride):卷积核遍历特征图时每步移动的像素,如步长为1则每次移动1个像素,步长为2则每次移动2个像素(即跳过1个像素),以此类推;

填充(Padding):处理特征图边界的方式,一般有两种,一种是对边界外完全不填充,只对输入像素执行卷积操作,这样会使输出特征图的尺寸小于输入特征图尺寸;另一种是对边界外进行填充(一般填充为0),再执行卷积操作,这样可使输出特征图的尺寸与输入特征图的尺寸一致;

通道(Channel):卷积层的通道数(层数)。

1.3 卷积的特点

“局部感知,参数共享”的特点大大降低了网络参数,保证了网络的稀疏性,防止过拟合。

(1)局部视野
卷积操作在运算的过程中,一次只考虑一个窗口的大小,因此其具有局部视野的特点,局部性主要体现在窗口的卷积核的大小。
(2)权重共享
从上面的讲解可以看到,对一个输入为5∗5,卷积核为3∗3的情况下,对于每一个滑动窗口,使用的都是同一个卷积核,所以其参数共享。
(3)多个卷积核可以发现不同角度的特征,多个卷积层可以捕捉更全局的特征(处于卷积网络更深的层或者能够的单元,他们的接受域要比处在浅层的单元的接受域更大)

2. 卷积分类与计算

 2.1 标准卷积

标准卷积核目标图像矩阵进行卷积运算,多少数量的卷积核,就会对应多少的特征图。

单通道(卷积核(kernel)为3×3、步长(stride)为1、填充(padding)为0)

多通道 ,拥有多个通道的卷积,例如处理彩色图像时,分别对R, G, B这3个层处理的3通道卷积

 多个卷积核,若有多个卷积核,对应多个feature map,也就是下一个输入层有多个通道。如下图所示

2.2 反卷积(转置卷积)

转置卷积也被称为反卷积,先按照一定的比例通过补0来扩大输入图像的尺寸,接着旋转卷积核(矩阵转置),再进行正向卷积。

它可以看作是普通卷积的一个“对称”操作,这种“对称性体现在以下两个方面”
转置卷积能将普通卷积中输入到输出的尺寸变换逆反过来,反卷积的操作只是恢复了矩阵的尺寸大小并不能恢复每个元素的原始值。
转置卷积的信息正向传播于普通卷积的误差反向传播所用的矩阵相同,反之亦然
普通卷积和转置卷积所处理的基本任务是不同的。前者主要用来做特征提取,倾向于压缩特征图尺寸,后者主要用于对特征图进行扩张或上采样,代表性的场景如下:
语义分割/实例分割
些物体检测、关键点检测
图像的自编码器、变分自编码器、生成对抗网络等

在卷积操作中: cx=y
在反卷积操作中: c^T y=x
这里并不是严格意义上的等于,而只是维度的相等,因为c 和 c^T都是训练,并不是直接取转置。

2.3 空洞卷积

空洞卷积是针对图像语又分割问题中下来样会降低图像分解率、去失信息而提出的种卷积思路。利用添加空洞扩大感受野,让原本3x3的卷积核,在相同参数量和计算量下拥有5x5 (dilated rate =2)或者更大的感受野,从而无需下采样。

空洞卷积或者膨胀卷积是在标准的卷积核里注入空洞利用添加空洞扩大感受野,让原本3x3的卷积核,在相同参数量和计算量下拥有5x5(dilated rate =2)或者更大的感受野,从而无需下采样。相比原来的正常convolution,dilated convolution 多了一个超参数称之为 dilation rate(空洞率d) 指的是kernel的间隔数量(e.g. 标准卷积的空洞率是1),即在内核元素之间插入d-1个空格。当d=1时,则内核元素之间没有插入空格,变为标准卷积优点是在保持同等计算量的情况下可以扩大感受野,缺点是存在网格效应。

空洞卷积优点
在不做pooling损失信息和相同的计算条件下的情况下,加大了感受野,让每个卷积输出都包含较大范围的信息。空洞卷积经常用在实时图像分割中。当网络层需要较大的感受野,但计算资源有限而无法提高卷积核数量或大小时,可以考虑空洞卷积
空洞卷积缺点
Dilated Convolution的kerel并不连续,也就是并不是所有的像素都用来计算了,因此这里将信息看作checker-board的方式将会损失信息的连续性。(即栅格效应,膨胀卷积不能覆盖所有的图像特征

2.4 深度可分离卷积

Depthwise Separable Convolution(深度可分离卷积)是将一个完整的卷积运算分解为两步运行,即Depthwise卷积 与 Pointwise卷积

逐深度卷积(滤波):将单个滤波器应用到每一个输入通道,Depthwise convolution的一个卷积核只负责一个通道,即一个通道只被一个卷积核卷积。

一张5×5像素、三通道彩色输入图片(shape为5×5×3),Depthwise Convolution首先经过第一次卷积运算,DW完全是在二维平面内进行。卷积核的数量与上一层的通道数相同(通道和卷积核一一对应)。所以一个三通道的图像经过运算后生成了3个Feature map(如果有same padding则尺寸与输入层相同为5×5),如下图所示。

 逐点卷积(组合): Pointwise 卷积运算则是常规的运算,用1*1的卷积组合不同深度卷积的输出,得到一组新的输出。卷积核的尺寸为 1×1×M,M为上一层的depth。这里的卷积运算会将上一步的map在深度方向上进行加权组合,生成新的Feature map。有几个Filter就有几个Feature map,计算参数量为 1x1x3x4=12。

2.5 分组卷积

Group convolution 分组卷积,最早在AlexNet中出现,由于当时的硬件资源有限,训练AlexNet时卷积操作不能全部放在同一个GPU处理,因此作者把feature maps分给多个GPU分别进行处理,最后把多个GPU的结果进行融合。就是将特征图分成两半或几部分,卷积后再组合,组合方式一般是concate

输入每组feature map尺寸:W x H x C/g, 共有g组  

单个卷积核每组的尺寸:k x k  x C/g

2.6可变形卷积 

普通卷积操作在固定的、规则的网格点上进行数据采样,这束缚了网络感受野形状,限制了网络对几何形变的适应能力。为了克服这个限制,可变形卷积在卷积核的每个采样点上添加一个可学习的偏移量(ofiset),让采样点不再局限于规则的网格点

 

可变形卷积的学习过程 

最上面的图像是在大小不同的物体上的激活单元。
中间层是为了得到顶层激活单元所进行的采样过程,左图是标准的3x3方阵采样,右图是非标准形状的采样,但是采样的点依然是3x3.
最下面一层是为了得到中间层进行的采样区域。明显发现,可变形卷积在采样时可以更贴近物体的形状和尺寸,而标准卷积无法做到这一点。

 

 

3. 池化

池化的定义,仿照人的视觉系统进行特征降维(降采样),常见的池化有最大池化、平均池化和随机池化。池化层不需要训练参数。 

池化优点:降低模型过拟合;平移不变性,即如果物体在图像中发生一个较小的平移(不超过感受野),那么这样的位移并不会影像池化的效果,从而不会对模型的特征图提取发生影响。

 最大池化:计算pooling窗口内的最大值,并将这个最大值作为该位置的值;可以获取局部信息,更好保留纹理上的特征。

平均池化:计算pooling窗口内的平均值,并将这个值作为该位置的值;平均池化往往能保留整体数据的特征,能凸出背景的信息。

随机池化:是根据概率对局部的值进行采样,采样结果便是池化结果;随机池化一方面最大化地保证了Max值的取值,一方面又确保了不会完全是max值起作用,造成过度失真。其可以在一定程度上避免过拟合。

 池化的选择:

最大池化能学到图像的边缘和纹理结构

最大池化通常用以小估计值方差,在方差不太重要的地方可以随意选择最大池化和平均池化。

平均池化用以减小估计均值的偏移。在某些情况下平均池化可能取得比最大池化稍好一些的效果。

平均池化会弱化强激活值,而最大池化保留最强的激活值却容易过拟合。

猜你喜欢

转载自blog.csdn.net/qq_41134483/article/details/127343743