Ripple Attention for Visual Perception with Sub-quadratic Complexity
论文地址:
整体思路以及计算方式
本文首先利用了Linear Attention,然后对Vit中的Attention提出局部性假设:每个q交互的k限制在某个范围内,利用动态规划算法计算该范围内的结果,然后计算加权和,整体计算式如下:
Oij=ϕ(qij)⊤∑r=0Rαr(i,j)∑(m′,n′)∈Nr(i,j)ϕ(km′n′)ϕ(qij)⊤∑r=0Rαr(i,j)∑(m,n)∈Nr(i,j)ϕ(kmn)vmn⊤ 这里的下标ij表示第i行,第j个patch,Nr(i,j)表示:
Nr(i,j)={(m,n)∣∣m−i∣+∣n−j∣≤r} 动态规划算法见论文。
时间复杂度
利用动态规划算法,时间复杂度可达O(nR)。
训练以及loss
不变。
代码
暂无。
实验以及适用场景
该Attention基于VIT设计,所以实验也是CV相关,总体效果还可以。
细节
反向传播也使用了DP。
简评
总体来说是个挺巧妙的算法,而且也可以向nlp任务扩展。