论文链接:https://arxiv/abs/2002.10191
分享的这篇文章来自于AAAI2020,文章的整个思路并不难理解。文章的idea来自于我们人类对相似图像的识别。一般来说,我们识别相似的图像,一方面是去找到图像中特殊的区域来进行识别,另一方面是通过比较图像对来有效地得到对比线索。这篇论文就是从后者获得的灵感。
文章提出了Attentive Pairwise Interaction Network (API-Net),该网络可以通过交互逐步识别一对细粒度的图像。
思维导图
Model
整个的网络如上图所示,简单说一下流程如下:
- 在训练阶段,输入一对图像对到backbone中,分别提取特征,得到对应的特征向量 x 1 , x 2 x_1,x_2 x1,x2,然后我们得到一个 mutual vector x m ∈ R D x_m\in \Bbb{R}^{D} xm∈RD
- 我们将 x m x_m xm与 x i x_i xi按通道进行点乘,即用 x m x_m xm查找哪个通道可能包含对比线索,然后再通过sigmoid函数,得到gate vector g i ∈ R D g_i\in \Bbb{R}^{D} gi∈RD
- 然后再gate vector 的指导下进行成对的交互,交互后的向量放入softmax classifier中得到损失函数。
上图中的黄色部分是网络的核心部分, Attentive Pairwise Interaction(API),它是一个即插即用的模块,只在训练的过程中存在,在测试的时候,单图像进行测试,图像通过backbone提取特征向量之后,直接放入softmax classifier中,得到得分向量用于标签预测。
Attentive Pairwise Interaction(API)
这是网路的核心部分,但是并没有很复杂,它主要由三部分组成。
- Mutual Vector Learning.
- Gate Vector Generation.
- Pairwise Interaction
下面详细的介绍一下这三个部分,以更好的来理解文章(个人拙见,有不完备的地方还请路过的大佬指教)。
Mutual Vector Learning. 这是一个很简单的部分,输入一对图像到backbone,提取对应的特征向量
x
1
,
x
2
∈
R
D
x_1,x_2\in \Bbb{R}^{D}
x1,x2∈RD,然后我们通过下式得到一个mutual vector
其中
f
m
f_m
fm是一个
x
1
,
x
2
x_1,x_2
x1,x2的映射函数,一个简单的MLP在实验中就可以产生很好的效果。这个操作,我认为就是将
x
1
,
x
2
x_1,x_2
x1,x2中的discriminative domain放入
x
m
x_m
xm中。它的特征通道中通常包含一些 high-level contrastive clues。
Gate Vector Generation. 从其model的图像中,也可以很明显的看出它是怎么产生的,在上一部分,我已经得到了mutual vector
x
m
x_m
xm,然后将其与
x
i
,
i
∈
{
1
,
2
}
x_i,i\in \{1,2\}
xi,i∈{1,2}按通道进行点乘,再将其添加到sigmoid中,产生gate vector
g
i
∈
R
D
g_i \in \Bbb{R}^{D}
gi∈RD,
那么
g
i
g_i
gi有什么深层次的含义呢?我觉得它是用每个
x
i
x_i
xi的discriminative attention来强调语义上的不同。
Pairwise Interaction. 我们在肉眼识别细粒度图像的时候,不仅仅是要关注于每个图像中突出的部分,还要观察彼此的不同部分,基于此,论文通过residual attention引入了交互机制。
x
i
s
e
l
f
∈
R
D
x^{self}_i\in \Bbb{R}^{D}
xiself∈RD表示的是通过自身的gate vector强调的,
x
i
o
t
h
e
r
∈
R
D
x^{other}_i\in \Bbb{R}^{D}
xiother∈RD表示的是通过一对中其他的gate vector激活的。
Training
API模块最后输出了4个attentive features
x
i
j
x_i^{j}
xij,然后我们将其输入到softmax分类器中,
p
i
j
∈
R
C
p_i^{j}\in \Bbb{R}^{C}
pij∈RC是预测的得分向量,C是预测类别数。
Loss Function.
第一个
L
c
e
\mathcal{L}_{ce}
Lce是cross entropy loss,第二个
L
r
k
\mathcal{L}_{rk}
Lrk是score ranking regularization。
Cross Entropy Loss
这种损失能够使API-Net在标签
y
i
y_i
yi的监督下逐步的识别出所有的attentive features
x
i
j
x_i^{j}
xij。
Score Ranking Regularization.
p
i
j
(
c
i
)
p_i^{j}(c_i)
pij(ci)是预测的向量
p
i
j
p_i^{j}
pij中获得的分数,
c
i
c_i
ci是于image
i
i
i的ground truth label相关的对应索引。这个损失的目的是,让
x
i
s
e
l
f
x_i^{self}
xiself仅仅通过它自己的gate vector激活。
论文的设计上的主要内容差不多就是这样,那么有一个问题就是,训练图像的pairs是怎么构建的?
Pair Construction.
在a batch中随机的采样
N
c
l
N_{cl}
Ncl个类别,对于每个类别,我们随机的采样
N
i
m
N_{im}
Nim个图像,然后将这些图像输入到backbone中去提取特征向量,根据Euclidean distance将其特征与batch中的其他特征进行比较,论文中说的是每张图片能够构建两对,它的特征和batch中最相似的特征,这样的话最后产生的就是
2
×
N
c
l
×
N
i
m
2\times N_{cl}\times N_{im}
2×Ncl×Nim个pairs。这个地方不是很明白,两个特征是有顺序的么?有的话那应该的确是两对,如果不是有顺序的话,那这个2对是怎么产生的呢?我觉得在这个地方处理的时候,应该不是很简单。
更多推荐
Learning Attentive Pairwise Interaction for Fine-Grained Classification论文解读
发布评论