深度学习(2)-反卷积(deconvolution)

https://blog.csdn.net/Kevin_cc98/article/details/78916531

反卷积在论文中常常对应的英文有:

  • Deconvolution (怪怪的“去卷积”)
  • Upconvolution   (原文:unet)
  • Fractionally strided
    convolution
  • Backward strided
    convolution

意思是它的卷积的逆过程。它的另一个名字转置卷积(transpose convolution)更能表达它的数学过程。比如对4x4的图像进行3x3的卷积得到2x2的图像,可表示为矩阵乘法y=Cx:
这里写图片描述
表达将4x1的向量转化为16x1的向量。而反卷积相当于x=CTx=CT。
转置卷积与卷积是有对应关系的。

如果卷积相当于sample,而反卷积相当于unsample。比如一般padding=0,stride=1,k=3的卷积如下:
这里写图片描述
它对应的反卷积则为:
这里写图片描述

它也称为fractional stride convolution
从上图中可知,当卷积时的padding为0时(non-padded convolution),转置卷积的padding大小需要为k-1,其中k为原卷积核的大小。此时它又叫fully padded convolution。此时反卷积的规则和卷积一样。
上图是stride=1时卷积-反卷积的样子,而stride不等于1时,则反卷积有所不同:
这里写图片描述
整个反卷积过程是先即对输入图像以步长为s-1填充0,然后对图像进行卷积。这也是为什么反卷积又被称为fractionally strided convolutions的原因,因为被部分插入0值。
当stride不为1时,输入大小(边长)i和输入o的大小关系为:
o = s(i-1)+(k-2p)
所以从上式子看出,如果要unsample到原图像的几倍,s就设置为几。
transposed convolutions 怎么实现?一般是通过对卷积求导。直接也可以,只是由卷积矩阵C可以看出,对长为16的像素向量X来说,CTXCTX会存在大量无意义的0与X元素的相乘,这样非常低效。

1.转置卷积

--------------------- 本文来自 一只飞鱼fy 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/Kevin_cc98/article/details/78916531?utm_source=copy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值