让Dropout在图像超分领域重焕光彩!

2021-12-27 10:37:43 浏览数 (1)

arXiv: 2112.12089

注:因排版有误致图片有误,建议查看原文。本文是X-Pixel 团队关于dropout在图像超分中应用的探索。Dropout不适用于low-level任务已成为常识性认知,却鲜少有学者对其背后的机理进行挖掘分析。本文通过充分的实验与分析得出:合理使用dropout有益于超分模型性能提升,并改善其泛化性能 。如此有意义的研究,何不跟着笔者一起观赏一番呢?

Abstract

Dropout有助于缓解high-level视觉任务中的过拟合问题,但在low-level视觉任务(如图像超分)中却鲜少应用。作为经典的回归问题,SR具有与high-level任务不同的行为:对dropout操作非常敏感

然而,本文研究表明:合理的使用dropout有益于SR模型,提升其泛化性能 。具体来说,dropout更适合于嵌入到网络的尾部 ,并对于多退化情形帮助极大。下图给出了不同配置下采用Dropout前后的性能对比,可以看到:引入dropout可以大幅提升模型的泛化性能 ,甚至可以将SRResNet的提升到优于RRDB的程度。重要的是,添加dropout仅需一行code。真可谓:One line of code is worth a ten-fold increase in the model parameters .

该发现打破了我们的常识并启发我们探索其工作机理。我们采用两种分析工具(Channel Saliency Map与Deep Degradation Representation)进行分析,分析结果为实验发现提供了佐证并为SR模型的理解提供了新视角。

Observation

关于如何将Dropout引入到超分网络中,我们做了很多尝试并在不同配置下得出了完全不同的行为表现,见上图。

  • Dropout is harmful for SR. 该实验为常规超分配置,即bicubic退化。dropout则为广泛采用的通道级形式(见上图a)。正如预期,dropout会导致模型性能大幅下降(与常识相一致)。
  • Dropout does not affect SR. 我们还发现一个与上述结论相悖的特例(见上图b),即仅在最后卷积之前添加dropout 。此时,dropout对于模型性能无影响,这意味着:那一层的特征可以随机masked且不会影响回归结果。这些特征发生了什么?这是否意味着回归与分类网络具有某些共性呢?
  • Dropout is beneficial for SR. 最后的发现就更有意思了(见上图c和d),在多退化配置下,dropout有益于SR 。这意味着:dropout可以一定程度下改善超分模型的泛化性能

上述实验结果为我们提供了寻找low-level任务中dropout有效性的线索。我们将从不同角度对其进行分析,如dropout使用策略、dropout的工作机制。

Apply Dropout in SR Network

为探索Dropout的实用策略,我们以SRResNet、RRDB作为基线进行尝试。影响dropout使用的主要有两点:(1) 使用位置;(2) 使用策略,即维度和概率。

上图给出了dropout的不同使用位置示意图,可以划分为三大类:

  • dropout before the last-conv . 该情形见上图a,这也是本文最终的发现与结论;
  • dropout at middle of network . 该情形见上图a,即作用在body部分;
  • dropout in residual network . 该情形见上图c与b。

除了使用位置外,维度与概率是另一个重要的因素。在维度方面,有channel与element两种形式:channel形式会随机丢弃整个changnel,而element则随机丢弃所有特征的某些element。

丢弃概率则会决定了channel/element的丢弃比例。在分类网络中,50%的概率不会影响最终的结果但会提升泛化性能。然而,该概率对于SR来说过大。为获得可能的增益且不影响模型,我们首先测试了三种概率:10%、20%以及30%。

总而言之,我们具有八个候选位置、两个候选维度以及三个候选概率 。然而,大部分结果是有害的。last-conv与channel形式drop的组合不会影响SR性能,且有益于多退化配置下的超分

Experiments

How to apply Dropout

在该部分实验中,作者以bicubic退化配置探索Dropout的使用方式。上图给出了关于dropout使用位置、概率以及形式的实验结果对比(注:bicubic退化配置),从中可以看到:

  • 不同的dropout位置具有完全不同的性能。当采用单个dropout时,越靠近模型尾部性能越好;当采用多个dropout时,越多的dropout导致越多的性能下降。总而言之,last-conv方案性能最佳
  • element形式的dropout倾向于降低模型性能,而channel形式dropout则具有更好的性能
  • 更大的dropout概率会带来负面影响,在该配置下10%会是一个不错的选择。
  • last-conv channel的实用组合可以带来有意义且鲁棒的结果

Multi-degradation setting

在该部分实验,作者采用Real-ESRGAN一文的高阶退化(如对高阶退化感兴趣,可移步 【Real-ESRGAN:走出温室,迈向实用】)方式进行模型训练。

上表给出了不同配置下使用dropout前后的性能对比,从中可以看到:

  • 在多退化配置下,引入dropout可以大幅改善模型的性能 。最大性能提升高达0.78dB(Real-SRResNet)与0.95dB(Real-RRDB)。
  • 表中红色标注表示使用Dropout后,SRResNet的性能超越了RRDB

上图给出了使用dropout前后模型的可视化效果对比,可以看到:使用dropout的模型具有更好的内容重建、伪影移除以及降噪效果 。总而言之,dropout可以改善多退化配置超分模型性能

此外,作者还在bilinear、NN及其与噪声组合数据上进行了性能验证。可以看到:对于“域外”测试集(NN),引入dropout仍可以看到可见的性能提升。这说明:Dropout可以提升模型对于未知退化的泛化性能

上表给出了关于dropout概率的消融分析,可以看到:

  • 对于Real-SRResNet而言,10%-90%的概率均有益于性能提升;
  • 对于Real-SRResNet,默认选择p=0.7;对于Real-RRDB,默认选择p=0.5.

Interpretation

在得到上述结果之后,我们非常好奇:引入dropout后到底发生了什么,它又是如何改善模型泛化性能的。接下来,作者从模型可解释性与可视化两个角度进行了分析。

上图给出了PSNR与显著性图之间的相关性。当我们对某些特征进行mask后,我们可以得到不同的PSNR值,低PSNR对应了更亮的显著性图,更亮的只意味着对超分结果的更大影响。很明显:不同特征对于最终的结果影响程度是不一样的

那么dropout会平衡特征的重要性,打破co-adapting吗 ?正如上图所示,引入dropout后,特征与属性图得到了平衡。

为进一步验证,我们zero某些通道并线性缩放其他特征,结果见上图。可以看到:未使用dropout训练的Real-SRResNet模型性能出现了严重下降;而使用了dropout训练的模型则保持不变 。也就是说,对于使用dropout的模型来说,PSNR不再仅仅依赖于特定的几个通道。哪怕丢弃到三分之特征仍可保持性能不变。总而言之,某些特征对于重建更为重要,而 dropout可以平衡不同特征的重要性

评估泛化性能最直接的方式是在更宽范围数据集上进行测试,但对于模型泛化性的预测非常难。本文采用DDR工具进行了分析(DDR说明:网络处理多退化的时候可能是先给他们分分类再分别处理 。也就是说:分的越开(越不集中)泛化性越差 ),结果见上图。从中可以看到:

  • SRResNet的聚集程度弱于Real-SRResNet ,这说明:相比bicubic退化,采用更多退化类型数据训练的模型具有更好的泛化性能;
  • 相比Real-SRResNet(p=0),Real-SRResNet(p=0.9)引入Dropout进一步提升了聚集程度。这说明:Dropout可以进一步提升Real-SRResNet的泛化性能
  • 作者进一步引入了CHI(Calinski-Harabaz Index)指标描述聚类分离度(CHI越低意味着更优的泛化性能)。CHI会随dropout概率提升而降低,进一步说明:dropout有助于改善超分模型的泛化性能
  • 一个有意思的发现:带噪数据的分布总是“特立独行”。这与前面表中的结果相一致,噪声数据的性能总是远弱于clean数据。

为验证:dropout会不会改变模型的收敛特性。作者以Real-SRResNet、Real-RRDB以及SwinIR进行了对比,见上图。可以看到:dropout不会改变模型的收敛特性,收敛曲线几乎一致,同时具有更优的性能 。最后贴上所得dropout使用方案对SwinIR性能影响,见下图。可以看到:采用Dropout训练后,SwinIR的性能得到了进一步提升,最高提升达0.46dB 。这进一步说明了所得方案的通用性。

0 人点赞