卷积的意义及其派生(二)

 接上一篇。因为还有很多种卷积的变形,并且应用广泛,所以继续介绍。

Transposed Convolution

也叫反卷积或者转置卷积。

一般卷积之后尺寸都会变小,采取一些padding,空洞卷积等使得尺寸保持不变就已经好不容易了,但转置卷积却可以实现尺寸变大。在了解转置卷积的原理之前,必须先了解一点普通卷积的实现。

普通卷积当然可以滑动窗口的方法实现,但这样训练太低。更常用的做法是im2col,即把图像和滤波器都转换为向量:

这里的关键是滤波器的im2col。先初始化一个和图像大小相同的空矩阵,按照滤波器可能出现的位置进行系数填充。这样得到的每个列向量表示一个滤波器的位置。然后卷积就可以使用矩阵乘积来实现:

如果用矩阵运算表示卷积这个过程,Y=CX,Y是维度更小的输出,X的维度更大。那么一定存在一个矩阵B可以恢复出X大小的尺寸,YB=X,B的维度就是C的转置。

在实现上,只需要对称调用con2d和ConvTranspose2d,使用相同的参数,就可以实现尺寸的保持:

原始32,con2d(kernel_size=18, padding=3, stride=1),输出尺寸为32+3*2-(18-1)=21,

尺寸21的输入再进ConvTranspose2d(kernel_size=18, padding=3, stride=1),输出尺寸21+(18-1-3)*2-(18-1)=32.

反卷积可以被应用在CNN的解释和语义分割上。

 Deconvolution and Checkerboard Artifacts

反卷积输出尺寸计算公式 - 知乎

Depthwise Convolution

normal convolutionDepthwise convolution
    
    
每个filter的通道数与输入图的通道数一样,对应通道做卷积,然后再合并,每个filter得到一个单通道输出

filter个数与输入图的通道数一样,每个filter都只有一个通道,只负责输入图的一个通道。

Depthwise convolution不改变通道,每个filter与输入图的通道一一对应,这也是称为通道分离卷积的原因。
 

https://towardsdatascience.com/a-basic-introduction-to-separable-convolutions-b99ec3102728

https://zhuanlan.zhihu.com/p/453434386

Pointwise Convolution

Depthwise convolution没有考虑通道直接的信息交流,也导致输出层的通道数与输入绑定。这时上一篇讲到的1x1卷积就派上了用场。

Pointwise Convolution就是用通道数等于Depthwise convolution输出层的1x1卷积,压缩成一个单通道输出。而多个这样的1x1卷积就可以得到想要的输出。

  

depthwise separable convolution

depthwise separable convolution由谷歌的Xception提出,应用在MobileNets

传统卷积的意义一个是滤波器提取特征,一个是不同通道的特征融合,深度分离卷积就是将这两个内容分成两步计算,分别使用Depthwise convolution和Pointwise Convolution实现。

深度分离卷积相比于普通卷积最大的优点就是它的计算量更少。

原始卷积的计算量,与特征图尺寸成平方的关系,与卷积核尺寸也成平方的尺寸,与通道数,卷积核数目成正比,所以传统卷积的运算量是Df*Df*Dk*Dk*M*N,而depthwise每个卷积核只与一个通道产生关系,所以和卷积核数目无关,运算量是Df*Df*Dk*Dk*M,在pointwise阶段,原理和传统卷积一样,只不过卷积核尺寸变为1x1,所以运算量是Df*Df*1*1*M*N。

使用深度可分离的耗时是标准卷积的(1/N+1/Dk^2),所以一般卷积核尺寸取3x3时,时间可以缩短为用来的1/8~1/9.

但是深度分离可卷积不会出现在网络的第一层,第一层依然是传统的卷积层。


reference:

轻量级神经网络“巡礼”(二)—— MobileNet,从V1到V3 - 知乎

轻量级CNN之MobileNet系列 - 知乎

CNN模型之MobileNet - 知乎

反卷积原理不可多得的好文_区块链斜杠青年(爱踢门)-CSDN博客

GitHub - vdumoulin/conv_arithmetic: A technical report on convolution arithmetic in the context of deep learning

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值