【问题标题】:What does it mean by deconvolution (backwards convolution)?反卷积(反向卷积)是什么意思?
【发布时间】:2016-11-11 02:35:28
【问题描述】:

卷积神经网络中的反卷积或反向卷积是什么意思?

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

在我的理解中,反卷积试图对特征图进行上采样以获得更大的图。它是否使用与获取特征图相同的卷积矩阵?如果不是如何计算反向传播的梯度?详细的解释会非常有用。

【问题讨论】:

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


    【解决方案1】:

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

    一般来说,反卷积更像是一种反向卷积:每个像素都会影响从中提取它的 3x3 区域,应用滤波器的傅里叶变换来对输入参数进行反向工程。它通常用于信号处理中,以减少噪声、锐化特征等。

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

    这里有一些参考资料;我希望他们中的一两个达到您前进所需的水平。

    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

    【讨论】:

    • 我想添加一个资源,我发现它对理解反卷积(也称为转置卷积)非常有帮助。在本文的第 4 部分 arxiv.org/pdf/1603.07285.pdf Dumoulin 的“深度学习卷积算法指南”中,他们以非常直观的方式解释了什么是转置卷积。
    • 这个答案是错误的误导。神经网络中的“反卷积”是一个糟糕的名称选择,与实际的反卷积无关。更多信息在这里datascience.stackexchange.com/questions/6107/…
    【解决方案2】:

    正如@papirrin 所指出的,@Prune 给出的答案有点误导。在 CNN(或完全卷积神经网络,这是首次提出反卷积的地方)中,反卷积并不完全与卷积相反。更准确地说,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),它直接来源于卷积操作。总之,两种方式都很好。

    关于如何计算梯度,和卷积中的完全一样。你也可以解释转置卷积操作,因为它基本上交换了卷积操作的前向和后向过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      • 2020-05-27
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-07
      相关资源
      最近更新 更多