转置卷积/反卷积(Transpose Convolution/Deconvolution)详解
?
1、提出背景及其应用
??一般情况下,图像在经过多层的卷积运算后,其输出特征图的尺寸将会减小,图片分辨率降低。而在某些特定的任务中,我们需要将图像恢复或一定程度上增大,以便于后续的使用。这个恢复/增大图像尺寸,实现图像由小分辨率到大分辨率映射的操作,叫做上采样(Upsample)。转置卷积便是常见的上采样方法之一。与传统的上采样方法(最近邻插值、双线性插值等)相比,转置卷积不会使用预先设定的插值方法。它具有可学习的参数,通过让网络自行学习,来获取最优的上采样方式。转置卷积的本质是输入和输出关系被反向处理(标准卷积为多对一,转置卷积为一对多)。转置卷积在某些特定的领域应用广泛,如:
- CNN的可视化:通过转置卷积将CNN中得到的特征图还原到像素空间,以观察特定的特征图对哪些模式的图像敏感;
- 语义分割:使用卷积层在编码器中进行特征提取,然后在解码层中恢复原先的尺寸(使用转置卷积),最终对原来图像的每个像素都进行分类。经典方法如:FCN和UNet。
2、反卷积过程图解
图1. 反卷积图解
??对图片进行转置卷积处理总体流程:对输入图像进行填充
→
\rightarrow
→正常卷积操作(卷积核旋转)
→
\rightarrow
→按需要对输出特征图进行裁剪。
3、反卷积数学推导
待写…
4、输出特征图尺寸
待写…
5、代码实现(Numpy/Pytorch)
【本文参考】
[1] 听六小桨讲AI | 第5期:卷积的变体之转置卷积; [2] Tensorflow反卷积(DeConv)实现原理+手写python代码实现反卷积(DeConv); [3] 卷积与反卷积关系超详细说明及推导(反卷积又称转置卷积、分数步长卷积);
|