面试知识点 – 卷积 (Conv.)

1. 卷积的定义

对图像和滤波矩阵(滤波器、卷积核)做内积的操作就是卷积。单次卷积操作就是对应位置的两个元素相乘,之后所有乘积相加。

在卷积神经网络中,通过卷积操作,可以提取图片中的特征,低层的卷积层可以提取到图片的一些边缘、线条、角等特征,高层的卷积能够从低层的卷积层中学到更复杂的特征,从而利用提取到的特征,可以进行分类、目标检测等任务。高层的复杂特征具体代表啥,谁也不知道。

训练卷积网络是寻找某种模式匹配的过程。一个卷积核有且只有一种匹配模式,其实质是计算 N*N 的矩阵块与某一模式块的相似度。卷积网络的可视化解释_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

2. 卷积的特点

卷积最主要的特点就是局部感知和权值共享。

局部感知:卷积的大小远远小于图像,只需要感知图像中的局部信息,然后在更高层次进行信息组合理论上就可以得到全局信息,减少了计算量。

权值共享:使用同一模板(相同的卷积核、参数)按滑动窗口的方式去提取特征,参数可以共享。这个可以带来平移不变性,而且一个卷积核可以只干一件事,只提取某一个特征。

头重脚轻:越靠近输入层,参数数量越少,越靠近输出层,参数数量越多,呈现出一个倒三角的形态,这就很好地避免了BP神经网络中反向传播的时候梯度损失得太快。

卷积能够平移变换使得其可以找出各种各样物体的特征。但卷积本身无法进行尺度变换、旋转变换。这两个问题一般通过制作多尺度和不同旋转角度的训练集缓和。同时也有少许相关工作——Spatial Transformer Layer、Vladlen Koltun: Beyond convolutional networks (June 2020)。

3. 卷积和全连接的区别

区别:输入和输出不同,卷积输入输出都是NCHW格式,全连接输入输出都是NV结构;全连接网络两层之间的神经元是两两相连,卷积是部分相连。

全连接不适合做CV:1)参数量过多扩展性差;2)网络局限,梯度传播很难超过3层;3)没有利用像素之间的位置关系; 卷积适合做CV:局部连接、权值共享以及池化,减少参数、利用像素之间的关系。

4. 感受野

感受野是输出特征图上的像素点对于原图的映射区域的大小,特征图上的一个点相对于原图的大小。代表该像素点是由其感受野范围内的所有像素点得到的。

注意:

  • 实际上的有效感受野远远小于理论感受野,因为越中心的像素,被计算的次数更多,占的权重越大
  • anchor应该根据感受野来设置

计算

stride_i=stride_1 times stride_2 times … times stride_{(i−1)}/ mathrm{RF}_{i+1} = mathrm{RF}_i + (f_{i+1} − 1) times stride_i times dilation_{i+1} /

其中 mathrm{RF}_i 为第i层感受野,f_{(i+1)} 为第i+1层卷积核大小,dilation_{(i+1)}为第i+1层空洞率。

最开始的输入层:i=0, mathrm{RF}_0=1,即第一层卷积之后的特征图感受野的大小等于卷积核的 size。

计算注意:

  • 第一层卷积层的输出特征图像素的感受野的大小等于滤波器的大小
  • 深层卷积层的感受野大小和它之前所有层的滤波器大小和步长有关系
  • 计算感受野大小时,忽略了图像边缘的影响,即不考虑padding的大小

5. 反卷积(转置卷积)

反卷积是一种特殊的正向卷积,先按照一定的比例通过补padding来扩大输入图像的尺寸,接着旋转卷积核,再进行正向卷积。反卷积的参数不需要反向传播,而是行列转置之前卷积核的参数。

正向卷积:Y=WX 反卷积:X=W^T Y

但是,如果代入数字计算会发现,反卷积的操作只是恢复了矩阵X的尺寸大小,并不能恢复X的每个元素值。反卷积操作并不能还原出卷积之前的图片,只能还原出卷积之前图片的尺寸。

需要注意的是,反卷积本质是padding补0的卷积,而不是卷积的逆运算

反卷积的用途有:实现上采样;近似重构输入图像,卷积层可视化

6. 空间可分离卷积

空间可分离卷积就是将 n times n的卷积分成n times 11 times n两步计算。

虽然空间可分离卷积可以节省计算成本,但一般情况下很少用到。主要原因之一是并非所有卷积核都可以分为两个较小的卷积核。如果用空间可分离卷积代替所有传统的卷积,现有优化器无法找到较优解(训练精度不高)。

7. 深度可分离卷积

深度可分离卷积是将卷积分为Depth-wise Convolution(逐深度卷积)和Point-wise Convolution(逐点1*1卷积)计算。

也用来减少卷积的参数。因此对于规模较小的模型,如果将2D卷积替换为深度可分离卷积,其模型大小可能会显著降低,模型的能力可能会变得不太理想,因此得到的模型可能是次优的。但如果使用得当,深度可分离卷积能在不牺牲模型性能的前提下显著提高效率。

逐深度卷积:将单个卷积核应用到单个通道并生成单个特征图。

逐点1 times 1卷积:跟普通卷积一样,不过使用的是1 times 1的卷积,这样可以把深度卷积后的特征图的通道数增加。

8. 分组卷积

设原通道为c_1,目标通道为c_2

将特征图在通道上拆分为gH times W times frac{c_1}{g},对每个frac{c_1}{g}都进行frac{c_2}{g}3 times 3 times frac{c_1}{g}的标准卷积,之后再拼接起来。相当于参数少了g倍。

如果g等于输入通道数,就变成了Depth-wise Convolution;如果g等于输入通道数,而且卷积大小等于输入图片大小,就变成了全局加权池化,权重是可学习的。

9. 可变形卷积

根据输入的图像,进行卷积来学一个偏移,学的是卷积核的偏移,然后进行正常卷积的时候,使用的偏移之后的像素。

10. 1 times 1卷积

最初是在2014年GoogLeNet中首先应用 作用:

  1. 实现跨通道的交互和信息整合;
  2. 进行卷积核通道数(特征)的降维和升维;
  3. 可以实现与全连接层等价的效果
  4. 加入非线性(由于经过激活函数层)
  5. 通道融合
  6. 减少参数及计算量(MobileNet)

参考论文

主流论文 概述 学习目标
AlexNet(2010) 深度学习的开端。 卷积的定义与计算过程
VGG(2014) 改进AlexNet。 现在大量使用3×3卷积核的原因
GoogLeNet(2014) 加宽网络层,提升精度。 InceptionV1
InceptionV2V3V4(2015) 分解卷积核,提升速度。 卷积分解
ResNet(2015) 经典,现在最广泛的网络。 残差模块与Inception的异同
MobileNet(2017) 分解Channel,提升速度。 空间、深度可分离卷积
ShuffleNet、Xception(2017) 改进MobileNet。 Group Conv.与MobileNet的区别

发表回复

相关推荐

律师笔记 || 抵销 VS 抵消

“抵消”用于表述两种事物的作用因相反而互相消除。

· 1分钟前

3千字深入学习河图洛书,对河洛的精妙绝伦五体投地

这几天进一步学习河图洛书,发现其蕴含的道理真的是非常多,惊叹古人的智慧精妙绝伦之余,回想以前无知以为河洛只是简单数字 ...

· 1分钟前

工业设计:讲述一段产品故事

工业设计是我们生活中离不开的事情,我们的很多产品都要进行设计,例如我们的家电,例如电冰箱,洗衣机,电饭锅等,都需要进 ...

· 5分钟前

颈椎病、肩周炎、落枕,只需要按按手臂上一条线,统统解决

搞定这3个穴位,基本上就能搞定颈椎病、肩周炎、落枕~下图手臂上的这一条线就是小肠经的经络循行线路。小肠经上有19个穴位, ...

· 8分钟前

心情低落说说发朋友圈带图片,送给此刻心累压抑的人!

1、总是有事没事就会突然心情低落一段时间,你有没有这种情况,该怎么办,谁来劝劝我呢?

· 8分钟前