什么是反卷积(快速理解)

什么是反卷积


我们知道输入图像通过卷积神经网络(CNN)提取特征后,输出的尺寸往往会变小,而又是我们需要将图像恢复到原来的尺寸以便进行进一步的计算,整个扩大图像尺寸,实现图像由小分辨率到大分辨率的映射的操作,叫做上采样(Upsample)
反卷积是上采样的一种方式,反卷积也叫转置卷积。

什么是反卷积(快速理解)

图1 反卷积原理图(stride=1)

上图所示的就是一个反卷积的工作过程,与卷积过程的主要区别在于反卷积输出的图片尺寸会大于输入图片的尺寸,通过增加padding来实现这一操作,上图展示的是一个stride为1的反卷积过程。

什么是反卷积(快速理解)

图1 反卷积原理图(stride=2)

在进行反卷积的时候设置的stride并不是指反卷积在进行卷积时候卷积核的移动步长,而是被卷积矩阵填充的padding

比如上图中原输入是一个3×3的输入,此时要进行反卷积过程,且设置的stide=2,操作是在3×3的每一行每一列插入一行和一列的0的填充。
其次,我们还需要注意一个事,通过反卷积并不能还原之间的矩阵,只能从大小上进行还原,反卷积的本质还是卷积,只是在进行卷积之前,会进行一个自动的padding补充0,从而使得输出的矩阵和指定输出的矩阵的shape相同
什么是反卷积(快速理解)
什么是反卷积(快速理解)
如上图所示,我们用一个3×3的卷积核卷积一个4×4的输入,得到一个2×2的输出后,再进行反卷积,发现并不是原来的输入。其实很简单,第一个数相当于9个数相加等于4.5,用一个方程怎么可能解出9个未知数。所以反卷积不能还原原来的输入,只能保证shape相同。

参考博客

彻底搞懂CNN中的卷积和反卷积
https://blog.csdn.net/sinat_29957455/article/details/85558870