自学内容网 自学内容网

38_转置卷积

转置卷积也被称为(Transposed Convolution),也被称为fractionally_strided convolution、deconvolution。

转置卷积不是卷积的逆运算。

转置卷积也是卷积

转置卷积的作用是上采样。

1. 基础概念

转置卷积(Transposed Convolution,也称为反卷积(Deconvolution)上采样卷积(Upsampling Convolution))是一种在深度学习中广泛使用的技术。它是一种能够将特征图的空间分辨率扩大的操作,常用于需要上采样(Upsampling)的场景,比如图像生成、语义分割和生成对抗网络(GAN)中。

尽管被称为“反卷积”,转置卷积并不是标准卷积的数学逆运算,而是通过特定的计算方式,反向实现卷积操作在尺寸上的效果

工作原理

实现过程

2. 转置卷积的运算步骤

3. pytorch是如何实现转置卷积的

先引入普通卷积的例子:

普通情况下会构建四个等效矩阵,然后用feature map分别于四个等效矩阵进行普通卷积,然后和分别拼凑就是一个2X2的输出特征图。

对于pytorch:

先把feature map进行展平,得到一个1x16的矩阵。

然后将之前构建的等效矩阵都进行展平然后转置,得到一个16x4的矩阵。(优点就是可以并行化)

那么这种方式的卷积是否可逆呢?我们都知道,矩阵可逆的一个必要条件是它必须是一个方阵,所以该卷积操作是不可逆的。

但是如果我们只是要求得到一个与I的形状相同的矩阵,是否可行呢?

答案是可以的,我们只需要在等式两边同时右乘一个C的转置即可。

然后我们将得到的1x16的P矩阵进行一个 reshape变为4x4即可。

我们现在把1x4的矩阵变为原来的2x2矩阵。然后将C的转置,按列拆分成16个2x2的等效矩阵。

然后你会发现,分别用16个等效矩阵依次与2X2矩阵相乘,与之前padding得到的数值是相同的。就像做了卷积操作。最后得到的feature map 就是转置卷积的结果。

这个绿色的卷积核就是原来的卷积核就是原来的卷积核的参数进行上下左右反转之后的一个结果。

4.优势

  • 学习上采样权重:与简单的插值上采样(如最近邻插值或双线性插值)相比,转置卷积是可学习的操作,可以根据训练数据优化上采样的权重,从而捕捉更复杂的特征。

  • 可控输出尺寸:通过设置步幅、填充等参数,可以精确地控制上采样后的输出特征图的尺寸。

  • 结合卷积滤波:转置卷积不仅可以上采样,同时还能结合卷积滤波的效果,学习到与输入相关的高层次特征。

5. 应用与挑战

  1. 图像生成

    • 在生成对抗网络(GAN)中,转置卷积用于从低分辨率特征图生成高分辨率图像。
  2. 语义分割

    • 在像素级的分割任务中(如 U-Net),转置卷积用于将低分辨率特征图还原为与输入图像相同大小的输出。
  3. 图像超分辨率

    • 转置卷积在超分辨率重建任务中用于将低分辨率图像还原为高分辨率。
  4. 其他生成任务

    • 如文本生成图像、3D 点云重建等。

尽管转置卷积功能强大,但在实际应用中也面临一些挑战:

  1. 棋盘效应(Checkerboard Artifacts): 转置卷积的计算方式可能会导致输出特征图出现棋盘状的伪影(checkerboard artifacts),这是由于步幅与填充的不对称性引起的。

    解决方法

    • 使用双线性插值进行上采样,然后用标准卷积替代转置卷积。
    • 调整步幅、填充和卷积核大小,使特征图尺寸对齐。
  2. 计算复杂度高: 相比于直接的插值方法,转置卷积的计算复杂度较高,对硬件资源的要求更大。

6. 转置卷积与其他上采样方法的对比


原文地址:https://blog.csdn.net/qq_51605551/article/details/144014364

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!