本文是关于《Learning Attentive Pairwise Interaction for Fine-Grained Classification》的阅读笔记
(菜鸟一枚见解不对轻喷)
原文链接
可惜代码没开源
阅读前三个问题
Q1:本文解决什么问题?
区别于大多数方法通过学习单个输入图像的区分表示,受人能通过比较图像有效识别对比线索而启发来解决高度混淆的类别之间存在细微差异的细粒度分类问题。
Q2:本文通过什么模型/理论/方法来解决这个问题?
注意力成对交互网络(Attentive Pairwise Interaction Network,API-Net)
Q3:本文的结果
API-Net的表现优于最近的SOTA方法,即CUB-200-2011(90.0%),飞机(93.9%),斯坦福汽车(95.3%),斯坦福狗(90.3%)和 NABirds(88.1%)。(发表于2020.2.24)
注意力成对交互网络(API-Net)
API网络可以模拟人类一样的学习方式,通过逐步识别一对细粒度图像,来学习两者之间的细微差异进行区分。它由三个子模块组成。
互向量学习(Mutual Vector Learning)
输入是一对细粒度图像(具有较高的相似度),通过CNN分别生成两个特征向量 x 1 x_1 x1和 x 2 x_2 x2,之后通过concat层将两个特征向量拼接,再通过MLP生成一个互向量 x m x_m xm。
x
m
=
f
m
(
[
x
1
,
x
2
]
)
.
\ x_m = f_m([x_1,x_2])\,.
xm=fm([x1,x2]).
f
m
(
⋅
)
f_m(\cdot)
fm(⋅)对
[
x
1
,
x
2
]
[x_1,x_2]
[x1,x2]作映射函数
门向量生成(Gate Vector Generation)
x
m
x_m
xm分别对
x
1
x_1
x1和
x
2
x_2
x2作通道积(channel-wise)并经过sigmoid函数生成对应门向量
g
1
g_1
g1和
g
2
g_2
g2
g
i
=
s
i
g
m
o
i
d
(
x
m
⊙
x
i
)
.
i
∈
{
1
,
2
}
\ g_i = sigmoid (x_m\odot x_i)\,. i\in\{1,2\}
gi=sigmoid(xm⊙xi).i∈{1,2}
g
i
g_i
gi以每个
x
i
x_i
xi不同的视图凸显出的差异对了生成了具有判别性的注意力。例如,
g
1
g_1
g1关键区域再于身体,
g
2
g_2
g2的关键区域在于嘴巴。
成对交互(Pairwise Interaction)
激励方式:需要捕捉细微差异,不仅要检查每个图像的突出部分,还要检查另一个图像不同部分。因此通过残差注意力引入一种交互机制。
x
1
s
e
l
f
=
x
1
+
x
1
⊙
g
1
,
x
2
s
e
l
f
=
x
2
+
x
2
⊙
g
2
,
x
1
o
t
h
e
r
=
x
1
+
x
1
⊙
g
2
,
x
2
o
t
h
e
r
=
x
2
+
x
2
⊙
g
1
,
\ x_1 ^{self}=x_1 + x_1\odot g_1\,, \\ \ x_2 ^{self}=x_2 + x_2\odot g_2\,, \\ \ x_1 ^{other}=x_1 + x_1\odot g_2\,, \\ \ x_2 ^{other}=x_2 + x_2\odot g_1\,,
x1self=x1+x1⊙g1, x2self=x2+x2⊙g2, x1other=x1+x1⊙g2, x2other=x2+x2⊙g1,
x
i
s
e
l
f
x_i ^{self}
xiself通过自身的门向量突出了自身的特征,
x
i
o
t
h
e
r
x_i ^{other}
xiother通过成对图像中另一图像的门向量激活了其他部分。
评分排序正则化(Score Ranking Regularization)
这个Score Ranking Regularization有必要提一下(创新的地方)。
引入了铰链损失函数hing loss。
API-Net通过自适应地考虑功能优先级来学习识别对中的每个图像。
实验结果