Class-wise Metric Scaling for Improved Few-Shot Classification (基于类的度量缩放提升小样本分类)

本文提出了一种名为CMS的机制,用于小样本分类问题。CMS通过学习类别的度量标量,改进特征表示和决策边界,考虑了类内方差,从而提高分类准确性。在训练阶段,度量标量作为可学习参数,而在测试阶段,通过凸优化问题确定最优标量,以适应任务特性。此外,低秩双线性池化层增强了表示能力。CMS可以解释为高斯混合模型的特殊情况,提供了更灵活的类表示。

基于度量的小样本分类

摘要

我们提出了一种基于类的度量缩放(CMS)机制,它可以应用于训练和测试阶段。具体地说,在训练阶段,度量标量被设置为可学习参数,帮助学习更有区别和可转移的特征表示。在测试方面,我们构造了一个凸优化问题来生成一个最优标量向量来改善最近邻决策。此外,我们还涉及到一个低秩双线性池化层,以提升表示能力,这进一步提供了显著的性能增益。

1. Introduction

最近基于最接近类中心的方法[32,39,6,7,4]由于其简单和有效而引起了广泛的关注。这些方法的基本步骤是预训练一个特征提取器,其中训练方式可以是元学习[39,41]或只是带有可学习的分类层的常规监督训练[32,6,7]。为了解决一个目标小样本任务,利用少量标注样本的特征嵌入构造了一个最接近中心的分类器。一般来说,每个类的中心可以通过属于该类的嵌入的平均值来计算。值得注意的是,最近的类中心分类器只存储一个类中心向量来表示一个类别。这种有限的表示在小样本情况下成为一种优势,因为它有效地缓解了过拟合。
在图一(a),左边虚线在两个类中心中间,但是,类1比类2分布更大而且内方差更大。直观地,更合理的决策边界应该更偏向类2。为了改进有偏差的决策边界,我们提出了CMS,我们将普通的不可知类的距离与基于类的关于类分布的度量标量相乘,如图一(b)所示。因此,可以隐式考虑类内方差的多样性,以提高分类精度。
CMS的优势:
1。基于类分布信息对每个类别进行缩放的方法不会改变任何训练过程或度量函数,实现简单;
2。CMS中的缩放值(标量)约等于类别方差的倒数。CMS可以认为是一种特殊的高斯混合模型,带来更灵活的类别表示。
3。CMS在元训练阶段学习得到,并在元测试阶段自适应的为每个任务得到task-specific scale,即CMS也使元测试阶段受益。
在跨域场景和半监督小样本学习方面也有贡献

2. Related works

Meta-learning
情景训练机制有效促进了小样本学习的发展。大多数情景训练方法基于对新任务快速适应下的模型最优化和避免过拟合。然而,在测试阶段,这些方法由于模型微调是费时的。
Metric-based few-shot Learning
基于度量的方法的目标是首先是学习深度可转移的表示,然后推广它来识别新类,我们的方法就是基于度量的。由于不同的训练过程,我们可以分为两类。一类是基于情景训练学习特定的距离度量,比如原型网络,关系网络, TADAM ,Covariance Metric Networks ,DeepEMD。另一类是用标准监督学习方式预训练一个带有分类层的特征提取器,然后建立一个nearest-centroid(最近中心)分类器去解决目标小样本任务。特别的,之前的

基于两阶段训练的度量融合学习(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) ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值