目录
1.简述卷积的基本操作,并分析其与全连接层的区别
2.在卷积神经网络中,如何计算各层的感受野大小?卷积层的输出尺寸、参数量和计算量。
3.简述分组卷积及其应用场景
4.简述空洞卷积的设计思路
5.简述转置卷积的主要思想以及应用场景
1.简述卷积的基本操作,并分析其与全连接层的区别
卷积和全连接层的区别
局部连接:卷积核尺寸远小于输入特征图的尺寸,输出层上的每个节点都只与输入层的部分节点连接。而全连接层中,节点之间的连接是稠密的,输出层每个节点会与输入层所有节点都存在关联。
权值共享:输出层不同位置的节点与输入层的连接权值都是一样的(即卷积核参数),而全连接层中,不同节点的连接权值都是不同的。
输入/输出数据的结构化:局部连接和权值共享,使得卷积操作能够在输出数据中大致保持输入数据的结构信息。而结构化信息(如二维图像)输入全连接层,其输出数据会被展成扁平的一维数组,从而丧失输入数据和输出数据在结构上的对应关系。
2.在卷积神经网络中,如何计算各层的感受野大小?卷积层的输出尺寸、参数量和计算量。
某一层feature map(特性图)中某个位置的特征向量,是由前面某一层固定区域的输入计算出来的,那这个区域就是这个位置的感受野。任意两个层之间都有位置—感受野对应关系,但我们更常用的是feature map层到输入图像的感受野,如目标检测中我们需要知道feature map层每个位置的特征向量对应输入图像哪个区域,以便我们在这个区域中设置anchor,检测该区域内的目标。
感受野区域之外图像区域的像素不会影响feature map层的特征向量,所以我们不太可能让CNN仅依赖某个特征向量去找到其对应输入感受野之外的目标。这里说“不太可能”而不是“绝无可能”,是因为CNN很强大,且图像像素之间有相关性,有时候感受野之外的目标是可以猜出来的,什么一叶知秋,管中窥豹,见微知著之类,对CNN目标检测都是有可能的,但猜出来的结果并不总是那么靠谱。
感受野有什么用呢?
一般task要求感受野越大越好,如图像分类中最后卷积层的感受野要大于输入图像,网络深度越深感受野越大性能越好密集预测task要求输出像素的感受野足够的大,确保做出决策时没有忽略重要信息,一般也是越深越好目标检测task中设置anchor要严格对应感受野,anchor太大或偏离感受野都会严重影响检测性能
感受野的计算
我们首先介绍一种从后向前计算方法,极其简单适合人脑计算,看看网络结构就知道感受野了,之后介绍一种通用的从前往后计算方法,比较规律适合电脑计算,简单编程就可以计算出感受野大小和位置。
感受野是一个矩形区域,如果卷积核全都长宽相等,则对应感受野就是正方形区域。输出feature map中每个位置都对应输入图像一个感受野区域,所有位置的感受野在输入图像上以固定步进的方式平铺。
3.简述分组卷积及其应用场景
分组卷积,是将输入通道和输出通道都划分为同样的组数,然后仅让处于相同信号的输入通道和输出通道相互进行“全连接”。如果记 g 为 输入/输出通道所分的组数,则分组卷积能够将卷积操作的参数量和计算量都降低为普通卷积的 1/g 。
分组卷积最初是在 AlexNet 网络中引入的。为了解决单个GPU无法处理含有较大计算量和存储需求的卷积层这个问题,就采用分组卷积将计算和存储分配到多个GPU上。(目前这个方向的需求已经大为减少)
4.简述空洞卷积的设计思路
空洞卷积中文名也叫膨胀卷积或者扩张卷积,英文名也叫Atrous Convolution
空洞卷积最初的提出是为了解决图像分割的问题而提出的,常见的图像分割算法通常使用池化层和卷积层来增加感受野(Receptive Filed),同时也缩小了特征图尺寸(resolution),然后再利用上采样还原图像尺寸,特征图缩小再放大的过程造成了精度上的损失,因此需要一种操作可以在增加感受野的同时保持特征图的尺寸不变,从而代替下采样和上采样操作,在这种需求下,空洞卷积就诞生了,空洞卷积能够扩大感受野并且保持分辨率。
dilated conv的潜在问题
1.The gridding effect(网格影响)
我们发现dilated conv的 kernel 并不连续,也就是说并不是所有的 pixel 都用来计算了,因此这里将信息看做 checker-board 的方式会损失信息的连续性。这对 pixel-level dense prediction 的任务来说是致命的。
2.Long-ranged information might be not relevant.
我们从 dilated convolution 的设计背景来看就能推测出这样的设计是用来获取 long-ranged information。然而光采用大 dilation rate 的信息或许只对一些大物体分割有效果,而对小物体来说可能则有弊无利了。
5.简述转置卷积的主要思想以及应用场景
转置卷积(Transpose Convolution),一些地方也称为“反卷积”,在深度学习中表示为卷积的一个逆向过程,可以根据卷积核大小和输出的大小,恢复卷积前的图像尺寸,而不是恢复原始值。
print('下章为:卷积神经网络-下')