从矩阵角度分析转置卷积

前言

上次从公式角度研究了转置卷积。这次想进一步从矩阵计算角度研究。内容基本上参考这位大神在B站讲解的转置卷积(transposed convolution),他在CSDN也有对应的博文转置卷积(Transposed Convolution)。强烈建议大家去看看B站的视频。我这里的图片都来源于这位大神。

这里只是把我感兴趣的地方做个记录,以便后来查找。我感兴趣的是,从矩阵运算的角度讲,转置卷积为什么能放大图片

转置卷积原文:A guide to convolution arithmetic for deep learning

转置卷积的计算流程

请添加图片描述
在填充之后的卷积运算,等效为
请添加图片描述

转置卷积和普通卷积的关系

首先明确,转置卷积不是标准卷积的逆运算

普通卷积

请添加图片描述
这步都能看得懂,下面开始施展魔法

填充卷积核以代替平移

请添加图片描述

将卷积核和输入展平

展平顺序是先行后列
请添加图片描述
这样一来,一个复杂的卷积过程,就化简为一个矩阵乘法。将输出reshape,即可得到我们最开始学习卷积的结果。

转置卷积

上面那个式子, I ⋅ C = O I·C=O IC=O。如果已知长度较小的O,想把它变长,怎么办? 等式两边乘上 C T C^T CT,于是
I ⋅ C ⋅ C T = O ⋅ C T I·C·C^T = O·C^T ICCT=OCT

从维度上看 O ⋅ C T O·C^T OCT 为1 *16,但因为$C·C^T $不是单位阵,
I ≠ O ⋅ C T I \neq O·C^T I=OCT

因此,转置卷积只起到了放大的作用,并不是卷积的逆过程。
在这里插入图片描述

转置卷积核和普通卷积核的关系

我得先说,这里可以不用去看。因为在实际使用的时候,转置卷积核是经过训练得到的,并不会通过上下左右翻转得到与其了解两者的关系,不如直接把转置卷积直接当做一种特殊的卷积。

但是我还是记录一下大佬的讲解。

首先将经过转置的卷积核还原成单个卷积核
在这里插入图片描述
根据运算关系,可以得到转置卷积核
在这里插入图片描述
结果发现,转置卷积核就是普通卷积核的上下翻转后左右翻转。
在这里插入图片描述

总结

用我研究语义分割同学的话说:转置卷积就是一个会更精细一点的上采样,因为它可训练。

参考

[1] https://www.bilibili.com/video/BV1mh411J7U4?spm_id_from=333.999.0.0

[2] https://blog.csdn.net/tsyccnh/article/details/87357447

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值