极简笔记 语义分割中的self-attention变种模型
Self-attention模块在近年来取得了比较不错的成功,其核心公式就是:
y i = 1 C ( x ) ∑ ∀ j f ( x i , x j ) g ( x j ) y_i=\frac{1}{\mathcal{C}(x)}\sum_{\forall j}f(x_i,x_j)g(x_j) yi=C(x)1∀j∑f(xi,xj)g(xj)
与以往的卷积网络项目,self-attention module的核心在于计算了全图特征的相似性 f ( x i , x j ) f(x_i,x_j) f(xi,xj)(当然这个相似性计算方式可以自己各种定义啦),然后将全图的特征 g ( x j ) g(x_j) g(xj)按照相似性进行聚合得到当前位置 i i i的聚合后的特征。
这样一个模块可以直接套在任何网络上,当然也包括所有semantic segmentation模型。但是只加这么一点肯定还不够发文章,于是各种针对公式和模块结构的魔改就开始了:
PSANet
https://hszhao.github.io/papers/eccv18_psanet.pdf
原公式的相似性是一个双向的相似性计算,将 f ( x i , x j ) f(x_i,x_j) f(x