CV杂记
现在paper看得多了,感觉有点乱了,必须找个时间梳理一下了。
Transpose Convolution 转置卷积
话不多说,先上学习资料:
有空再补充自己的看法,哈哈 其实转置卷积的作用就是要上采样一个卷积后得到的feature map,比如一个5*5的feature map经过卷积后维度变成了3*3,那么怎么样将3*3再变成5*5呢?使用一般的线性插值之类的上采样方法在深度学习的网络中就显得不太合适了,使用转置卷积的话就能够学习到上采样的方法。
首先,是将卷积的过程表示为矩阵乘法的形式。然后发现,卷积后的结果乘上之前卷积矩阵的转置,能够得到卷积前的维度。之后进一步发现,卷积后的结果乘上之前卷积矩阵的转置的结果等价于卷积后的结果进行padding再使用一个正常的卷积(第二篇文章里面写得很清楚)。这个正常的卷积就可以通过学习来进行上采样。
Separable Convolution 空间可分离卷积
空间可分离卷积的思想就是用两个卷积核的级联卷积来模拟一个更大的卷积核。比如一个\(3 \times 3\)的卷积核可以近似等效于\(3 \times 1\)和\(1 \times 3\)的级联卷积(卷积的结合律)。深度学习网络中借鉴这种思想,使用两个较小卷积核的卷积层来替代一个较大卷积核的卷积层。
空间可分离卷积的结构如下图所示:
Depthwise Separable Convolution 深度可分离卷积
深度可分离卷积的思想是将输入的每一个chanel分离成单独的输入,也就是对深度进行分离,然后对每一个chanel单独进行卷积,最后对所有输出使用\(1 \times 1\)卷积,相当于对这些输出进行了加权平均。
深度可分离卷积可以使卷积核更好地学习每一个chanel的专属特征,而不是一般卷积中对所有chanel的响应值做一个简单加和。
依我看,深度可分离卷积也可以看做是3D卷积的空间可分离卷积。
深度可分离卷积的结构如下图所示: