论文略读-Activating More Pixels in Image Super-Resolution Transformer
动机
1、目前的Transformer网络(如SWinIR)只能利用有限的空间范围的输入信息,这意味着Transformer的潜力在现有网络中仍然没有得到充分利用。
2、在SwinIR的中间特征中会出现阻塞伪影,这说明移位窗口机制不能完美地实现跨窗口信息交互。
方法
1、设计了一种新的混合注意转换器(Hybrid Attention Transformer, HAT),它结合了自注意(单特征图)、通道注意(全局特征信息)和一种新的重叠交叉注意(多特征图)来激活更多的像素,以便更好地重建。
2、提出了一种有效的同任务预训练策略,以进一步挖掘SR Transformer的潜力,并显示大规模数据预训练对任务的重要性。
具体来说:
1、提出了一种混合注意转换器,即HAT。我们的HAT结合了通道自注意和自注意两种方案,利用了通道自注意的全局信息利用能力和自关注的强大代表能力。此外,我们引入了重叠交叉注意模块,实现了相邻窗口特征之间更直接的交互。得益于这些设计,我们的模型可以激活更多的像素进行重建,从而获得显著的性能提升。
2、由于transformer不像cnn那样具有归纳偏倚,因此大规模数据预训练对于释放此类模型的潜力非常重要。所以本文提供了一种有效的同任务预训练策略。与IPT[6]使用多个恢复任务进行预训练和EDT[27]使用多个退化级别进行预训练不同,我们直接在同一任务上使用大规模数据集进行预训练。我们认为大规模数据才是预训练真正重要的。
为什么Swin Transformer比CNN更有效
为了揭示其工作机制,我们使用了一种诊断工具-LAM[15],这是一种为sr设计的归因方法。使用LAM,我们可以判断哪些输入像素对所选区域贡献最大。
红色标记的点是有助于重建的信息像素。直观地看,利用的信息越多,可以得到的性能就越好。(DI越高,表示利用像素的范围越广)
然而,对于基于Transformer的方法-SwinIR,其LAM并不比RCAN(CNN)显示更大的范围。
可能的原因:
1、SwinIR具有比CNN更强的映射能力,因此可以使用更少的信息来获得更好的性能。
2、由于使用的像素范围有限,SwinIR可能会恢复错误的纹理,我们认为如果它可以利用更多的输入像素,它可以进一步改进。
改进:
因此,我们的目标是设计一个网络,在激活更多像素进行重建的同时,可以利用类似的自关注。如图2所示,我们的HAT几乎可以看到图像上所有的像素,并恢复正确清晰的纹理。
此外,我们可以在SwinIR的中间特征中观察到明显的阻塞伪影,如图3所示。这些伪影是由窗口分割机制造成的,这表明移位的窗口机制在构建跨窗口连接方面效率低下。一些针对高级视觉任务的研究[13,20,44,60]也指出,增强窗口之间的连接可以改进基于窗口的自注意方法。因此,我们在设计方法时加强了跨窗口信息的交互,并且显著减轻了HAT获得的中间特征中的阻塞伪影。(更平滑了,不会突然加重)
网络结构
浅层特征提取、深层特征提取和图像重建。
概述:
对于给定的低分辨率(LR)输入ILR∈RH×W ×C in,我们首先利用一个卷积层提取浅低特征F0∈RH×W ×C,其中Cin和C表示输入和中间特征的通道号。然后,利用一系列残余混合注意组(RHAG)和一个3 ×3卷积层HConv(·)进行深度特征提取。之后,我们添加一个全局残差连接,融合浅层特征F0和深层特征FD∈RH×W ×C,然后通过重构模块重构高分辨率结果。如图4所示,每个RHAG包含几个混合注意块(HAB),一个重叠的交叉注意块(OCAB)和一个带有残余连接的3 ×3卷积层。对于重建模块,采用像素洗牌方法[47]对融合特征进行上采样。我们简单地使用L1 loss来优化网络参数。
混合注意力块(Hybrid Attention Block)
1、使用通道注意力时,会激活更多像素,因为涉及到全局信息来计算通道注意力权重。且卷积可以帮助Transformer获得更好的视觉表现或实现更容易的优化,标准变压器块中加入了一个基于通道注意力的卷积块,以增强网络的表示能力。通道注意力块(CAB)
为了避免CAB和MSA在优化和视觉表示上可能发生的冲突,
在CAB的输出上乘以一个小常数α。
计算过程:
CAB由两个标准卷积层组成,其中一个是GELU激活[17],另一个是信道注意(CA)模块。由于基于transformer的结构通常需要大量的通道来进行令牌嵌入,因此直接使用恒定宽度的卷积会产生很大的计算成本。
因此,我们通过一个常数β来压缩两个卷积层的通道数。对于具有C通道的输入特征,将第一个卷积层后的输出特征的通道数压缩为C/β,然后通过第二层将该特征扩展为C通道。接下来,一个标准的CA模块[68]被用来自适应地重新调整信道特征。(先压缩channel进入激活,然后恢复channel进入CA)
重叠交叉注意块(Overlapping Cross-Attention Block)
结构与SWin Transformer类似,但是使用了不同的窗口大小划分特征。
新窗口大小:
标准窗口分区可以看作是一个滑动分区,核大小和步长都等于窗口大小M.相反,重叠窗口分区可以看作是一个滑动分区,核大小等于Mo,而步长等于m,则使用大小为γM/2的零填充。(γ 重叠比)
相对位置偏差:
区别FMT:
在Feature Modulation Transformer论文中,其取消了mask attention 增加了相邻块以及非相邻块信息交互,而这里使用重叠交叉注意力块直接增加相邻块以及非相邻块之间的信息交互。
区别MOA:
多分辨率重叠注意(MOA)模块执行类似的重叠窗口分区,但我们的OCA与MOA有根本不同,因为MOA使用窗口特征作为令牌计算全局注意力,而OCA使用像素令牌计算每个窗口特征中的交叉注意力。(因为本文将每个像素视为一个用于嵌入的标记,即将补丁大小设置为1,因为可以直接建立各像素间的依赖关系)
The Same-task Pre-training
最近的研究[6,27]也证明了预训练对低水平视觉任务是有益的。IPT[6]强调使用各种低级任务,如去噪、去训练、超分辨率等,而EDT[27]则利用特定任务的不同退化水平进行预训练。这些工作的重点是研究多任务预训练对目标任务的效果。
实验表明基于相同的任务在更大规模的数据集(即ImageNet[9])上进行预训练,预训练的有效性更多地取决于数据的规模和多样性。
例如,当我们想要训练一个×4SR模型时,我们首先在ImageNet上训练一个×4 SR模型,然后在特定的数据集(如DF2K)上对其进行微调。
本文提出的策略,即同任务预训练,更简单,同时带来更多的性能提升。值得一提的是,**充分的训练迭代进行预训练,适当的小学习率进行微调,对于预训练策略的有效性非常重要。**我们认为,这是因为Transformer需要更多的数据和迭代来学习任务的一般知识,但需要较小的学习率进行微调,以避免过度拟合到特定的数据集。
实验
同任务预训练效果:
多任务预训练可能会削弱网络在特定退化上的恢复性能,而同任务预训练可以最大限度地利用大规模数据带来的性能增益。
1、相同类型的网络(即CNN或Transformer),网络容
量越大,预训练获得的性能收益就越多。
2、虽然参数较少,但与RRDBNet相比,SwinIR从预训练中获得了更大的性能提升。这表明Transformer需要更多的数据来挖掘模型的潜力。
3、HAT从预训练中获得的收益是最大的,这说明了对如此大的模型进行预训练策略的必要性。
配备了大模型和大规模数据后,我们发现该任务的性能上界得到了显著扩展。
(我看来是通用能力与专用能力的区别,即CPU与ASIC的区别,CPU在每个任务上都不错,而ASIC只有单个任务性能非常好)
QA
通道注意与窗口注意?
全局统计和强大的局部拟合能力互补
“为什么变形金刚比CNN好”?
一个直观的解释是,这种网络可以受益于自关注机制(只关注自己想要的信息,通过attention score),并利用远程信息。
SWinIR阻塞伪影?
IPT多个恢复任务进行预训练与DET多个退化级别进行预训练?
由于transformer不像cnn那样具有归纳偏倚,因此大规模数据预训练对于释放此类模型的潜力非常重要。
归因分析方法LAM?
采用积分梯度法来探索哪些输入像素对最终性能贡献最大。
像素混合pixel shuffle?
多任务预训练对目标任务的效果?