【综述翻译】Deep Metric Learning for Few-Shot Image Classification: A Review of Recent Developments

在这里插入图片描述

跨小样本图像分类的深度度量学习:最新进展综述

引用:Li X, Yang X, Ma Z, et al. Deep metric learning for few-shot image classification: A review of recent developments[J]. Pattern Recognition, 2023, 138: 109381.
论文链接https://arxiv.org/pdf/2105.08149

Abstract 摘要

  Few-shot 图像分类是一个具有挑战性的问题,旨在仅基于少量的训练图像实现人类级别的识别能力。小样本图像分类的主要解决方案之一是深度度量学习。这些方法通过在由强大的深度神经网络学习到的嵌入空间中,根据未见样本与少量已见样本之间的距离进行分类,可以避免在小样本图像分类中对少量训练图像的过拟合问题,并且已经取得了最新的性能。在本文中,我们对2018年至2022年间用于小样本图像分类的深度度量学习方法进行了最新的综述,并根据度量学习的三个阶段,即学习特征嵌入、学习类表示和学习距离度量,将这些方法分为三类。通过这种分类法,我们识别了不同方法的新颖性及其面临的问题。我们最后通过讨论当前小样本图像分类中的挑战和未来趋势,来总结这篇综述。

引言

  图像分类是机器学习和计算机视觉中的一项重要任务。随着深度学习的快速发展,近年来该领域取得了突破性进展1234。然而,这些进展依赖于收集和标注大量数据(数量级达数百万),这既困难又昂贵。更严重的是,这种学习机制与人类的学习方式形成了鲜明对比,人类通常只需要一个或少量的例子就可以学习一个新的概念5。因此,为了减少对数据的需求并模仿人类智能,许多研究人员开始关注小样本分类678,即从少量(通常为1-5个)标记样本中学习分类规则。

  小样本分类面临的最大挑战是模型在少量标记训练样本上容易过拟合。为了解决这个问题,研究人员提出了多种方法,如元学习方法、迁移学习方法和度量学习方法。元学习方法通过在多个不同的分类任务上训练一个元学习器,提取可推广的知识,从而能够在少数样本上快速学习新的相关任务79。迁移学习方法假设源域和目标域之间共享知识,并对在丰富的源数据上训练的模型进行微调,以适应少量标记的目标样本1011。度量学习方法学习特征嵌入6和/或距离度量(或反之,即相似度度量)12,并基于未见样本与标记样本或类表示之间的距离进行分类;同类样本应在嵌入空间中靠近,而不同类样本则应相距较远。需要注意的是,上述方法可以同时应用,例如,通过元学习策略学习度量学习方法的特征嵌入7

  在本文中,我们对近年来用于小样本图像分类的深度度量学习方法进行了综述。度量学习方法值得特别关注,因为一旦度量被学习,它不需要为新类别学习额外的参数,从而能够避免在小样本学习中对新类别的少量标记样本过拟合。此外,它们在基准数据集上的分类性能也非常出色。此外,在本次综述中,我们将度量学习分为三个学习阶段:学习特征嵌入、学习类表示和学习距离度量。这样的分解有助于小样本图像分类和深度度量学习两个基础社区的研究人员之间的思想交流。例如,最新的通用特征嵌入学习进展可以应用于小样本图像分类,而类表示的一种类型——原型学习的思想——可以扩展到长尾视觉识别13

  关于小样本学习(FSL)的若干综述已发表或预印1414 是关于小样本学习的首个综述,汇总了不同小样本学习场景下的方法,包括零样本学习和小样本学习,以及图像分类、目标检测、视觉问答和神经机器翻译等各种任务。由于该综述在2018年初进行,关于小样本分类的内容相对有限,特别是关于度量学习的方法。15 提供了第一个关于小样本学习的全面综述。除了定义小样本学习并将其与相关的机器学习问题区分开来,作者从监督学习中的误差分解基本角度讨论了小样本学习,并将所有方法按以下几类进行分类:通过增强训练数据来减少估计误差,利用先验知识学习模型以限制假设空间并减少近似误差,学习初始化或优化器以改进在假设空间中搜索最优假设。该综述对度量学习方法的覆盖有限,并将所有度量学习方法归类于学习嵌入模型,这不能完全描述这些方法的优点。16 是另一篇全面的综述,回顾了从2000年代到2020年的文献,并总结了小样本学习在各个领域的应用。该综述包括了早期的非深度度量学习方法,并且由于该综述侧重于元学习方法,因而将最近的深度方法大部分归类为学习度量。与16 将不同的元学习度量学习方法与三种经典方法关联起来相比,我们的综述更深入地探讨了度量学习方法如何演化,以便更好地泛化并在更接近现实的设置中更具适用性。此外,自1516 发表以来,小样本学习的快速发展导致提出了大量的新方法,这些新方法在本综述中进行了讨论。17 是2021年最新发表的关于小样本学习的综述,但它完全专注于元学习方法,与我们的工作几乎没有重叠。简而言之,本文提供了关于小样本图像分类的深度度量学习方法的最新综述,并对这些方法的不同组成部分进行了仔细的审查,以理解它们的优缺点。

  本文的其余部分组织如下:首先,为了完整性,我们在第1节中给出了小样本分类的定义,并介绍了评估程序和常用的数据集。其次,在第2节中,我们回顾了经典的小样本度量学习算法以及2018年至2022年间发表的有影响力的最新工作。根据度量学习的过程,这些方法被分类为学习特征嵌入、学习类表示和学习距离或相似度度量。最后,我们在第3节讨论了现有方法中的一些剩余挑战及进一步发展的方向,并在第4节总结了本次综述。

1 The Framework of Few-Shot Image Classification

1.1 Notation and definitions

  首先,我们通过推广小样本学习的定义12,建立符号并给出各种类型的小样本分类的统一定义。小样本分类涉及两个数据集,即基础数据集和新颖数据集。新颖数据集是执行分类任务的数据集。基础数据集是一个辅助数据集,用于通过迁移知识来帮助分类器的学习。我们用 D b a s e = { ( X i , Y i ) ; X i ∈ X b a s e , Y i ∈ Y b a s e } i = 1 N b a s e D_{base} = \{(X_i, Y_i); X_i \in X_{base}, Y_i \in Y_{base}\}_{i=1}^{N_{base}} Dbase={(Xi,Yi);XiXbase,YiYbase}i=1Nbase 表示基础数据集,其中 Y i Y_i Yi 是样本 X i X_i Xi 的类别标签;在图像分类的情况下, X i X_i Xi 表示第 i i i 个图像的特征向量。新颖数据集同样表示为 D n o v e l = { ( X ~ j , Y ~ j ) ; X ~ j ∈ X n o v e l , Y ~ j ∈ Y n o v e l } j = 1 N n o v e l D_{novel} = \{(\tilde{X}_j, \tilde{Y}_j); \tilde{X}_j \in X_{novel}, \tilde{Y}_j \in Y_{novel}\}_{j=1}^{N_{novel}} Dnovel={(X~j,Y~j);X~jXnovel,Y~jYnovel}j=1Nnovel D b a s e D_{base} D

基于两阶段训练的度量融合学习(TST MEL)在少样本图像分类领域有着独特的应用和意义。 在少样本图像分类问题中,面临的挑战是可用的标注样本数量极少,传统的深度学习方法往往难以在这样有限的数据上进行有效的学习和泛化。TST MEL旨在解决这一难题,通过两阶段的训练策略和度量融合的方式来提升少样本图像分类的性能。 第一阶段的训练可能侧重于学习图像的基础特征表示。在这个阶段,模型会尝试从有限的样本中提取出具有代表性的特征,这些特征能够捕捉图像的关键信息,为后续的分类任务奠定基础。例如,可能会利用卷积神经网络(CNN)等架构来进行特征提取,通过对图像的卷积、池化等操作,将图像转换为低维的特征向量。 第二阶段的训练则聚焦于度量融合。度量融合是指将多种不同的度量方式结合起来,以更全面地衡量样本之间的相似性。在少样本图像分类中,单一的度量方式可能无法准确地反映样本之间的关系,而通过融合多种度量,如欧氏距离、余弦相似度等,可以更精准地判断图像之间的相似程度,从而提高分类的准确性。 通过两阶段的训练和度量融合,TST MEL能够充分利用有限的样本信息,在少样本图像分类任务中取得较好的效果。它能够在样本数量较少的情况下,依然保持较高的分类准确率,为少样本图像分类问题提供了一种有效的解决方案。 ```python # 以下是一个简单的示例代码,模拟TST MEL的部分思想 import torch import torch.nn as nn # 假设这是一个简单的CNN用于特征提取(第一阶段) class SimpleCNN(nn.Module): def __init__(self): super(SimpleCNN, self).__init__() self.conv1 = nn.Conv2d(3, 16, kernel_size=3, padding=1) self.pool = nn.MaxPool2d(2, 2) self.fc1 = nn.Linear(16 * 16 * 16, 128) def forward(self, x): x = self.pool(torch.relu(self.conv1(x))) x = x.view(-1, 16 * 16 * 16) x = torch.relu(self.fc1(x)) return x # 模拟第二阶段的度量融合 def metric_fusion(feature1, feature2): # 这里简单地结合欧氏距离和余弦相似度 euclidean_distance = torch.norm(feature1 - feature2) cosine_similarity = nn.functional.cosine_similarity(feature1, feature2) # 可以根据实际情况调整权重 combined_metric = 0.5 * euclidean_distance + 0.5 * cosine_similarity return combined_metric # 示例使用 model = SimpleCNN() image1 = torch.randn(1, 3, 32, 32) image2 = torch.randn(1, 3, 32, 32) feature1 = model(image1) feature2 = model(image2) combined_metric = metric_fusion(feature1, feature2) print(combined_metric) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值