GAN学习之路(七):转置卷积(反卷积)详解

1. 什么是反卷积

当我们需要将图像由小分辨率到大分辨率映射的时候,我们需要进行上采样(Upsample)。一般上采样方式有三项:

  • 反卷积(可能会导致棋盘效应
  • 双线性插值
  • 反池化(Unpooling)

转置卷积是一种特殊的正向卷积,先按照一定的比例通过补充0来扩大输入图像的尺寸,接着旋转卷积核,进行正向卷积。

2. 转置卷积过程

转置卷积需要假设如下参数:

  • input_size
  • kernel_size
  • padding
  • strides

2.1 Case 1

假设input_size=3,kernel_size=3,padding=2,strides=2;
input如下:
GAN学习之路(七):转置卷积(反卷积)详解
Kernel如下:
GAN学习之路(七):转置卷积(反卷积)详解
strides并非是kernel移动的步长,而是输入的放大倍数,如下图,strides=2,则为在input每两个元素之间添加1个0:
GAN学习之路(七):转置卷积(反卷积)详解
之后我们还会进行一个小小的padding=1,也就是在最下面和最右边添加一列和一行0。
最终的输出结果为:
GAN学习之路(七):转置卷积(反卷积)详解

Case 2

GAN学习之路(七):转置卷积(反卷积)详解
在上图中,input_size=2,kernal_size=3,strides=2,padding=2。