upsampling 上采样
可以翻译为上采样,与下采样对应,是一种增大图片分辨率的技术的统称。
最常见的技术为插值,即把分辨率低的图片放大到需要的大小,再用插值的方法补齐像素的值。
unpooling 反池化
unpooling与pooling相对,那么可以翻译为反池化。与池化相反,是把图片从小变大的操作。
严格意义上来讲,池化过程中丢失了很多信息,是不可逆的。反池化只是一个近似恢复的操作。
如图所示,反池化只是保留了池化时最大值的位置信息,别的地方补零。那么这个和基于插值的上采样技术有什么区别呢?请看下图:
在插值的过程中,同样也保留了位置信息,但是其余的部分都使用相同的数字进行填充。
deconvolution 转置卷积
deconvolution常被翻译为反卷积,常用于卷积神经网络CNN中,指的是一种可以达到与卷积效果相反的运算,即从小的feature map反卷积到大的feature map上来。如下图所示:
但要注意的是,deconvolution并不是数学意义上convolution的逆操作,只是达到的效果相反罢了。
实际上,deconvolution为了达到与卷积相反的效果,只是乘以了一个与卷积矩阵位置相同矩阵的转置,所以比较好的翻译应该是转置卷积Transposed Convolution。转置卷积可以恢复到原来feature map的大小,但不可以完全与以前的feature map值相同。
这篇文章中对为什么叫“转置卷积”做了生动的说明。
转置卷积的目的除了上文中提到的扩大feature map的size,还有一个就是保证了在恢复过程中上下层feature map之间位置关系的对应性。一般来说,需要对原来的feature map先插值,后卷积。所以还有论文把其称作为Fractional Strided Convolution。
这篇博文中的图片给出了形象的解释,具体描述请参考其“普通卷积的计算过程”和“转置卷积(反卷积)的计算过程”两部分。
deconvolution的应用
转置卷积主要用于以下两方面:
- 在GAN生成样本;
- 使用编码器来提取特征时,在encoder后作decoder使用。
总结
upsampling只是一种把图片恢复到原始大小的一种技术的统称,具体手段有很多,此文中提到的插值/unpooling/deconvolution/都可以做到。
Renference:
3. What is the difference between Deconvolution, Upsampling, Unpooling, and Convolutional Sparse Coding?
4. 关于转置卷积(反卷积)的理解
5. 一文搞懂反卷积,转置卷积