今天在找论文时,看到一篇比较新奇的论文,在这里跟大家分享一下,希望可以给一些人提供一些思路。虽然现在Transformer 比较火,在分割上面也应用的比较多,但是我一直不喜欢用,其中一个原因是结构太复杂了,平时我主要用一个sel-attention 感觉都有点复杂了,如果用多头会更复杂。虽然网上有很多人提供了各种解决方法,但是都没有从根本上解决。直到我看到这篇文章。与自然语言不同,视觉图片中的特征数量更多,由于自注意力是平方复杂度,直接进行全局自注意力的计算往往会带来过高的计算量。针对这一问题,先前的工作通常通过减少参与自注意力计算的特征数量的方法来降低计算量。例如,设计稀疏注意力机制(如PVT)或将注意力的计算限制在局部窗口中(如Swin Transformer)。尽管有效,这样的自注意力方法很容易受到计算模式的影响,同时也不可避免地牺牲了自注意力的全局建模能力。
与这些方法不同,线性注意力将Softmax解耦为两个独立的函数,从而能够将注意力的计算顺序从(query·key)·value调整为query·(key·value),使得总体的计算复杂度降低为线性。然而,目前的线性注意力方法要么性能明显不如Softmax注意力,要么引入了过多的额外计算量导致模型推理速度很慢,难以实际应用。
当然如果直接使用这个版本,网络准确性并没有想象的那么高。后面作者提出个一些解决方法,如果大家想了解这些细节,可以直接看论文。
这篇文章给我最大的感受是:原来不一定要按照传统的样式进行,也可以换一种方法。不能总是一成不变。