《Reflash Dropout in Image Super-Resolution》这是篇来自中国科学院深圳先进技术研究院的2022年CVPR的探究型文章,探索了在图像恢复领域如果加入dropout会提供泛化能力和防止协同适应的问题。
论文:阿里云盘分享
目录
介绍
dropout好处
dropout原理
发现
贡献
相关工作
观察
应用到SR网络中
dropout 位置
dropout维度和概率
实验
SR 设置
如何应用到SR网络中
解释
Dropout 帮助阻止 Co-adapting
Dropout 帮助提供泛化能力
适当使用dropout可以使SR(Super-Resolution)网络受益并提高泛化能力
dropout更适合地嵌入在网络末端,并且对于多degradation设置非常有帮助
使用dropout原因
现如今大家都在研究丰富数据的多样性以及网络的能力,但是很少有人尝试去提升training strategy。
过拟合就是一个著名的问题。当网络规模大的时候,模型的泛化能力就会越差。
但是如今过拟合已成为盲SR的主要问题。仅仅增加数据和网络规模就不能持续提高泛化能力。
解释 “盲” : 就是面对未知的数据(测试集或真实场景下的数据)
dropout的机制是禁用某些单元并随机产生许多子网络。每个子网络都能够给出可接受的结果。
SR是一个标准的回归问题,其中网络特征和通道都对最终输出有贡献。如果我们随机丢弃一些特征或像素,输出性能将会严重下降。这就是为什么我们看不到dropout在SR中的应用以及其他低级视觉任务的原因。
通过适当使用dropout,SR模型的性能可以在分布内 (训练集中已知的分布) 和分布外 (测试集中未知的分布) 数据中显着提高
dropout可以帮助SRResNet甚至胜过RRDB,而RRDB的参数则是SRResNet的十倍。添加dropout只是一行代码,并且不会牺牲计算成本。
本文最吸引人的部分不在于实验,而在于解析分析dropout的行为:1、通道显着性图 (channel saliencymap)2、深度退化表示 (deep degradation representation)
SpatialDropout (channel-wise dropout:randomly zero out the entire channels) 制定了一种新的dropout方法,从特征图中消除通道。当输入具有很强的空间相关性时,此方法的性能优于以前的dropout策略。
DropBlock与在完全连接的层上添加dropout的原始方法不同。将dropout应用于残余块 (在卷积层和跳过连接后面),然后探索在网络的不同部分使用dropout。
1、在每层卷积后加入channel-wise dropout,正如预期的那样,性能急剧下降,见图2a,表明回归问题不同于分类问题。在回归中,网络中的每个元素都有助于最终输出,这是一个连续的强度值,但不是离散的类标签。
2、在相同的设置下,我们仅在最后一个卷积层之前添加逐通道dropout。最终性能完全不受影响,见图2b。表明该层中的特征可以被随机掩蔽,这不会影响回归结果。我们还尝试在测试过程中丢弃一些功能,但没有发现明显的性能下降。这些功能会发生什么?这是否意味着回归和分类网络有共同点?
3、训练数据包含multiple-degradation,我们在倒数第二个卷积层添加dropout,效果是在双三次降采样(训练集中有)和最近邻降采样 (训练集中没有) 数据集中测试的。从图2c和2d中,我们可以观察到dropout提高了分布中和分布数据的性能。这表明dropout在一定程度上提高了泛化能力。
dropout的效果取决于1、dropout位置 2、dropout策略
在最终输出层之前使用dropout。使用last-conv来表示此方法。
在网络中间加dropout。作者们将SRResNet的resuidal blocks(16 blocks)分为了4组。每一组包含4个residual blocks。作者选择B4,B8,B12,B16作为典型的dropout插入的位置。
利用multiple dropout layers在residual network中。如图3c中所示。这里对加入了dropout的结构命名为dropped residual blocks。作者设计了3种插入dropped residual blocks的方式命名为all-part, half-part和quarter-part。
dropout最初被用于全连接层,可是在卷积层上涉及到不同维度(元素和通道)。
dropout概率是要丢掉多少比率的元素或者通道,测试一下dropout的概率为10%,20% 和30%。我们还包括在multi-degradation SR中更高的dropout概率 (例如,50% 或70%)。
结果表明,具有逐通道丢弃的last-conv方法不会损害SR网络
分为 单degradation 和 多degradation 两部分,其中multi-degradation使用的是“Real”前缀
使用单个dropout层的情况下,当dropout位置更靠近输出层时,我们可以获得更好的性能。
对于更多dropout层,我们可以观察到更大的性能下降
其中,last-conv方法的性能最好
从图4a和4b可以观察到的,元素式dropout方法倾向于降低性能,而通道式dropout方法通常表现更好
较大的dropout概率将在大多数情况下带来更差的影响
总结:建议在最后一个卷积层之前应用通道式dropout,概率小一点为好(10%?)
co-adapting是指神经网络中的一种依赖关系,比如下一层很依赖上一层的某个特定通道,例如上一层一共有64个通道,但是一家独大,1个通道的数值特别大,而其他通道的数值特别小,这样通道之间就会出现一种不平衡性。而drop-out通过在训练中强制让一些通道失去作用,那么为了保证效果,就会强制让其他通道的能力增强。
高级任务中会存在协同适应(Co-adapting)而导致过拟合,dropout可以防止这一现象而缓解过拟合问题。
作者引入了channel saliency map(CSM)辅助工具。CSM是用来高亮出对于最终的输出起重要决策的因素。想要利用CSM去研究不同的channel对于最终结果的影响。从图6可以看出,64个通道,分别屏蔽某个通道时,CSM越红,下面的特征图越亮,对应的功能越重要,被屏蔽后对PSNR的影响越大。比如屏蔽了最亮的30+的通道,PSNR最低,因为CSM最红,包含的特征越多。说明了SR也存在co-adapting问题。
添加了dropout之后,可以看到CSM从左边的部分红,变成了大都红(个别富裕转向了全面小康),说明dropout可以均衡特征的重要性
为了更进一步地证明这件事,作者zero out了每一个channel。图8证明了Real-SRResNet去掉了dropout后会随着更多chennels被抛弃PSNR values会骤降。但是对于使用了dropout的网络并没有大变化。对于一个带有dropout的模型,PSNR不再依赖许多特定的channels。甚至只有三分之一的channels可以足以支撑性能。这也证明了dropout可以均衡channel的重要性。鲁棒性更好!蓝色部分(未使用dropout的)接近40时,明明drop掉的通道数变多了,但是性能反而上去,而且上去的幅度还挺多,意味着刚好drop掉了一些不重要的通道或者是噪声比较多的通道。
深度退化表示 (DDR)揭示了SR网络可以将输入分类为不同的 “降级语义”。在图9a中,具有不同颜色的点指示具有不同降级的输入。具有相同降级的输入 (具有相同颜色的点) 将被聚类。如果得到的簇很好地划分,则网络倾向于仅处理特定的降级簇而忽略其他簇,从而导致泛化性能较差。如果聚类趋势较弱,则网络可以很好地处理所有输入。例如,从图9a和图9b的比较中可以观察到,没有dropout的原始SRResNet的聚类程度大于Real-SRResNet。这说明出现更多降级的网络具有更显着的泛化能力。
总结:如果网络能将多种degradation 很好的分类说明泛化能力很差,如果分类能力很弱说明泛化能力很强。
可以使用Calinski-Harabaz指数 (CHI) 来测量簇的分离程度。较低的CHI意味着较弱的聚类程度,这也表明较好的泛化能力。在图9d中,可以观察到CHI随着dropout概率的增加而降低。结果表明,dropout提高了SR网络的泛化能力。
如果觉得对你有帮助的话:
点赞,你的认可是我创作的动力!
收藏,你的青睐是我努力的方向!
评论,你的意见是我进步的财富!