在分类问题中,细分类是一个很有挑战性的问题,鸟和人的区别很大,但是不同品种的鸟之间,区别就不是很大了,具有高度混淆性,即使是人,有时候也很难分辨。另外分类越细,每个类别的数据量就会越少。
下面这篇发表在AAAI2020的文章,提出了一个新的网络结构来解决这个问题。Attentive Pairwise Interaction Network (API-Net),这个网络的名字包含了这个网络设计的三个要点:Attentive对应的是注意力机制,Pairwise表明训练用的是成对训练的方式,Interaction对应的是交互机制。
因为是老问题了,就直接看网络结构吧:
网络结构就如上图,首先将数据两两成组,两张图分别通过一个CNN网络得到特征向量,x1和x2,再将x1和x2拼接在一起,通过一个多层感知器(Multilayer Perceptron,MLP)得到共同向量xm:
我们期望xm标记了x1和x2差距大的位置。打个比方,如果x1,x2向量第一个位置标记的是鸟爪的颜色,如果两只鸟鸟爪的颜色很不一样,那么我们期望xm第一个位置的值接近1,如果两只鸟鸟爪的颜色一致,那么我们期望xm第一个位置的值接近0。当然每个位置代表的特征不是事先定义好的,这里只是举个例子,具象化解释一下。
接下来分别计算两个特征向量的注意向量g1和g2:
g1被期望表达的是x1和x2不同的地方,且这个不同的地方是x1的主要特征,而g2表达的是x2与x1不同的地方,且这个不同的地方是x2的主要特征。比如说向量的一个位置表达的是爪子是否是黄色,x1在这个位置值高,x2在这个位置值低,那么我们就期望g1在这个位置的值会去接近1,g2在这个位置的值会去接近0。那么如果x1和x2在这个位置的值都高和都低呢?那么就期望g1和g2在这个位置的值都低。
接下来说Pairwise Interaction,硬要翻译的话,两两交互吧:
self可以理解为强化自己的重点,other可以理解为强化别人的重点。softmax做最后的分类归纳。
最后的损失函数:
<div align=center></div>
这部分用的是交叉熵(Cross Entropy Loss),表达的是两个分布之间的距离,也可以理解为预测的结果和真实的结果之间的距离。
这部分用的是Score Ranking Regularization,这部分想要表达的是,强化了自己的重点的向量得到的分类结果,应该要比强化了别人的重点得到的分类结果要更准确。
这篇就说到这里,如果觉得还不错,帮忙右下角点个“在看”再走哇。
声明:所有公式和图片还有原理均来自论文本身。
Comments