【论文解读】Deconvolution and Checkerboard Artifacts

  今天看到了一篇2016的论文,关键是可以视化卷积操作,地址如下:https://distill.pub/2016/deconv-checkerboard/

    当我们非常仔细地观察由神经网络生成的图像时,经常会看到一种奇怪的棋盘状伪像图案。在某些情况下,这种情况比在其他情况下更为明显,但是最近的模型中有很大一部分都表现出了这种行为。

       

     非常神奇的地方,棋盘格图案在色彩浓烈的图像中往往最为突出。这是怎么回事?神经网络讨厌鲜艳的色彩吗?这些伪像的实际原因实际上非常简单,这是避免它们的方法

Deconvolution & Overlap

当我们让神经网络生成图像时,我们通常会根据低分辨率,高层次的描述来构建它们。这使网络可以描述粗糙图像,然后填写详细信息。

为了做到这一点,我们需要某种方法将低分辨率的图像转换成高分辨率的图像。我们通常通过反卷积操作来完成此操作。粗略地讲,反卷积层允许模型使用小图像中的每个点“绘制”较大的正方形。

(反卷积具有多种解释和不同的名称,包括“转置卷积”。为简洁起见,在本文中使用“反卷积”这个名称。)

不幸的是,反卷积很容易具有“不均匀的重叠”,在某些地方比在其他地方放置更多的隐喻涂料 (直译)。特别是当内核大小(输出窗口大小)不能被步幅(顶部各点之间的间距)整除时,反卷积具有不均匀的重叠。尽管原则上网络可以仔细地学习权重来避免这种情况(我们将在后面详细讨论),但实际上神经网络却在努力避免这种情况。

重叠图案也以二维形式形成。两根轴上不均匀的重叠部分会相互叠加,形成大小变化的棋盘状特征图案。

实际上,不均匀的重叠在二维上往往更加极端!因为两个图案相乘,所以不均匀度平方。例如,在一维中,步幅2,大小3的反卷积具有一些输出,其输入数是其他输入的两倍,但是在二维中,这变成四分之一。

现在,神经网络在创建图像时通常使用多层反卷积,从一系列较低分辨率的描述中迭代构建较大的图像。这些堆叠的反卷积有可能抵消伪影,但它们通常会复合,从而在各种规模上创建伪影。

第1步反卷积-我们通常将其视为成功模型的最后一层(例如 [2])-在抑制伪影方面非常有效。他们可以去除划分其大小的频率伪像,并减少其他频率小于其大小的伪像。但是,正如许多最新模型中所看到的那样,伪影仍可能泄漏出去。

除了我们上面观察到的类似于高频棋盘的伪像之外,早期的反卷积还可以创建低频伪像,我们将在后面对此进行详细介绍。

当输出不寻常的颜色时,这些伪像往往最突出。由于神经网络层通常具有偏差(将学习值添加到输出中),因此很容易输出平均颜色。颜色(例如鲜红色)离平均颜色越远,则反卷积就越需要贡献。

Overlap & Learning

从不均匀重叠的角度来思考事物是一种简单的方法,尽管它是有用的框架。不管好坏,我们的模型都为它们的反卷积学习权重。

从理论上讲,我们的模型可以学习仔细地写到不均匀重叠的位置,以便输出达到均衡。

                      

这是一项棘手的平衡操作,尤其是当有多个通道交互时。避免伪像会显着限制可能的过滤器,从而牺牲模型容量。在实践中,神经网络努力学习完全避免这些模式。

实际上,不仅重叠不均匀的模型不能学会避免这种情况,而且重叠均匀的模型经常可以学习导致相似伪像的内核!尽管这不是默认的行为(不均匀重叠的方式),但即使重叠反卷积也会导致伪像,仍然非常容易。

                

完全避免伪像仍然是对过滤器的重大限制,并且在实践中,伪像仍然存在于这些模型中,尽管它们看起来较为温和。(看到[4],例如,使用跨度为2的大小4反卷积。)

这里可能有很多因素在起作用。例如,在生成对抗网络(GAN)的情况下,一个问题可能是鉴别器及其梯度(我们将在以后再讨论)。但是问题的很大一部分似乎是反卷积。最好说,去卷积是脆弱的,因为即使很仔细地选择大小,去卷积也很容易代表伪影创建功能。最糟糕的是,创建工件是反卷积的默认行为。

是否有其他方法可以对伪像具有更高的抵抗力?

Better Upsampling

为了避免这些伪像,我们希望使用常规反卷积(“转置卷积”)的替代方法。与反卷积不同,这种向上采样的方法不应将伪像作为其默认行为。理想情况下,它会走得更远,并且偏向于此类工件。

一种方法是确保使用的内核大小被步幅除以,从而避免出现重叠问题。这等效于“亚像素卷积”,该技术最近在图像超分辨率方面获得了成功。[8]。但是,尽管这种方法有所帮助,但反卷积仍然很容易陷入创建伪像的过程。

另一种方法是从卷积到计算特征中分离出较高分辨率的上采样。例如,您可以调整图像大小(使用最近邻插值双线性插值),然后进行卷积层。这似乎是一种自然的方法,并且大致类似的方法在图像超分辨率中也能很好地工作(例如,[9])。

解卷积和不同的大小调整卷积方法都是线性运算,可以解释为矩阵。这是查看它们之间差异的有用方法。在反卷积对于每个输出窗口都有唯一条目的情况下,resize-convolution是隐式权重绑定,以阻止高频伪像。

最近邻插值法取得了最好的结果,并且使双线性调整大小工作变得困难。这可能仅意味着,对于我们的模型,最近邻居恰好与针对反卷积优化的超参数配合使用。天真的使用双线性插值可能会指出棘手的问题,因为它过于强烈地抵抗了高频图像特征。我们不一定认为这两种方法都是上采样的最终解决方案,但它们确实可以修复棋盘格工件。

Image Generation Results

我们的经验是,在各种情况下,最近邻调整大小然后进行卷积效果非常好。

我们发现这种方法可提供帮助的一个例子是生成对抗网络。只需将标准反卷积层切换为最近邻调整大小,然后再进行卷积,即可消除不同频率的伪像。

   

               

实际上,在进行任何训练之前就可以看到伪像的差异。如果查看生成器生成的图像,并使用随机权重对其进行初始化,我们已经可以看到这些伪像:

这表明伪像是由于这种生成图像的方法,而不是对抗训练。(这也表明,如果没有训练模型的缓慢反馈周期,我们也许可以学到很多关于良好的发电机设计的知识。)

相信这些伪影不是GAN特定的另一个原因是,我们在其他类型的模型中看到了它们,并且发现当我们切换到调整大小卷积上采样时,它们也会消失。例如,考虑实时艺术风格转换[10]训练神经网络直接生成样式转移的图像。我们发现它们很容易受到棋盘伪像的影响(特别是在成本并未明确抵制它们的情况下)。但是,将反卷积层切换为调整大小卷积层会使伪像消失。

                          

Google Brain团队即将发表的论文将在更全面的实验和最新结果中证明该技术的优势。(我们选择单独介绍此技术是因为我们认为它值得进行更详细的讨论,并且涉及多篇论文。)

Artifacts in Gradients

每当我们计算卷积层的梯度时,我们都会在反向遍历上进行反卷积(转置卷积)。就像我们使用反卷积生成图像时一样,这会导致渐变中的棋盘格图案。

特征可视化社区已经知道图像模型渐变中存在高频“噪声”,这是一个重大挑战。以某种方式,特征可视化方法必须补偿这种噪声。

例如,DeepDream [11] 似乎以多种方式引起伪影之间的破坏性干扰,例如同时优化许多功能以及在许多偏移和比例上进行优化。尤其是,在不同偏移量处进行优化的“抖动”消除了一些棋盘伪像。

(虽然某些伪像是我们的标准棋盘图案,但其他伪像是组织性较差的高频图案。我们认为,这是由最大池化引起的。最大池化以前与 [12]

特征可视化方面的最新工作(例如 [13])已明确识别并补偿了这些高频梯度成分。人们想知道,更好的神经网络架构是否可以使这些工作变得不必要。

这些梯度伪影会影响GAN吗?如果梯度伪影可以影响特征可视化中基于神经网络梯度优化的图像,那么我们也可以期望它会影响生成器参数化的图像族,因为它们是由GAN中的鉴别器优化的。

我们发现在某些情况下确实会发生这种情况。当生成器既不偏斜也不偏斜棋盘图案时,鉴别器中的大卷积会导致它们。

 

目前尚不清楚这些梯度伪像的广泛含义是什么。考虑它们的一种方法是,某些神经元基本上可以任意地获得其邻居梯度的许多倍。等效地,出于充分的理由,网络将比其他像素更关心输入中的某些像素。这些听起来都不是理想的。

看起来有些像素可能比其他像素对网络输出的影响更大,这可能会夸大对抗性反例。由于导数集中在少量像素上,因此这些像素的较小摄动可能会产生较大的影响。我们尚未对此进行调查。

结论

反卷积产生图像的标准方法-尽管取得了成功!-存在一些概念上很简单的问题,这些问题会导致生成的图像中出现伪像。使用没有这些问题的自然替代方法会导致伪像消失(类似的论点表明,标准的跨步卷积层也可能存在问题)。

对我们来说,这似乎是一个令人兴奋的机会!它表明,在通过神经网络体系结构进行仔细思考时,即使在我们似乎有干净的工作解决方案的地方,也可以从微不足道的结果中找到。

同时,我们提供了一个易于使用的解决方案,该解决方案提高了许多使用神经网络生成图像的方法的质量。我们期待看到人们如何使用它,以及它是否对音频等领域有用,在这些领域中,高频伪像会特别成问题。

发布了33 篇原创文章 · 获赞 46 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_34795071/article/details/103908606