文章目录
- 1、提出背景及其应用
- 2、反卷积过程图解
- 3、反卷积数学推导
- 4、输出特征图尺寸
- 5、代码实现(Numpy/Pytorch)
1、提出背景及其应用
一般情况下,图像在经过多层的卷积运算后,其输出特征图的尺寸将会减小,图片分辨率降低。而在某些特定的任务中,我们需要将图像恢复或一定程度上增大,以便于后续的使用。这个恢复/增大图像尺寸,实现图像由小分辨率到大分辨率映射的操作,叫做上采样(Upsample)。转置卷积便是常见的上采样方法之一。与传统的上采样方法(最近邻插值、双线性插值等)相比,转置卷积不会使用预先设定的插值方法。它具有可学习的参数,通过让网络自行学习,来获取最优的上采样方式。转置卷积的本质是输入和输出关系被反向处理(标准卷积为多对一,转置卷积为一对多)。转置卷积在某些特定的领域应用广泛,如:
- CNN 的可视化:通过转置卷积将 CNN 中得到的特征图还原到像素空间,以观察特定的特征图对哪些模式的图像敏感;
- 语义分割:使用卷积层在编码器中进行特征提取,然后在解码层中恢复原先的尺寸(使用转置卷积),最终对原来图像的每个像素都进行分类。经典方法如:FCN 和 UNet。
2、反卷积过程图解
图1. 反卷积图解
正常卷积操作(卷积核旋转)
按需要对输出特征图进行裁剪。
3、反卷积数学推导
反卷积操作只是恢复了矩阵 的尺寸大小,并不能恢复
4、输出特征图尺寸
记input_size
为 ,
kernel_size
为k
,padding
为p
,stride
为s
,则卷积输出尺寸 为:
以 为输入尺寸,则可推出转置卷积输出尺寸
观察以上两式可得,总可以使用直接卷积来模拟转置卷积。