上采样和反卷积 Up-sampling and Transposed Convolution (Deconvolution)

本文介绍了卷积和反卷积的基本概念及其应用。首先通过实例详细解释了卷积操作的计算过程,接着介绍了如何将卷积过程转化为矩阵运算,并进一步讲解了反卷积的概念及其在图像上采样中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

使用反卷积(Transposed Convolution)来进行上采样操作,不需要借助插值方法,并且可以提供能够学习的参数。

反卷积在DCGAN和图像的语义分割网络中,有很重要的应用。

1. 卷积操作

我们用一个简单的例子来介绍卷积的计算过程。如下图所示,用一个3x3的卷积核对一个4x4的矩阵进行卷积操作,步长为1,不施加padding,则可以得到一个2x2的结果矩阵。
在这里插入图片描述

计算输入矩阵和卷积核相对应的各个元素的乘积,最后相加得到卷积结果,如下图所示:
在这里插入图片描述

从上图的结果可以看到,卷积之后,输入矩阵与输出矩阵存在位置上的联系(positional connectivity)。输入矩阵的左上角元素会影响输出矩阵的左上角结果。3x3卷积核将输入矩阵中的9个元素与输出矩阵中的一个元素连接起来。卷积形成了多对一的关系。

2. 卷积矩阵

我们可以把卷积过程用矩阵乘法来表示。

3x3的卷积核:

在这里插入图片描述

可以排布成一个4x16的矩阵,如下图所示:
在这里插入图片描述
上图结果被称为卷积矩阵,矩阵的每一行决定了一次卷积操作。

在计算卷积的时候,需要把输入矩阵展平成一个16x1的列向量:
在这里插入图片描述
然后使用矩阵乘法得到卷积结果:
在这里插入图片描述
把乘法结果的4x1列向量reshape成2x2的矩阵,就得到了与图1一样的卷积结果:
在这里插入图片描述

3. 反卷积

反卷积可以看作是卷积操作的逆过程,也就是形成一对多的关系。如下图所示,我们要从一个2x2的矩阵,反推出一个4x4的矩阵:
在这里插入图片描述

接下来,我们介绍如何进行这样的反卷积操作。

4. 反卷积矩阵

借助于第2节介绍的卷积矩阵,可以很容易进行反卷积操作。

我们把卷积矩阵转置成一个16x4的矩阵,再与结果的4x1列向量相乘,就可以得到一个16x1的列向量,reshape之后就是一个4x4的矩阵。
在这里插入图片描述
把结果的16x1列向量reshape成一个4x4的矩阵,结果如下:
在这里插入图片描述
到此为止,我们把一个2x2的小矩阵,上采样变成了一个4x4的大矩阵。反卷积的过程形成了1对9的关系。

5. 使用卷积计算反卷积

如下图所示,使用相同的卷积核,通过卷积来计算反卷积。
在这里插入图片描述
这种方法非常低效,因为需要对输入矩阵大量补零,卷积过程中有大量的乘0操作。

6. 总结

  1. 使用反卷积可以进行上采样
  2. 反卷积具有可供学习的参数,不需要利用插值方法

参考文献

https://towardsdatascience.com/up-sampling-with-transposed-convolution-9ae4f2df52d0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值