反卷积(反向卷积)是什么意思?

时间:2016-07-08 13:37:32

标签: deep-learning caffe conv-neural-network deconvolution

卷积神经网络中的反卷积或反向卷积意味着什么?

我理解卷积,如果我们考虑3x3窗口W和相同大小的内核k,则卷积W * K的结果将是一个值。这里k是具有3x3元素的matix。

在我的理解deconvolution尝试上采样特征地图以获得更大的地图。它是否使用相同的卷积矩阵来获取要素图?如果不是如何计算反向传播的梯度?详细说明非常有用。

2 个答案:

答案 0 :(得分:3)

详细解释超出了StackOverflow的范围;这不是一个教程网站。

通常,反卷积更多的是反向卷积:每个像素影响从中提取的3x3区域,应用滤波器的傅里叶变换对输入参数进行反向工程。它通常用于信号处理,以降低噪声,锐化功能等。

例如,可视化x-y平面中的十几个数据点,沿二次曲线或多或少地分布。有多种最佳拟合方法可将四度方程 - 或立方体的滚动组合 - 映射到给定点。这是一种反卷积。

以下是一些参考资料;我希望他们中的一两个人能够达到你需要的水平。

https://en.wikipedia.org/wiki/Deconvolution

https://www.reddit.com/r/MachineLearning/comments/454ksm/tutorial_on_deconvolution/

https://github.com/tensorflow/tensorflow/issues/2169#issuecomment-216607417

答案 1 :(得分:0)

@papirrin指出,@ Prune给出的答案有点误导。在CNN(或首次提出反卷积的完全卷积神经Neworks)中,反卷积与卷积并非完全相反。更准确地说,CNN中的反卷积只会反转形状,而不会反转内容。反卷积的名称具有误导性,因为反卷积已经在数学上进行了定义,因此,在下面,我们将使用转置卷积来表示“ CNN中的反卷积”。

要了解转置的卷积,在执行卷积运算时,需要将卷积运算的滤波器转换为矩阵。然后,可以将卷积运算定义为Y=WX。然后,在转置卷积中,我们基本上对矩阵进行转置,并且输出将计算为Y=W^TX。对于某些示例,您可以参考https://tinynet.autoai.org/en/latest/induction/convolution.htmlhttps://tinynet.autoai.org/en/latest/induction/convolution-transpose.html

关于如何在转置卷积中获得卷积矩阵,这取决于您将如何使用它。对于图像分割,它是在反向传播期间学习的。在中间特征图的某些可视化中(例如ECCV14论文:https://arxiv.org/abs/1311.2901),它直接来自卷积运算。总之,两种方法都很好。

关于如何计算梯度,它与卷积完全相同。您也可以解释转置的卷积运算,因为它基本上交换了卷积运算的前进和后退过程。