转置卷积(听课笔记)

前言

转置卷积,可称为Transposed Convolution、fractionally-stride convolution、deconvolution。转置卷积的作用是上采样

注意:

  1. 转置卷积不是卷积的逆运算。只是将特征层的大小还原回卷积之前的大小,但其数值和输入特征层的数值是不同的。
  2. 转置卷积也是卷积。

在这里插入图片描述

1. 运算步骤

  1. 在特征图元素间填充s-1行、列
  2. 在输入特征图四周填充k-p-1行、列
  3. 将卷积核参数上下、左右翻转
  4. 做正常卷积运算(填充0,步距1)

输出计算公式如下:

H o u t = ( H i n − 1 ) × s [ 0 ] − 2 × p [ 0 ] + k [ 0 ] H_{out} = (H_{in} - 1) \times s[0] - 2 \times p[0] + k[0] Hout=(Hin1)×s[0]2×p[0]+k[0]
W o u t = ( W i n − 1 ) × s [ 1 ] − 2 × p [ 1 ] + k [ 1 ] W_{out} = (W_{in} - 1) \times s[1] - 2 \times p[1] + k[1] Wout=(Win1)×s[1]2×p[1]+k[1]

2. 进一步理解

在这里插入图片描述
假设输入为 4 × 4 4 \times 4 4×4大小,使用 3 × 3 3 \times 3 3×3大小的卷积核进行卷积,步距为1, 填充为0,最终得到 2 × 2 2 \times 2 2×2大小的特征图。

之前所说的普通卷积的计算方式都是以一个滑动窗口的方式来进行计算,但是,在实际实现的过程中,这种方式是非常低效的。更为高效的方式是将卷积核构建为一个个与输入feature map同样大小的零矩阵,然后将卷积核的参数填入到零矩阵的对应位置,得到卷积核的等效矩阵。

在这里插入图片描述
接下来,将输入特征图进行展平,变成1行16列的矩阵 I I I
在这里插入图片描述
再将构建的四个等效矩阵展开,都转化为一个列向量,得到16行4列的矩阵 C C C
在这里插入图片描述
最后,将矩阵 I I I与矩阵 C C C相乘,得到矩阵 O O O
在这里插入图片描述
考虑已知矩阵 C C C和矩阵 O O O,能否得到矩阵 I I I?换句话说,卷积是否可逆?

需要注意的是只有方阵才存在逆矩阵,而矩阵 C C C不是一个方阵,所以其不存在逆矩阵,因而卷积不可逆。

放宽条件,已知矩阵 C C C和矩阵 O O O,能否得到与矩阵 I I I同样大小的矩阵?

很明显是可以的,只需要在等号两边乘上 C T C^T CT即可。
在这里插入图片描述
这就是转置卷积的过程,实际就是一个上采样,通过一个 2 × 2 2 \times 2 2×2的特征图得到了一个 4 × 4 4 \times 4 4×4的特征图。

考虑一个逆过程,将 O O O C C C都写成一个 2 × 2 2 \times 2 2×2的等效矩阵的形式,对应位置相乘,即得到对应的 P P P的数值。
在这里插入图片描述
首先拿等效矩阵当中第一个等效矩阵与矩阵 O O O进行对应位置上的相乘再相加的操作,最终结果为0。右下角使用绿色的卷积核,对填充2列后的 O O O进行相乘,得到的结果也为0。依次使用每个等效矩阵与 O O O相乘,发现结果均与绿色卷积核与填充后的 O O O矩阵相乘结果一致。
在这里插入图片描述
可以发现,这个绿色的卷积核实际上就是最开始使用的卷积核进行了上下、左右翻转。
在这里插入图片描述

参考

转置卷积

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值