P2T 金字塔池化

TPAMI2022

P2T金字塔池化transformer,从标题中可以看出,金字塔也就是多尺度建模的思想

简介

transformer在各项视觉任务中取得了成功,但transformer的复杂度是序列长度的二次方,这导致很大的计算开支

论文一贯的写作方式,开门见山,先夸一下transformer,然后再指出它的问题,二次方的计算复杂度

论文动机

看了这么多注意力机制,每一篇论文的动机都大差不差,基本上没有让人很亮眼的那种,都是在做改进,然后讲好故事 简单回顾一下注意力机制常见的动机有哪些,复杂性,局部性,稀疏性,多尺度性,全局性

📍 启示:把这些动机迁移到自己的任务上去,换一个新的应用场景

接着回到本文,针对这个问题,目前普遍的解决方法是使用单层池化进行采样,这样可以减少token序列的长度,但单层池化得到的特征不够强大,因此本文从池化的角度来改进视觉transformer

直接点出主流的解决方法,通过池化进行下采样操作的,从而来降低复杂度,紧接着进行说明,单层池化能力不够强,作者的想法是改进池化,让池化再次伟大

此外作者观察到,金字塔池化有很强的上下文提取能力,并且仍未在骨干网络的设计中被探索过,因此作者将金字塔池化引入多头注意力机制中,既减少了token序列的长度,还能提取到更好的上下文语义特征,在一系列的任务上验证了其先进的性能

直接阐明本文的方法: 金字塔+池化

  • 金字塔相当于多尺度建模 → 多尺度的池化机制,并且将它引入了注意力机制中,作为模型的骨干来提取特征

两个优点:

(1)能显著降低复杂度

(2)能够提取多尺度的上下文语义特征

结构图

image-20250424101839377 (左图)标准的transformer结构,多头注意力机制,然后残差连接正则化,然后再接一个前馈神经网络

(右图)作者提出的金字塔池化注意力,输入特征作为query矩阵,然后输入特征通过执行多个尺度的池化,进行拼接,作为key和value矩阵,然后QKV,放入到多头自注意力机制中进行计算

深入剖析作者的动机

池化的必要性

首先第一个池化的必要性,首先池化的历史非常悠久,自卷积神经网络诞生以来就一直存在

在以前的卷积神经网络中,通常的都是先卷积再池化,再卷积再池化

池化用来降低维度来做下采样,并且计算代价非常小,再加上它的窗口大小设置,非常灵活,因此它是构建多尺度架构的最佳选择

金字塔池化的应用

第二个金字塔池化的应用,在CV领域已经是一个共识性的做法,这篇论文也并不是开拓者,但是直接将金字塔网络作为骨干网络,作为主要的特征提取模块,这方面的研究还是很少的

也就是说一般使用金字塔池化就是简单的降维,而作者这里用它来作为主干网络来提取特征的,充分挖掘池化的潜力

金字塔池化的优点

第三个金字塔池化的优点,首先通过构建多个池化层,控制窗口的大小,来决定需要提取的特征尺度范围

一般来说,如果输入的序列很长,就可以通过控制池化窗口,来显著的降低序列长度,并且是使用拼接后的序列长度,也要远远小于输入的序列长度,这样的话在计算注意力矩阵的时候,就能够把二次方的计算复杂度显著降低

总结

金字塔池化,不但能够提高计算效率,还能够提供更强的多尺度信息提取能力

池化的创新

👾 本站运行时间:
发表了59篇文章 · 总计11万6千字
使用 Hugo 构建
主题 StackJimmy 设计