天天看点

反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积

反卷积/转置卷积:Transposed convolution介绍

  • 1. 上采样(UpSampling)
  • 2. 正向卷积的实现过程
  • 3. 用矩阵乘法描述卷积
  • 4. 反卷积
    • 4.1 反卷积操作
    • 4.2 反卷积输入输出尺寸关系
Transposed convolution称为转置卷积,也被称作: "分数步长卷积(Fractionally-strided convolution)“和"反卷积(Deconvolution)”.

1. 上采样(UpSampling)

  • 在应用在计算机视觉的深度学习领域,由于输入图像通过卷积神经网络(CNN)提取特征后,输出的尺寸往往会变小,而有时我们需要将图像恢复到原来的尺寸以便进行进一步的计算(e.g.:图像的语义分割),这个采用扩大图像尺寸,实现图像由小分辨率到大分辨率的映射的操作,叫做上采样(Upsample)。
  • 常见上采样3种方法:

    双线性插值(bilinear)

    反卷积(Transposed Convolution)

    反池化(Unpooling)

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

2. 正向卷积的实现过程

  • 假设输入图像

    input

    尺寸为 4×4 ,元素矩阵为:
    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积
  • 卷积核

    kernel

    尺寸为 3×3 ,元素矩阵为:
反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积
  • 步长

    strides

    =1,填充

    padding

    =0,

    即:i = 4,k = 3,s = 1,p = 0.

  • 则按照卷积计算公式
    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积
    输出图像

    output

    的尺寸为 2×2.
  • 如下图,绿色表示输出,蓝色表示输入,每个绿色块具与9个蓝色块连接。
反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积

3. 用矩阵乘法描述卷积

  • input

    的元素矩阵展开成一个列向量

    X

    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积
  • 把输出图像

    output

    的元素矩阵展开成一个列向量

    Y

    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积
  • 对于输入的元素矩阵

    X

    和 输出的元素矩阵

    Y

    ,用矩阵运算描述这个过程:
    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积
  • 通过推导,我们可以得到稀疏矩阵

    C

    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积
    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积
  • 反卷积的操作就是要对这个矩阵运算过程进行逆运算,即通过

    C

    Y

    得到

    X

    ,根据各个矩阵的尺寸大小,我们能很轻易的得到计算的过程,即为反卷积的操作:
    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积
    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积

4. 反卷积

  • 反卷积崭露头角于“Unsupervised Representations Learning With Deep Convolutional Generative Adversarial Networks”,这篇论文主要工作就是用GANs生成图片,其中的generator和discriminator均采用深度学习,generator生成图片过程中采用的就是反卷积操作

4.1 反卷积操作

  • C^T 对应的卷积操作恰好相当于将kernel中心对称,FULL zero padding,然后卷积,此时,1个蓝色块与9个绿色块连接,且权重与Convolution过程相同。
    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积

4.2 反卷积输入输出尺寸关系

  • 关系1:
    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积
    此时反卷积的输入输出尺寸关系为:
    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积
    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积
  • 关系2:
    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积
    此时反卷积的输入输出尺寸关系为:
    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积
    反卷积/转置卷积:Transposed convolution介绍1. 上采样(UpSampling)2. 正向卷积的实现过程3. 用矩阵乘法描述卷积4. 反卷积

继续阅读