理解deconvolution(反卷积、转置卷积)概念原理和计算公式、up-sampling(上采样)的几种方式、dilated convolution(空洞卷积)的原理理解和公式计算

deconvolution

deconv(反卷积、转置卷积)
普通的卷积和池化
deconv(transposed conv)
deconv输入输出计算
deconv原理介绍
up sampling(上采样)
双线性插值法进行up sampling
up pooling(反池化)
dilated conv
概念背景
公式计算

起初是看FCN图像分割论文的时候,看到论文中用到deconvolution和up-sampling,不是特别理解up-samping和deconv之间的关系,也不知道deconv是以一种怎么样计算过程完成的。所以就去搜了相关资料,同时了解了空洞卷积-dilated conv的原理,在此博客记录一下。

deconv(反卷积、转置卷积)

deconv和up-sampling是FCN图像分割网络中用到的两个扩大feature map尺寸的重要操作。因为在FCN全卷积网络中,其要实现的是一个图像分割的任务,在网络的前半部分,其通过卷积和池化层实现对输入图像的特征提取,一步步将feature map降到很小,然后对其每一个像素进行分类,在网络的后半段,FCN又通过up-samping将网络层前半段不同阶段的feature map进行上采样和反卷积操作(虽然FCN提到了deconv,但是其并没有用到,而是直接使用的up-sampling中的双线性插值直接对feature扩大几倍以达到恢复输入尺寸的效果),以将feature map复原到输入图像的尺寸大小,以此输出针对每一个像素分类后的分割图像。

很多人都将deconv反卷积称作转置卷积,但是好像也有说它们两者还是有一点区别,目前还不知道究竟有什么区别,所以我暂且先认为它俩的概念一致好了。

普通的卷积和池化

计算feature_map输出尺寸的公式也比较简单,如下所示:
ALToutput:卷积后输出feature map的尺寸大小。
input:输入图像尺寸大小。
padding:在输入图像周围补圈数,padding=1表示在输入图像周围加一圈0。
kernel_size:卷积核的大小。
stride:卷积核在输入图像作卷积时每一次卷积移动的步长。
input=5,padding=1,kernel_size=3,stride=2
output=(5+2x1-3)/2+1=3
No padding,no strides 图一
ATL
Padding,strides 图二
ATL

deconv(transposed conv)

deconv输入输出计算

deconv输出尺寸计算,就是将普通卷积的计算公式中的input和outpu对调下位置。
ATL
以图三为例
input=2,padding=0,kernel_size=3,stride=1
output’=1x(2-1)+3-2x0=4
No padding,no strides,transposed 图三
ATL
Padding,strides,transposed 图四
ATL

deconv原理介绍

根据知乎高赞回答,暂时可以理解了deconv和普通卷积的区别:
deconv和conv的区别在于在进行网络的前向传播和反向传播计算的时候作相反的计算。
conv的反向计算公式是deconv的前向传播计算公式,conv的前向传播计算公式deconv的反向传播计算公式
从公式上理解就是如下:
对于一个输入是4x4的feature map,输出是2x2的feature map的conv层
输入矩阵可以展开为16维向量,记为x
输出矩阵可展开为4维向量,记为y
那么卷积运算可以表示y=Cx
C为稀疏矩阵:
ATL
那么前向传播的就是基本的矩阵运算,而反向传播计算类似如下过程:
ATL
相当于,conv层在进行反向传播的时候是用C的转置矩阵去和梯度作卷积运算。
那么deconv既然称为反卷积,那么确实就和你想的一样,deconv在进行前向传播的时候是用C的转置矩阵去左乘输入矩阵,而在反向传播的时候是用C去左乘输入梯度矩阵。这个就是deconv和conv在计算时的不同,正因为原理是正好反过来的,所以被称为deconv。
仔细观察图一和图三,你会发现它们在No padding和No strides的基础上,输入输出都正好是相反的,这也在一定程度验证了,两者的计算原理确实也正好是相反的。
转载:转载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值