我正在阅读 ZF Net 论文,它在某些搜索中使用了 Deconvnet 一词,这似乎是错误的术语,而是我们使用转置卷积代替。我了解转置卷积的工作原理,但我仍然不明白这如何显示存储在特定层中的信息或特定层捕获的特征
转置卷积层能够放大图像的直觉是什么?
我浏览了 ZFNet 论文,似乎 Deconvnet 与转置卷积不同。但是,两者的想法非常相似,很容易混淆。
首先,让我们清楚转置卷积。最近有很多关于它的博客和论文,这里有一篇写得很好的博客: https ://towardsdatascience.com/what-is-transposed-convolutional-layer-40e5e6e31c11 )。
但是,ZFNet 论文很旧,它引用了这篇论文https://ieeexplore.ieee.org/document/6126474来获取 Deconvnet 的想法。这个想法在某种意义上类似于转置卷积,将具有较小维度的特征图转换为更大维度的特征图。它具有 Unpooling、Rectification 和 Filtering 三个步骤,这使得它不同于转置卷积。为了理解 Deconvnet 的想法,我建议对 ZFNet 论文进行更深入的分析。您可能会发现这些幻灯片很有帮助http://cs.nyu.edu/~fergus/drafts/utexas2.pdf
那么,为什么会出现混乱呢?反卷积最初的定义如本维基百科页面所述:https ://en.wikipedia.org/wiki/Deconvolution 。由于卷积的作用正好相反,因此特征图的上采样(将低维特征图转换为高维特征图)可能被视为反卷积操作。然而,在阅读了一些资源后,我得出结论,有几种方法可以对特征图进行上采样,比如像素洗牌(https://nico-curti.github.io/NumPyNet/NumPyNet/layers/pixelshuffle_layer.html)和转置卷积(前面讨论过)。因此,所有这些操作都以非常不同的方式执行相同的高级操作(导致甚至不同的结果)。
我还建议通过此线程进一步阅读:什么是反卷积层?