卷积的模式:
full | same | valid
分别代表不同的 padding 情况,示意图分别如下:

单通道卷积
这个不需多说,网上都是
多通道卷积
输入多通道的图,卷积核也采用相同的通道数,生成的多通道结果,将每个通道对应位置的值相加,即得到 feature map,n 个卷积核就对应生成 n 通道的 feature map; 这也是3 * 256 * 256 => 64 * 256 * 256变换的基础。
空洞卷积(dilated|atrous convolution)
详细参考
直观理解就是在卷积计算的时候,在原图像素的选取上加上dilation rate
,直接结果就是增大了感受野。简洁清晰且有效,非常有利于加深对于卷积的理解。目前主要用于图像分割领域,貌似 nlp 也有用到。
dcnn 的问题之一:
为了增大感受野,需要下采样,对于分割的问题,则还需要上采样,上采样会导致信息的丢失,小的物体也无法重建。
引用一段:
Dilated Convolution问题的引出,是因为down-sample之后的为了让input和output的尺寸一致。我们需要up-sample,但是up-sample会丢失信息。如果不采用pooling,就无需下采样和上采样步骤了。但是这样会导致kernel 的感受野变小,导致预测不精确。。如果采用大的kernel话,一来训练的参数变大。二来没有小的kernel叠加的正则作用,所以kernel size变大行不通。
空洞卷积可能带来的问题包括 1 Grdding effect,2 需要处理不同大小的物体之间的关系
Hybrid Dilated Convolution (HDC)方案
借张图,侵删
话说,pix2pix 生成的图中有时候会出现这些点状的信息,可能原因在此?
多尺度分割:Astrous Spatial Pyramid Pooling(ASPP)
只需要在网络 decoder 上对于不同尺度上用不同大小的 dilation rate 来抓去多尺度信息,每个尺度则为一个独立的分支,在网络最后把他合并起来再接一个卷积层输出预测 label。
反卷积/转置卷积/上采样
上采样可以直接采用数学上的插值方式,但采用卷积的方式使得上采样的参数可学习,效果更佳。
参考1这里图形化的介绍了反卷积的步骤,借图侵删
参考2介绍了实际代码实现的过程中,普通卷积和转置卷积的计算过程,应该就是 im2col
的实现过程。可以结合上面的图进行理解。
depthwise separable convolution
mobile-net 提出,主要用于减少运算量,参考下图,基本原理是利用两个卷积来替换原先的卷积过程;
- 之前的计算量: H W C o u t ∗ C i n K 2 HW C_{out} * C_{in} K^2 HWCout∗CinK2
- 之后 H W ∗ C i n ∗ K 2 HW*C_{in}*K^2 HW∗Cin∗K2 + H W ∗ C o u t ∗ C i n HW*C_{out}*C_{in} HW∗Cout∗Cin;前面相当于一个带参数的池化过程,后面类似一个全连接过程
- 计算量是原先的
1
/
C
o
u
t
+
1
/
K
2
1/C_{out} + 1/K^2
1/Cout+1/K2