返回

反向驱动:削弱显特征强化细粒度视觉分类

见解分享

引言

深度学习模型在视觉分类领域取得了令人瞩目的成绩,在ImageNet这样的通用数据集上实现了超过90%的准确率。然而,在细粒度分类任务中,模型的性能下降明显,因为细粒度分类需要模型能够在外观相似性很高的类中精确区分。

细粒度分类的挑战在于,它需要模型能够提取出细微的特征差异,这些差异通常很难被人类察觉。例如,在鸟类分类任务中,不同种类的鸟类可能具有非常相似的颜色、形状和纹理,但它们在一些细微的特征上却存在差异,如喙的形状、翅膀上的斑纹等。

为了应对细粒度分类的挑战,研究人员提出了各种各样的方法,其中一种方法是使用反向卷积来生成多样性的特征图。反向卷积是一种特殊的卷积操作,它可以将高维特征图转换为低维特征图,同时保留特征图中的重要信息。

反向多样性块

在我们的工作中,我们提出了一种新的反向多样性块,它可以有效地抑制特征图中的高响应区域。高响应区域是指特征图中那些响应值很高的区域,这些区域通常对应着图像中的显著特征,如物体边缘、纹理等。通过抑制高响应区域,我们可以迫使模型关注图像中那些不那么显著的特征,从而提高模型的特征提取能力。

反向多样性块的结构如下图所示:

[图片]

反向多样性块由两个卷积层组成,第一个卷积层使用1×1的卷积核,第二个卷积层使用3×3的卷积核。在第一个卷积层之后,我们使用了一个ReLU激活函数,在第二个卷积层之后,我们使用了一个sigmoid激活函数。sigmoid激活函数的输出值在0和1之间,我们可以将它理解为一个概率值,它表示了特征图中每个像素属于高响应区域的概率。

为了抑制高响应区域,我们将sigmoid激活函数的输出值与特征图相乘。这样一来,高响应区域的像素值就会被减小,而低响应区域的像素值则不会受到影响。

梯度增强损失

除了反向多样性块之外,我们还提出了一种新的梯度增强损失。梯度增强损失是一种多目标损失函数,它可以同时优化多个目标。在我们的工作中,我们将梯度增强损失用于优化分类损失和多样性损失。

分类损失是模型在训练集上的平均损失,多样性损失是模型在训练集上的平均多样性损失。多样性损失定义如下:

L_d = \frac{1}{N} \sum_{i=1}^{N} \sum_{j=1}^{C} (1 - p_{ij})^2

其中,N是训练集中的样本数,C是类的数目,p_ij是模型预测第i个样本属于第j个类的概率。

梯度增强损失的计算方法如下:

L = \alpha L_c + (1 - \alpha) L_d

其中,\alpha是一个超参数,它控制分类损失和多样性损失的相对重要性。

实验结果

我们将在ImageNet、CUB-200和Stanford Cars数据集上评估我们的方法。ImageNet是一个包含超过100万张图像的通用数据集,CUB-200是一个包含超过200种鸟类的细粒度分类数据集,Stanford Cars是一个包含超过16000辆汽车的细粒度分类数据集。

我们在ResNet-50上实现了我们的方法,并与几种最先进的方法进行了比较。实验结果如下:

[表格]

从表格中可以看出,我们的方法在所有三个数据集上都取得了最优性能。在ImageNet数据集上,我们的方法将准确率从76.5%提高到了79.6%,在CUB-200数据集上,我们的方法将准确率从85.1%提高到了88.2%,在Stanford Cars数据集上,我们的方法将准确率从91.3%提高到了94.4%。

结论

在本文中,我们提出了一种新的方法来提高细粒度分类的准确率。我们的方法包括两个主要组件:反向多样性块和梯度增强损失。反向多样性块可以抑制特征图中的高响应区域,从而迫使模型关注图像中那些不那么显著的特征。梯度增强损失可以同时优化分类损失和多样性损失,从而提高模型的泛化能力。实验结果表明,我们的方法在ImageNet、CUB-200和Stanford Cars数据集上都取得了最优性能。