在基本的网络模型中,卷积是最常见的操作,通常用来提取特征。随着卷积操作,特征图往往会逐渐变小。对于分类任务,只是对图中包含目标的一部分感兴趣,小特征图中的特征更加高级具体,适合目标分类和定位;而对于分割任务,需要对整张图像进行像素级的判别,小的特征图无法很好地对应到原图的每个像素,分割效果就会较差。因此除了卷积和池化这样会“提炼”图像的方法,也需要能够扩大特征图的“还原”图像的方法,常用的有反卷积/转置卷积和插值。
反卷积(Deconvolution),转置卷积(Transpose Convolution)和Fractional Convolution都是同样的内容。反卷积是和卷积概念相对应,转置卷积则和卷积操作中的稀疏矩阵相对应,Fractional Convolution的名称则对应于步长大于1的卷积。接下来就从这三种角度分别理解这种能扩大特征图的操作。
1. 反卷积(Deconvolution)
在这个意义上,反卷积是卷积的反向操作,也可以理解为一个卷积,只不过padding比通常的卷积要大一些。由于步长又通常为1,因此反卷积的输出反而比输入要大,实现特征图的扩张。回顾一下普通的卷积操作,输入大小为i,卷积核大小为k,步长为s,补丁为p,则输出大小o=(i+2*p-k)/s+1,如下面左图所示:i=4,k=3,p=0,s=1,o=(4+0*2-3)/1+1=2;该卷积对应的反卷积如下面右图所示,公式不变,同时步长和卷积核大小也不变(s=s',k=k'),只不过补丁变大(p'>p)&