FLatten Transformer: Vision Transformer using Focused Linear Attention
ICCV 2023
聚焦式线性注意力模块
关于Transformer
在Transformer模型应用于视觉领域的过程中,降低自注意力的计算复杂度是一个重要的研究方向。线性注意力通过两个独立的映射函数来近似Softmax操作,具有线性复杂度,能够很好地解决视觉Transformer计算量过大的问题。 然而,目前的线性注意力方法整体性能不佳,难以实际应用。
将Transformer模型应用于视觉领域并不是一件简单的事情。与自然语言不同,视觉图片中的特征数量更多,由于自注意力是平方复杂度,直接进行全局自注意力的计算往往会带来过高的计算量。针对这一问题,先前的工作通常通过减少参与自注意力计算的特征数量的方法来降低计算量。例如,设计稀疏注意力机制(如PVT)或将注意力的计算限制在局部窗口中(如Swin Transformer)。尽管有效,这样的自注意力方法很容易受到计算模式的影响,同时也不可避免地牺牲了自注意力的全局建模能力。
线性注意力将Softmax解耦为两个独立的函数,从而能够将注意力的计算顺序从(query·key)·value调整为query·(key·value),使得总体的计算复杂度降低为线性。 然而,目前的线性注意力方法要么性能明显不如Softmax注意力,要么引入了过多的额外计算量导致模型推理速度很慢,难以实际应用。
针对目前线性注意力机制的缺陷,论文创新地提出了聚焦的线性注意力模块,具有很强的模型表达能力并且推理速度很快。具体而言,文章从聚焦能力和特征多样性两个方面分析了现有线性注意力机制的缺陷,并分别设计了聚焦函数和矩阵秩恢复模块作为补偿,最终得到了比Softmax注意力性能更好的线性注意力模块。
关于线性注意力
在自注意力计算中,Softmax提供了一种非线性的权重生成机制,使得模型能够更好地聚焦于一些重要的特征。如下图所示,本文基于DeiT-tiny模型给出了注意力权重分布的可视化结果。可以看到,Softmax注意力能够产生较为集中、尖锐的注意力权重分布,能够更好地聚焦于前景物体;而线性注意力的分布则十分平均,这使得输出的特征接近所有特征的平均值,无法聚焦于更有信息量的特征。
个人收获:这个模块主要功能是在不怎么影响性能的情况下降低计算量和计算复杂度。
End
以上仅作个人学习记录使用