卷积神经网络中的反卷积或反向卷积意味着什么?
我理解卷积,如果我们考虑3x3窗口W和相同大小的内核k,则卷积W * K的结果将是一个值。这里k是具有3x3元素的matix。
在我的理解deconvolution尝试上采样特征地图以获得更大的地图。它是否使用相同的卷积矩阵来获取要素图?如果不是如何计算反向传播的梯度?详细说明非常有用。
答案 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.html和https://tinynet.autoai.org/en/latest/induction/convolution-transpose.html。
关于如何在转置卷积中获得卷积矩阵,这取决于您将如何使用它。对于图像分割,它是在反向传播期间学习的。在中间特征图的某些可视化中(例如ECCV14论文:https://arxiv.org/abs/1311.2901),它直接来自卷积运算。总之,两种方法都很好。
关于如何计算梯度,它与卷积完全相同。您也可以解释转置的卷积运算,因为它基本上交换了卷积运算的前进和后退过程。