前言
卷积操作在深度学习中是较为常见的操作,卷积层更是构成多种网络结构的基础,在计算机视觉任务中,通过具有不同卷积核的卷积层以达到提取图像特征的目的。本文将从原理的角度对卷积进行解释,并介绍深度可分离卷积,以及卷积和深度可分离卷积的差异和联系。
一.卷积操作
a.单通道图像,单通道卷积 ,单通道输出
当一幅单通道图像(1*M*M)输入到卷积层中时,卷积核的权重w会与图像的像素矩阵进行交叉相关运算(即卷积操作),并加上偏置b,从而得到输出。具体在计算的过程中,卷积核从图像矩阵的某个位置开始(假设为左上),如果卷积核大小为m*m,卷积核的每个值为,图像对应的大小为M*M,图像矩阵上的每个大小为
则在每次进行卷积操作时,得到的结果为
. 经过卷积操作后,输出矩阵的大小变为(m-n+1)
b. 多通道图像,多通道卷积 ,单通道输出
当输入为彩色图像(3*M*M)的时候,此时的图像的通道数为3(RGB三色),假设此时的图像大小仍然为M,由于此时的图像矩阵通道数3,为了保证卷积操作的正常进行,应该使卷积的通道数与图像的通道数保持一致,即卷积大小为3*m*m。那么,当他们进行卷积操作时,输出的长度和宽度,由a可知,仍然为M-m+1和M-m+1,那么通道数为多少呢,有些人会想当然的以为通道数为3,然而实际上,这是一种错误的理解(但实际上,这种情况也存在,这种情况下即为可分离卷积),最后的通道数仍然为1,只不过与单通道图像相比,卷积后的结果,能够感知到图像所有通道数的信息,即输出的结果可以看作三个单通道图像与核(通道一一对应)卷积后结果的加和(有点像特征融合的意思)。
即 (c*M*M) 卷积 (c*m*m) =(1,M-m+1,M-m+1)
具体过程如下图:
c. 多通道图像,多通道卷积 ,多通道输出
那么什么情况下才能得到通道数为3的卷积结果呢。
在b的情况下,3*m*m的卷积能够得到通道数为1的结果,如果我们将3*m*m看作一个整体,那么我们为了得到通道数为3的结果特征图,我们可以将卷积核增加一个batch维度,即我们让卷积核变为 3*(3*m*m),此时,每个3*m*m做b中的操作,一共执行三次,即能得到(3,M-m+1,M-m+1)
即 (c*M*M) 卷积 (b*c*m*m) =(b,M-m+1,M-m+1)
具体流程结果可以参考下图:
二.深度可分离卷积
有时间继续更新这一部分
*