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

反卷积/转置卷积: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张图片
  • 卷积核kernel尺寸为 3×3 ,元素矩阵为:

反卷积/转置卷积:Transposed convolution介绍_第2张图片

  • 步长strides=1,填充padding=0,

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

  • 则按照卷积计算公式

    在这里插入图片描述
    输出图像output 的尺寸为 2×2.

  • 如下图,绿色表示输出,蓝色表示输入,每个绿色块具与9个蓝色块连接。

反卷积/转置卷积:Transposed convolution介绍_第3张图片

3. 用矩阵乘法描述卷积

  • input 的元素矩阵展开成一个列向量X
    在这里插入图片描述

  • 把输出图像 output的元素矩阵展开成一个列向量Y
    在这里插入图片描述

  • 对于输入的元素矩阵X和 输出的元素矩阵 Y ,用矩阵运算描述这个过程:
    在这里插入图片描述

  • 通过推导,我们可以得到稀疏矩阵C
    在这里插入图片描述
    反卷积/转置卷积:Transposed convolution介绍_第4张图片

  • 反卷积的操作就是要对这个矩阵运算过程进行逆运算,即通过CY 得到X,根据各个矩阵的尺寸大小,我们能很轻易的得到计算的过程,即为反卷积的操作:
    在这里插入图片描述
    反卷积/转置卷积:Transposed convolution介绍_第5张图片

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介绍_第6张图片

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

  • 关系1
    在这里插入图片描述
    此时反卷积的输入输出尺寸关系为:
    在这里插入图片描述
    反卷积/转置卷积:Transposed convolution介绍_第7张图片
  • 关系2
    在这里插入图片描述
    此时反卷积的输入输出尺寸关系为:
    在这里插入图片描述
    反卷积/转置卷积:Transposed convolution介绍_第8张图片

你可能感兴趣的:(论文笔记,深度学习,卷积神经网络)