继续新一周的超分论文学习
想象一下,一位侦探要在一张拥有数百万嫌疑人(图像像素)的巨大照片中找出关键线索。传统Transformer就像一位勤奋但低效的侦探,他会逐一询问照片中的每一个人,这无疑是一场噩梦。而PFT则是一位拥有“渐进式推理”能力的神探:
- 第一轮排查:他先快速扫视全场(第一层标准注意力),锁定几个大致可疑的区域(高权重token)。
- 第二轮聚焦:他不再理会那些明显无关的路人(低权重token被过滤),只深入调查上一轮锁定的可疑区域,并从中找出最关键的几个嫌疑人(top-K选择)。
- 最终收网:如此往复,他的调查范围越来越小,目标越来越明确,最终精准定位真凶(重建出最清晰的细节)。
PFT就是这个“神探”,它通过渐进式聚焦注意力,让计算资源都用在“刀刃”上。
- 本周论文: Progressive Focused Transformer for Single Image Super-Resolution
- 来源: CVPR 2025
- 链接: https://arxiv.org/pdf/2503.20337
- 代码: https://github.com/LabShuHangGU/PFT-SR
论文要解决的问题
核心思想:在计算attention map的过程中,下一层的attention map需结合上一层的attention map结果。上一层中,权重较低的token在下一层的计算中会被跳过,从而降低计算复杂度并提高相似token的权重。
我们主要理解和关注其中的方法论部分,所以引言和实验部分就省略掉了,有兴趣的小伙伴可以自己下载查看。
文章贡献
根据文章内容,作者认为本文的贡献如下:
- 提出渐进式注意力思想(progressive focused attention, PFA),以乘积的方式从上一层继承注意力权重,避免低相似性token的计算,提高了高相似性token的权重。
- 实例化PFT(Progressive Focused Transformer)。
- 验证有效SOTA。
参考开头案例,传统transformer存在的问题:
传统的或局部的transformer-based方法有两个问题:1. 计算量大,窗口限制信息获取;2. 无关token之间的计算
所提出的PFT:
渐进式聚焦attention,当前层继承上一层的attention map,跳过低相似token的计算,提高高相似token的权重
方法论
该网络的总体设计如下图(截自论文):

上图中,PFAL表示包含PFA的一层,一个PFA Block包含M个PFAL。图中红线部分为 索引矩阵 I 的传递。整体结构与transformer的 encoder类似,只是替换了原transformer中的 attention计算部分为 PFA。
需要注意,图中省略了移位窗口的操作:
在每一个 block 中,针对层数索引的奇偶性,奇数层不进行循环移位直接进行窗口划分,偶数层进行循环移位后,再进行窗口划分。
注意力计算时使用 LePE 位置编码。
超分的代码基本都分为三大步:浅层特征提取、深层特征提取、上采样重建。
浅层特征提取基本都是通过一个卷积层实现,而上采样重建也相对固定。因此,绝大部分的论文的核心创新点都在深层特征采样部分。这篇博客也只是聚焦此部分。
本文的方法训练了两个模型,经典超分模型和轻量级的超分模型,具体参数如下:
| 配置项 | PFT (经典) | PFT-light (轻量) |
|---|---|---|
| 块数 | 6 | 5 |
| 每块层数 | [4,4,4,6,6,6] | [2,4,6,6,6] |
| 注意力头 | 6 | 4 |
| 通道数 | 240 | 52 |
| 窗口大小 | 32×32 | 32×32 |
| 保留注意力值 | [1024,256,128,64,32,16] | [1024,256,128,64,32] |
渐进式聚焦注意力 PFA
有两项改进:
- 利用上一层的attention map来更好的加权特征,相关性高的token的权重将会加强;
- 利用上一层的attention map来识别不相关的特征,节省开销,扩大窗口。
具体而言:
-
渐进注意力跨层(Progressive Attention Across Layers)
提出原因:标准注意力只会计算当前层的信息,不关注上一层的结果;标准的相似度计算只会计算相似度,没有加强或抑制权重的功能
A l = N o r m ( A l − 1 ⊙ A c a l l ) A^l = Norm(A^{l-1} \odot A_{cal}^l ) Al=Norm(Al−1⊙Acall)
其中 A c a l l A_{cal}^l Acall 为当前层的 普通注意力计算结果; A l − 1 A^{l-1} Al−1 为上一层的 attention map;Norm表示按行进行归一化,保证每行和为1。
此处归一化注意:并非所有的归一化操作都能保证 和为1。根据后文描述,此处的归一化操作应为 softmax归一。
这个公式就像是 “父子相传” ,上一代的认知( A l − 1 A^{l-1} Al−1)会直接影响并修正下一代对事物的判断( A l A^l Al),让好的特质(高相似性)不断强化。
通过上述操作实现对高相似度token权重的加强,低相似度token权重的抑制
-
渐进式聚焦注意力(Progressive Focused Attention)
根据上一层的 attention map A l − 1 A^{l-1} Al−1 ,在计算前就可以识别不重要的位置信息,从而计算 稀疏矩阵乘法(Sparse Matrix Multiplication,SMM)
A s c l = S o f t m a x ( Ψ ( Q l , ( k l ) T , I l − 1 ) ) A_{sc}^l = Softmax(\Psi(Q^l, (k^l)^T, I^{l-1})) Ascl=Softmax(Ψ(Ql,(kl)T,Il−1))
其中 Ψ \Psi Ψ 表示SMM; I l − 1 I^{l-1} Il−1 表示稀疏索引矩阵;
Ψ \Psi Ψ 定义为:
在 A s c l A_{sc}^l Ascl 的计算中,对于第 i 行,第 j 列的元素 A s c l ( i , j ) A_{sc}^l(i,j) Ascl(i,j) ,其值为: Q l ( i , : ) ⋅ K l ( j , : ) T Q^l(i,:) \cdot K^l(j,:)^T Ql(i,:)⋅Kl(j,:)T 的计算结果,仅当 I l − 1 ( i , j ) = 1 I^{l-1}(i,j) = 1 Il−1(i,j)=1 时执行,即根据上一层传递过来的 A l − 1 A^{l-1} Al−1 生成 I l − 1 I^{l-1} Il−1 ,其他位置设置为 0
若索引矩阵 I 全为1,则该公式等价于普通注意力的计算公式
综合而言,PFA的公式包含三部分(此部分公式编号具体参考原文,不再列出):
-
当前层的attention map计算,即公式4;
-
计算渐进权重,即公式5中第二项;此处需要注意,公式5中第二项与公式3相比多了一个 top-k 的操作,原因在于:无论如何进行归一操作,始终不可能出现 0 元素,因此通过 top-k sparse attention,来选定k个元素不为0,其余为0,从而生成稀疏矩阵A,进而得到具有 0 和 1 的索引矩阵 I。
公式5中第二项 与 公式3 的关系:本质表示一个东西,公式3只是在 层 的层面宏观展示计算过程,公式5中第二项则为具体的实际计算过程
公式5中第二项 k的取值:
根据层数逐渐递减。对第一层而言,k取N,表示全部保留。从第二层开始 K l = α K l − 1 K^l = \alpha K^{l-1} Kl=αKl−1,其中 0< α <1,称为 聚焦比率(focus ratio)
为什么需要top-k操作?
这就像我们读书时划重点,不能满篇都是高亮。PFA的top-k操作就是只划出当前最重要的几个“知识点”(token),下一层学习时就直接看这些重点,其他的暂时忽略,从而大大节省了“阅读”(计算)时间。
-
根据当前层的最终attention map结果(上一步的结果),生成二维索引矩阵 I,与 A 同步传递给下一层,即公式5中的第三项。
之后,根据当前层的 attention map,当前层的 索引矩阵,当前层的 V,通过SMM计算当前层的输出:
$ O^l = \Psi(A^l, V^l, I^l)$
对于边界情况,即第一个block的计算时,由于没有前一项的传递信息,故初始化 A0 和 I0 为全1矩阵,来计算 A1,即标准的注意力计算模块。
-
结语
总体而言,PFT通过一种“代代相传,逐步聚焦”的注意力机制,巧妙地实现了效率与性能的双重提升。这种方法思想非常优雅,为设计高效的Transformer模型提供了新的思路。作者已将源码开源,感兴趣的同学强烈建议亲自去跑一跑。
1032

被折叠的 条评论
为什么被折叠?



