few shot learning-小样本学习入门

参考链接:
https://zhuanlan.zhihu.com/p/85277741
https://blog.csdn.net/weixin_37589575/article/details/92801610
https://blog.csdn.net/weixin_40123108/article/details/89003325

基本概念

小样本学习(few shot learning,FSL)可以看做每个类别样本数目远远小于类别数目,也就是说每个类别仅仅只有几个样本可供训练。

支持集(support set):包含着少量标注的样本。

查询集(query set):包含着未标注的样本,和支持集的类别空间一致。

N-way K-shot: 表示支持集包含着 N N N个类别,每个类别有 K K K个标注样本

episode training: 训练在训练集上进行,采用episode training机制。此机制和test阶段是一样的,即每一个episode 随机采样 N N N个类别,每个类别采样 K K K个标注样本构成支持集,每个类别的剩余一小部分样本构成查询集,怎样将支持集和查询集样本嵌入到合适的空间,使之类内的样本相似度高,类间的样本相似度低,是一个构建的问题。

数据集划分:按照约定,数据集会被划分为训练集,验证集和测试集,三个集之间的类别是不相交的。

test stage:在测试阶段,我们当前拿到的测试集的label当然是已知的。此时也进行类似episode training的机制,每一个episode从测试集中随机采样 N N N个类别,每个类别采样 K K K个标注样本构成支持集,此时支持集的label是已知的也是可用的,之后每个类别的剩余一小部分样本构成查询集,这些样本是需要模型分类的,label是未知的,通过模型计算得到查询集样本的accuracy,此时就模拟了我们在每个类别小样本label已知的情况下,去预测其他相同label空间样本。
在测试阶段我们要进行多次episode,得到多个accuracy的值,所以此时约定取最终的accuracy为多个episode的平均值,并report 95%的置信区间。

流行的方法

1.数据增强和正则化

这类方法比较简单直接,数据增强是针对样本数量过少来增加样本,小样本学习设置下模型非常容易陷入过拟合,因此数据增强和正则化都能作为正则化来防止过拟合。

2.元学习(Meta Learning)

是目前主流的解决方案,首先介绍什么是元学习。
概念介绍: 元学习的目标是利用已经学到的知识来解决新的问题。这也是基于人类学习的机制,我们学习都是基于已有知识的,而不像深度学习一样都是从 0 开始学习的,也称为“学会学习” (Learning to learn)。
元学习将学习(训练)的任务称为meta-training task,新的任务称为meta-test task。在小样本学习中, meta training 阶段将数据集分解为不同的 meta task,去学习类别变化的情况下模型的泛化能力,在 meta testing 阶段,面对全新的类别,不需要变动已有的模型,就可以完成分类。
例如分类 MiniImagenet,其中有 100 个类,我们用其中 60 个类来学习先验知识,20个做 validation,剩余 20 个做测试。注意我们测试的 20 个类和前面 80 个类是完全不同的,也就是新的类、新的概念、新的问题,并且这 20 个类每个类只有很少的几张已知label的图片 (few-shot 问题)!然后前面的 80 个类用来训练模型和确定超参数,也就是学习帮助我们解决新问题的先验知识。

2.1 学习微调 (Learning to Fine-Tune)

这种方法已被广泛地应用。首先给定一个预训练的基础网络,通过含有丰富标签的大规模数据集训练得到的,比如imagenet,然后根据特定领域的数据进行微调,通常在少量的样本上训练一下就可以得到不错的效果。
经典的工作就是MAML(Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks):MAML 的思想是学习一个 初始化参数 (initialization parameter),这个初始化参数在遇到新的问题时,只需要使用少量的样本 (few-shot learning) 进行几步梯度下降就可以取得很好地效果

2.2 度量学习(metric learning)

核心思想:学习一个 embedding 函数,将输入空间(例如图片)映射到一个新的嵌入空间,在嵌入空间中有一个相似性度量来区分不同类。我们的先验知识就是这个 embedding 函数,在遇到新的 task 的时候,只将需要分类的样本点用这个 embedding 函数映射到嵌入空间里面,使用相似性度量比较进行分类。
这里主要讲解两个代表性的方法:Matching Network和

2.2.1 Matching Network

在这里插入图片描述
inference过程

网络结构上图所示, g θ g_{\theta} gθ f θ f_{\theta} fθ分别是支持集和查询集样本的编码器,将图片embed为向量,其中 x ^ \hat{x} x^为查询样本, x i x_{i} xi是支持样本, a ( x ^ , x i ) a(\hat{x},x_{i}) a(x^,xi)从余弦相似度的角度衡量了查询样本与每个支持样本的相关度,进行归一化是因为下面要进行加权的预测样本的label
在这里插入图片描述
这里 y i y_{i} yi是支持样本 x i x_{i} xi的label,利用相似度为权重,进行label的加权求解:
在这里插入图片描述
训练过程
采用episodic training的方式,训练的时候首先采样支持集 S S S,再在支持集样本空间下采样一个batch的数据作为查询集,batch中的每一个样本依次与 S S S计算分类误差,也就是朴素的交叉熵。

2.2.2 Prototypical Networks (原型网络)

在这里插入图片描述
过程比较简单,采用episodic training,每一个episode,将每一个类的支持集的样本representation求解平均作为该类别的原型表示(prototypical representation),对于查询集的样本,将平方欧氏距离作为与类别prototypical representation的相似度度量,求解误差时,拉近查询样本表示与对应的类的原型表示,远离其他类的原型表示。

数据集

1.Omniglot

介绍:它一共包含1623 类手写体,每一类中包含20 个样本。其中这 1623 个手写体类来自 50 个不同地区(或文明)的 alphabets,如:Latin 文明包含 26 个alphabets,Greek 包含 24 个alphabets。
划分:train的是 964 类(30个地区的字母),用于test的是 659 类 (20个地区的字母)。

关于DeepSeek是否真的有用而不是虚有其表,我们可以从几个关键维度来进行评价:技术水平、实际应用场景、用户体验等方面。通过这些方面的分析,可以较为全面地了解DeepSeek的实际价值。 ### 技术水平 **1. 模型性能** - **准确性和效率**:DeepSeek经过了大量的训练和优化,在自然语言处理任务上展现出了较高的精度,尤其是在中文语境下,能够很好地理解和生成高质量的文本内容。 - **持续更新迭代**:研发团队不断引入新的算法和技术进步,保持模型与时俱进,以应对日益复杂的现实需求。 **2. 安全可靠** - **数据隐私保护**:特别重视用户信息的安全防护,遵循严格的法律法规标准,确保个人及企业敏感资料不会泄露或滥用。 - **稳定性高**:运行稳定,具备强大的容错机制,能够在各种复杂环境下正常工作而不易崩溃。 ### 实际应用场景 **3. 广泛的应用潜力** - **客户服务自动化**:帮助企业搭建智能化客服系统,提高应答速度和服务质量的同时降低了人力成本。 - **文档辅助写作与审核**:无论是撰写文章、报告还是合同等文件,它都能提供创作灵感和支持,同时还可以帮助检查语法错误、规范用词等问题。 - **行业知识图谱构建**:针对特定行业的深度学习,协助专家建立结构化的专业知识网络,加速创新进程。 ### 用户体验 **4. 易于集成** - **API接口开放便捷**:方便开发者将其无缝接入现有的应用程序当中,快速部署到生产环境中使用。 - **界面友好直观**:专门为终端用户设计了简洁明了的操作界面,让用户无需太多培训就能轻松掌握核心功能。 总的来说,DeepSeek并不是虚有其表的技术噱头,而是实实在在地为企业和个人带来了便利和效益。当然,任何技术都有局限性,具体情况还需要结合自身业务特点来做判断。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值