反卷积(Deconvolution)、上采样(UnSampling)与上池化(UnPooling)的对比图示如下(图片出处见水印):
对比图
上采样(UnSampling)
FCN、U-net等网络结构中都有使用上采样。上采样是指使图像分辨率变高的方法。
最简单的方式是重采样和插值:将输入图片进行rescale到一个想要的尺寸,并计算每个点的像素值,使用如双线性插值等插值方法对其余点进行插值来完成上采样过程。
反卷积(Deconvolution)
反卷积在CNN中常用于表示一种反向卷积 ,但它并不是一个符合严格数学定义的反卷积操作。与上池化不同,使用反卷积来对图像进行上采样是可以习得的。通常用来对卷积层的结果进行上采样,使其回到原始图片的分辨率。
上池化(UnPooling)
上池化是在CNN中常用的来表示max pooling的逆操作。最早来源于2013年纽约大学Matthew D. Zeiler和Rob Fergus发表的《Visualizing and Understanding Convolutional Networks》。
鉴于max pooling不可逆,因此使用近似的方式来反转得到max pooling操作之前的原始情况。
简单来说,记住做max pooling的时候的最大item的位置,比如一个3×3的矩阵,max pooling的size为2×2,stride为1,反卷积记住其位置,其余位置至为0就行:
maxpooling和unpooling