Few-shot Daily 2023/01/12

公众号:皮皮嬉

Few-shot相关


Continual Few-Shot Learning Using HyperTransformers

Google Research

https://arxiv.org/abs/2301.04584

我们关注的是连续完成多个任务而不遗忘的学习问题,其中每个任务都是使用novel-class或seen-class来定义的。我们使用最近发布的HyperTransformer (HT)来解决这个问题,这是一种基于transformer的超网络,可以直接从支持集生成专门的特定于任务的CNN权重。为了从连续的任务序列中学习,我们建议递归地重用生成的权重作为下一个任务HT的输入。通过这种方式,生成的CNN权重本身就可以作为以前学习到的任务的表示,并且训练HT更新这些权重,以便在不忘记过去任务的情况下学习新任务。这种方法不同于大多数持续学习算法,后者通常依赖于使用历史数据、权重正则化或任务相关的架构更改。我们证明了我们提出的配备了原型损失的Continual HyperTransformer,能够学习和保留关于各种场景的过去任务的知识,包括从小批量学习,以及任务增量和类增量学习场景。


SEMSUP: Semantic Supervision for Simple and Scalable Zero-shot Generalization

普林斯顿大学

https://arxiv.org/pdf/2202.13100.pdf

零样本学习是在训练过程中未见过的类别上预测实例的问题。零样本学习的一种方法是为模型提供辅助类别信息。之前的工作在很大程度上使用了昂贵的每个实例注释或单个类级描述,但每个实例描述难以扩展,单个类描述可能不够丰富。此外,这些工作只使用自然语言描述,简单的双编码器模型,以及模态或特定任务的方法。这些方法有几个局限性:文本监督可能并不总是可用或最优的,双编码器可能只能学习输入和类描述之间的粗略关系。本文提出SEMSUP,一种新方法,使用:(1)可扩展的多描述采样方法,比单描述提高性能,(2)其他描述格式,如JSON,易于生成,在某些设置上优于文本,以及(3)混合词汇-语义相似性,以利用类描述中的细粒度信息。在四个数据集、两种模态和三种泛化设置上证明了SEMSUP的有效性。例如,在文本和图像数据集上,与最近的基线相比,SEMSUP将未见过的类泛化精度平均提高了15个点。


Contextual Squeeze-and-Excitation for Efficient Few-Shot Image Classification

NeurIPS 2022

剑桥大学、微软

https://arxiv.org/pdf/2206.09843.pdf

近年来,以用户为中心的应用程序出现了增长,这些应用程序需要在低数据环境下进行有效的跨任务知识转移。一个例子是个性化,预训练系统通过对属于特定用户的少量标记数据进行学习来适应。这种设置要求在低计算复杂度下具有较高的精度,因此精度与自适应成本的帕累托前沿发挥了至关重要的作用。本文将这个帕累托前沿推广到小样本图像分类环境中,有一个关键贡献:一个新的自适应块称为上下文挤压和激励(Contextual Squeeze-and-Excitation, CaSE),在新任务上调整预训练神经网络,通过用户数据的单次前向传递(context)显著提高性能。用元训练的CaSE来有条件地适应网络的主体,用微调例程来适应线性头,定义了一种称为UpperCaSE的方法。在VTAB+MD的26个数据集和具有挑战性的真实世界个性化基准(ORBIT)上,UpperCaSE相对于元学习器实现了新的最先进的精度,缩小了与领先的微调方法的差距,并以更低的适应成本为好处。


Unified Optimal Transport Framework for Universal Domain Adaptation

NeurIPS 2022

上海科技大学、悉尼科技大学、上海智能视觉影像及应用工程技术研究中心

https://arxiv.org/pdf/2210.17067.pdf

通用域自适应(Universal Domain Adaptation, UniDA)旨在将知识从源域迁移到目标域,而不需要对标记集进行任何约束。由于两个域都可能包含私有类,因此确定域对齐的目标共同样本是UniDA的一个重要问题。现有的大多数方法需要人工指定或调整阈值来检测公共样本,由于公共类别的比例不同,难以扩展到更真实的UniDA。此外,由于将目标隐私样本视为一个整体,它们无法识别目标隐私样本之间的不同类别。在本文中,我们提出使用最优传输(OT)在一个统一的框架UniOT下处理这些问题。首先,设计了一种基于OT的自适应填充的部分对齐方法,用于在没有任何预定义阈值的情况下检测常见类别。该算法可以根据OT算法得到的赋值矩阵的统计信息,自动发现公共类和私有类之间的内在差异。提出一种基于OT的目标表示学习,鼓励样本的全局判别和局部一致性,以避免过度依赖源。值得注意的是,UniOT是第一种能够自动发现和识别UniDA目标域中私有类别的方法。在此基础上,提出了一种新的聚类性能评价指标H^3-score,从公共样本的准确率和私有样本的聚类性能两方面对算法的性能进行评价。广泛的实验清楚地证明了UniOT相对于UniDA中各种最先进的方法的优势。


Using Language to Extend to Unseen Domains

加州大学伯克利分校、加州大学伯克利分校

https://arxiv.org/pdf/2210.09520.pdf

在部署视觉模型时,收集每个可能遇到的领域的训练数据是昂贵的。相反,我们考虑如何简单地将训练域(例如鸟类的照片)以及我们想要扩展但没有数据的域(例如鸟类的绘画)进行描述,以提高鲁棒性。使用具有联合图像和语言嵌入空间的多模态模型,该方法学习了图像嵌入从训练域到每个未见过的测试域的转换,同时保留了任务相关信息。在不使用来自未见过的测试域的任何图像的情况下,在包含训练域和未见过的测试域的扩展域上,LADS在一套针对域适应和数据集偏差的四个基准上优于标准的微调和集成方法。

其他


Head-Free Lightweight Semantic Segmentation with Linear Transformer

AAAI 2023

阿里巴巴

https://arxiv.org/pdf/2301.04648.pdf

现有的语义分割工作主要集中在设计有效的解码器上。然而,其整体结构引入的计算量长期被忽视,阻碍了其在资源受限的硬件上的应用。本文提出一种专门用于语义分割的Head-Free轻量级架构,称为Adaptive Frequency Transformer。它采用并行架构,利用原型表示作为特定的可学习局部描述,取代解码器,并保留高分辨率特征上的丰富图像语义。虽然去除解码器可以压缩大部分计算,但并行结构的精度仍然受到计算资源低的限制。采用异构算子(CNN和Vision Transformer)进行像素嵌入和原型表示,以进一步节省计算成本。此外,从空间域的角度很难将ViT的复杂性线性化。由于语义分割对频率信息非常敏感,我们构建了一个轻量级的原型学习块,使用复杂度为O(n)的自适应频率滤波器,用O(n2)取代标准的自注意力。在广泛采用的数据集上的广泛实验表明,所提出模型在仅保留3M参数的同时实现了卓越的精度。在ADE20K数据集上,该模型达到了41.8 mIoU和4.6 GFLOPs,比Segformer高4.4 mIoU, GFLOPs减少了45%。在Cityscapes数据集上,该模型达到了78.7 mIoU和34.4 GFLOPs,比Segformer高2.5 mIoU, GFLOPs减少了72.5%。

### Few-Shot Learning 和 Zero-Shot Learning 的概念 Few-shot learning 是指一种机器学习范式,在这种情况下,模型只需要少量标注数据即可完成特定任务。它通常用于解决样本稀缺的情况,例如某些领域中的罕见事件或昂贵的数据采集过程[^1]。具体来说,few-shot learning 可以通过迁移已有的知识到新任务上实现高效的学习效果。 Zero-shot learning 则是一种更为极端的场景,其中模型不需要任何目标类别的训练样本来执行分类或其他预测任务。它是基于跨模态的知识转移来实现的,比如利用自然语言描述或者其他辅助信息帮助识别未见过的类别[^2]。 两者之间的主要区别在于所需样本的数量:few-shot 需要极少数几个例子来进行泛化;而 zero-shot 完全不依赖于目标类别的实例,而是依靠先验知识进行推理[^3]。 #### 应用案例分析 ##### Few-Shot Learning 的应用场景 Few-shot learning 广泛应用于图像分类、物体检测等领域。例如,在医疗影像诊断中,由于疾病种类繁多且每种疾病的病例数量有限,传统的深度学习方法可能无法有效工作。此时采用 few-shot 学习技术能够显著提升性能。另外,在语音合成方面也可以看到其身影——当面对新的说话者声音时,仅需几秒钟音频片段便能生成高质量模仿音效[^5]。 以下是 Python 实现的一个简单示例框架: ```python import torch from torchvision import models, transforms from torch.utils.data import DataLoader # 假设我们有一个预训练好的卷积神经网络作为特征提取器 feature_extractor = models.resnet18(pretrained=True) def train_few_shot_model(support_set, query_set): support_loader = DataLoader(support_set) query_loader = DataLoader(query_set) optimizer = torch.optim.Adam(feature_extractor.parameters(), lr=0.001) for epoch in range(epochs): # epochs 数可以根据实际情况调整 for batch_support, _ in support_loader: outputs = feature_extractor(batch_support) loss_fn(outputs).backward() optimizer.step() train_few_shot_model(support_data, test_queries) ``` 此代码展示了如何使用 ResNet 进行特征提取并结合支持集和支持查询优化参数的过程。 ##### Zero-Shot Learning 的实际用途 Zero-shot learning 主要在跨域问题中有重要价值,像跨语言文本处理、视觉语义理解等方面都有所体现。举个例子,如果我们要开发一个多标签图片标记系统,那么即使存在一些从未出现在训练集中却可以通过属性关联被正确辨认出来的对象类型也是可行的。这得益于 zero-shot 方法可以从其他相关联的信息源获取必要的线索[^4]。 同样给出一段伪代码表示基本流程: ```python class ZSLModel(torch.nn.Module): def __init__(self, word_embeddings_dim, num_classes): super(ZSLModel, self).__init__() self.fc_layer = nn.Linear(word_embeddings_dim, num_classes) def forward(self, input_features): output_scores = self.fc_layer(input_features) return F.softmax(output_scores, dim=-1) model_instance = ZSLModel(vocab_size=len(glove_vectors), class_count=len(all_possible_labels)) predicted_probabilities = model_instance(example_sentence_embedding) ``` 上述脚本定义了一个简单的线性映射层用来连接词向量空间与类别概率分布之间关系,并最终输出各候选答案的可能性大小。 ### 总结说明 无论是 few-shot 还是 zero-shot learning,它们都在推动人工智能向着更加灵活通用方向发展迈进了一大步。尽管目前仍面临诸多挑战,但随着研究深入和技术进步,相信未来会有更多突破性的成果涌现出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值