对于反卷积,转置卷积的理解(一文定胜负)

看了好多博客,也看过论文,对于反卷积,转置卷积的理解一直模模糊糊,对于反卷积,转置卷积到底是不是一回事一直是一个问号。直到今天对SAME卷积做了一次小小的尝试,心中才有了一个思路(不知道对不对),之所以之前一头雾水,原因是对SAME卷积的误解。在tensorflow中,tf.nn.conv2d()函数中的padding=‘SAME’,当strides=[1,1,1,1]的时候,卷积之后的输出特征图大小和输入一致,但当strides=[1,2,2,1]的时候,卷积之后的输出特征图大小是输入大小的1/2。如下图所示
对于反卷积,转置卷积的理解(一文定胜负)
当步长为3的时候,卷积之后的输出特征图大小是输入大小的1/3,如下图所示,所以stride决定了下采样的倍数
对于反卷积,转置卷积的理解(一文定胜负)对于卷积和转置卷积的推导公式如下图所示,所以,tensorflow中的转置卷积并不是在输入特征图上补0(虽然这也是上采样的一种方式,应该是full卷积),而是和下图推到的那样。
对于反卷积,转置卷积的理解(一文定胜负)所以fcn中的上采样方式是转置卷积,例如8倍上采样采用的是sride=8,kernal=16x16,至于kernal为什么采用16,个人感觉应该是实验所得了。
总结:
深度学习这块反卷积和转置卷积操作一样,只不过是卷积的逆向操作。在某些领域反卷积应该等于full卷积,即下图
对于反卷积,转置卷积的理解(一文定胜负)