一、本文贡献
1.网络通过提取显著性区域并融合这些区域特征,以同时学习局部和全局的特征2.通过混杂来自负例的注意力特征来增强网络对于每个注意力区域的学习3.网络得到了 SOTA 的结果
二、动机
细粒度分类任务与常规的分类问题不同,它希望分类器能够看到不同类别之间的细微差异。当前流行的细粒度方法通常从两个方面设计以洞察到更加细微的特征:“更有区分度的表征学习”与“定位特征显著的部分”。然而,学习更有区分度的图像表征本身就是有挑战的,同时仅仅通过没有监督的分类信息也很难保证学习有显著区别的部分的准确位置。
与现有方法不同,在本文中,作者主张从对比学习的角度解决上述的困境,并提出一种新颖的注意力对比学习网络(ACLN)。该网络旨在吸引来自同一类别的正对的表示,并排斥来自不同类别的负对的表示。为了实现这个目标,提出了一个配备两个对比损失的对比学习模块。具体来说,注意力生成器生成的关注区域分别与原始CNN特征作为正对,而不同图像相应的不同注意力区域成负对。此外,最终的分类结果是通过一个协同学习模块同时利用原始特征和注意力图获得的。该方法在四个基准数据集上进行了综合实验,我们的 ACLN 在这些数据集上优于所有现有的 SOTA 方法。作者已经将代码开源: https://github.com/mpskex/AttentiveContrastiveLearningNetwork
三、方法
该方法主要分为了三个部分:
1.注意力生成器:用于生成需要关注的区域2.对比学习模块:用于区分学习不同类别不同区域的特征3.注意力特征记忆:用于为对比学习进行采样
该方法的总体框架可以参考下图:
1.注意力生成器
其中 ⋅ 代表元素之间相乘,∗ 代表矩阵乘法。α 和 β 可学习参数,用于平衡 两种交互的比例。同时,为了让注意力之间能够相互分开,作者设计了简单的对比损失函数来约束不同通道之间注意力生成的区别。
2.对比学习模块
作者为了达成更高的准确率,设计了注意力对比学习模块以强化分类器对于局部特征的敏感性。作者把融合特征当作正例的同时,将一些受到干扰的融合特征作为难负例。更确切地说,作者把在原有特征中杂糅一些显著的且属于其他类别的特征当作负例,认为这些特征受到了来自其他类别样本特征的干扰。举例来讲,例如一张图片 i 应该被分类为 A,这个分类结果是由 n 个关注区域共同判定得出的。如果从另一张属于 B 类的图像 j 中摘取一个关注区域的特征融合到 i 图像的 (n-1) 个关注区域的特征中,那么网络不应该把这个收到干扰的融合特征判别为类别 A。这样做有两个好处:
1.对于用来作为干扰的特征来说,这些特征需要包含足够显著且饱含信息的特征来干扰分类器判定为 A 的分类。
2.对于分类器而言,分类器需要更灵敏地识别这样的离群点。这实际上也鼓励了分类器在训练中让这些来自不同类别的关注区域特征分布在类别上更加松散。
在学习的过程中,作者设计了一个简单的二分类判别器来区分融合特征中是否包含离群特征。首先,方法会将来自不同关注区域的特征拆散。之后,这些拆散的关注区域特征会根据类别信息随机融合到异类中。最终这些特征会被送入判别器输出最终的分类分数。判别器的目标是区分含有干扰和不含干扰的特征,从而使得学习到的特征在每个部分都能包含具有明显语义的特征。
为了增加负样本的多样性,作者还设计了一个类似 Memory Bank 的机制来积累来自不同类别的特征。这些特征可以帮助网络寻找更多更随机的融合方式,使得难样本构建的边界更加光滑。
如上图所示,通过如此设计的对比学习机制,就能够寻找一个在特征空间更加紧致的分布。因为在实际数据集当中,数据在空间的分布可能都比较离散。如果在这样的训练数据中训练,可能会遗漏很多本应该关注的信息,从而导致网络不能获得足够的泛化性能。其现象就是网络明明在训练集中效果非常好,但是却总是不能在测试集合上获得更好的性能。
同时,在类别之间构建负样本能够鼓励特征分布在类别上能够更加显著。举例来说,在左图中如果同时拉开实线箭头的距离,会比以同等速率来开虚线箭头获得的类别间距离更大。这样我们也就通过构建难样本获得了更大的类别间距离,使不同类别的特征更好被区分。
作者在使用对比学习机制之后,构建了很多特征层面的难样本。这些难样本能够让分类器更加鲁棒,一定程度上改善了模型的泛化性。
Result
模型在 Flowers-102 / CUB-200-2011 / Oxford Pets 数据集上都获得了更好的成绩。作者分别使用 ResNet-101 和 DenseNet 161 在公开测试集上评价,均高于当前的 SOTA 方法。
同时作者还设计了消融实验,在使用注意力生成器、对比学习以及本文提出的关注区域特征融合方法的不同条件下,评价了网络的性能。
来源:墨奇科技
全部0条评论
快来发表一下你的评论吧 !