注意力机制背后的最初想法是取代简单的平均输出
简单的平均输出:
y
∗
=
n
−
1
∑
i
=
1
n
y
i
y^*=n^{-1}sumlimits_{i=1}^{n}y_i
y∗=n−1i=1∑nyi
引入回归模型后对
x
x
x的标签的预测值为:
y
∗
=
∑
i
=
1
n
α
(
x
,
x
i
)
y
i
y^*=sumlimits_{i=1}^{n}alpha(x,x_i)y_i
y∗=i=1∑nα(x,xi)yi
其中的加权为:
α
(
x
,
x
i
)
alpha(x,x_i)
α(x,xi)表示
x
i
x_i
xi和
x
x
x的相关性,
x
i
x_i
xi属于训练集的向量,
y
i
y_i
yi表示训练向量的对应标签。
权重的原始形式之一是由核K定义的,它可以被视为一个得分函数,估计向量
x
i
x_i
xi和
x
x
x的相关性。权重公式如下:
α
(
x
,
x
i
)
=
K
(
x
,
x
i
)
∑
j
=
1
n
K
(
x
,
x
j
)
alpha(x,x_i)=frac{K(x,x_i)}{sum_{j=1}^{n} K(x,x_j)}
α(x,xi)=∑j=1nK(x,xj)K(x,xi)
| 符号 | 含义 |
|---|---|
| X X X | 包 |
| I I I | 实例 |
| N N N | 包个数 |
| m k m_k mk | 第 k k k个包中实例的个数 |
| ( x i , y i ) (x_i,y_i) (xi,yi) | 第 i i i个实例在包中的坐标 |
| N i ⊂ M mathcal{N}_isubsetmathcal{M} Ni⊂M | 第 i i i个小块的邻居的索引集 |
| P = P 1 , … , P C mathcal{P}={P_1,dots,P_C} P=P1,…,PC | 模板的集合 |
-
最左边的图片表示一个包,其中的每一个小块表示包中的每一个实例,假设其中有 m m m个实例,使用两个不同颜色的高亮色块表示第 i i i个实例 I i I_i Ii和第 j j j个实例 I j I_j Ij。
-
所有小块(实例)都被输入经过训练的神经网络,使用一维卷积计算其嵌入 F i F_i Fi,目的是降低实例 I i I_i Ii的维度:
F i = C o n v ( I i ) , i = 1 , … , m . F_i=Conv(I_i),i=1,dots,m. Fi=Conv(Ii),i=1,…,m. -
我们使用 ( x i , y i ) (x_i,y_i) (xi,yi)表示在整个图像中第 i i i个小块的坐标。
使用 M = { 1 , … , m } mathcal{M}={1,dots,m} M={1,…,m}表示整幅图像中所有小块的索引集。
第 i i i个小块的邻居的索引集 N i ⊂ M mathcal{N}_isubsetmathcal{M} Ni⊂M为:
N = { j ∈ M ∣ 0 < max ( ∣ x i − x j ∣ , ∣ y i − y j ∣ ) ≤ d } mathcal{N}={jin mathcal{M}|0j∈M∣0 d d d可以是任意值,在本实验中 d d d的取值为1, -
邻居的使用可以改善分类结果,这里我们引入注意机制,计算 I i I_i Ii的邻居联合嵌入 B i B_i Bi为:
B i = ∑ j ∈ N i α j ( i ) F j B_i = sumlimits_{jinmathcal{N}_i}alpha^{(i)}_{j}F_j Bi=j∈Ni∑αj(i)Fj -
根据第实例 I i I_i Ii的第 j j j个邻居的权重 α j ( i ) alpha_j^{(i)} αj(i)
α j ( i ) = s o f t m a x ( s ( i ) ) = e x p ( s j ( i ) ) ∑ t e x p ( s t ( i ) ) alpha_j^{(i)}=mathbf{softmax}(s^{(i)})=frac{exp(s_j^{(i)})}{sum_texp(s_t^{(i)})} αj(i)=softmax(s(i))=∑texp(st(i))exp(sj(i))
其中 s j ( i ) s_j^{(i)} sj(i)是将两个向量 F i F_i Fi和 F j F_j Fj映射到标量的注意力评分函数:
s j ( i ) = s c o r e n b ( F i , F j ) = F T t a n h ( V n b F j ) s_j^{(i)}=mathbf{score}_{nb}(F_i,F_j)=F^Ttanh(V_{nb}F_j) sj(i)=scorenb(Fi,Fj)=FTtanh(VnbFj)
其中 V V V是可学习参数的矩阵 -
总之,我们为每个 F i F_i Fi得到一个嵌入 B i B_i Bi,其中包含关于邻居的信息。将第 i i i个实例的嵌入与邻域 B i B_i Bi的联合嵌入串联起来,得到嵌入 T i T_i Ti:
T i = ( F i , B j ) T_i=(F_i,B_j) Ti=(Fi,Bj)
串联操作在图中用符号⊕表示. 每个包现在都由一组嵌入 T i T_i Ti表示。
该算法提出的另一个重要概念是一组嵌入模板,这些模板被视为可学习向量。此外,模板数量是超参数C,其值决定分类质量。模板可以被视为应用于嵌入Ti集的多重关注的实现。由于神经网络的初始化规则不同,它们是不同的网络。
使用
P
=
P
1
,
…
,
P
C
mathcal{P}={P_1,dots,P_C}
P=P1,…,PC表示模板的集合,然后,每个template attention产生相应的聚合嵌入
E
k
E_k
Ek:
E
k
=
∑
i
=
1
m
β
k
(
k
)
T
i
,
k
=
1
,
…
,
C
E_k=sumlimits_{i=1}^{m}beta_k^{(k)}T_i,k=1,dots,C
Ek=i=1∑mβk(k)Ti,k=1,…,C
其中
β
k
(
k
)
=
s
o
f
t
m
a
x
(
⟨
s
c
o
r
e
(
P
k
,
T
i
)
⟩
i
)
beta_k^{(k)}=mathbf{softmax}(langle score(P_k,T_i)rangle_i)
βk(k)=softmax(⟨score(Pk,Ti)⟩i)
第 k k k个聚合嵌入 E k E_k Ek是图像中具有邻域的所有小块(实例)嵌入的加权平均值,其权重由第 k k k个模板定义。换句话说,第 k k k个聚集嵌入相对于第 k k k个模板对整个图像或包进行特征化。有关所有面片及其相邻面片的信息包含在 C C C个向量 E 1 , … , E C E_1,dots,E_C E1,…,EC中。
- 与所有
C
C
C个模板相对应的聚合嵌入
E
k
E_k
Ek被分组到与整个图像或袋子和所有模板相对应的总向量
Z
Z
Z中,
Z = ∑ k = 1 C γ k E k Z=sumlimits_{k=1}^{C}gamma_kE_k Z=k=1∑CγkEk
其中:
γ k = s o f t m a x ( ⟨ s c o r e ( G , E k ) ⟩ k ) gamma_k=mathbf{softmax}(langle score(G,E_k)rangle_k) γk=softmax(⟨score(G,Ek)⟩k)
G G G是训练向量的全局模板。



