这两种卷积可以达到相似的目的,但运算量和参数容量不同,可分离卷积具有占用运算资源小的优势。
image.png
比如一个Df x Df x M的图片,M个通道,像素值Df x Df。要对这个图片进行N维度的转换,最终得到Df x Df x N的张量。这样一个相同的目的,可以用普通卷积实现,也可以用深度可分离卷积实现
普通卷积实现
要在N维上观察图片,对于普通卷积,必须有N个卷积核。并且每个卷积核必须有M个通道。因为普通卷积的运算过程是3x3xM卷积核的每个通道与图片的每个通道做每个区域的点积,最后M个通道的点积和在想加,也就是说对于普通卷积图片有几个通道,卷积核必须有几个通道,最后的运算结果只有一维,如果要多维必须得有多个卷积核。
所以对于普通卷积他的参数量(假定卷积核是Dk x Dk大小:
Dk x Dk x M x N
普通卷积涉及的乘法数量:
((Df x Df) x (Dk x Dk x M)) x N
其中一个卷积核在一个区域上的运算量是 Dk x Dk x M, 总共有Df x Df个区域。 并且有N个卷积核。
深度可分离卷积实现
要把M通道的图片变成N维的张量来分析,深度可分离采用的做法是分两步完成。
第一步
一个通道只和一个卷积核运算,且卷积核只有一个通道。M个通道使用M个卷积核。这样输入是Df x Df x M 输出也是Df x Df x M。使用的参数量Dk x Dk x M
运算量是Df x Df x Dk x Dk x M
第二步
继续和一个单点核进行普通卷积生成N维张量。此时单点核必须是M通道,且必须有N个。普通卷积后得到Df x Df x N的张量
使用的参数量1 x M x N
运算量是Df x Df x 1 x M x N
深度卷积+点卷积 相对于传统卷积的优缺点
深度卷积+点卷积,可以知道在多个维度上提取特征的时候, 不同维度间提取窗口是通过点卷积的1*1核来区别, 而普通卷积多个通道之间的融合可以用更多的参数进行调整的. 相当于可分离卷积牺牲了一些参数的调整方向. 优点就是减少了参数和计算量
网友评论