3

小样本学习方法总结

 2 years ago
source link: https://mp.weixin.qq.com/s?__biz=MjM5ODkzMzMwMQ%3D%3D&%3Bmid=2650429732&%3Bidx=3&%3Bsn=7bd7ed66d980c5e8f2de42cbcf9dce10
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

小样本学习方法总结

Money AINLP 2022-03-29 14:35
0?wx_fmt=png
Money算法修炼笔记
一个不想做工程的算法不是好架构
1篇原创内容
Official Account
640?wx_fmt=jpeg

这篇文章我们来介绍下小样本学习(Few-Shot learning)以及一些常用的学习方法。

1.什么是小样本学习?

        我们知道人类通常可以通过较少的样本就可以识别或者区分某一物体,所以在机器学习领域中,人们也希望机器可以不需要喂大量数据,就可以让模型拥有基本的学习和泛化能力。因此FSL就是让机器学习模型在给定少量样本(Few-Shot)条件下拥有对任务的学习和概括能力,

2.小样本学习主要为了解决哪些问题?

(1)样本生成

(2)缺少某类标签样本

(3)减少人力标注、机器资源

3.小样本学习有哪些学习方法?

小样本学习方法可以分为三类:数据增强、模型训练优化、梯度下降算法优化

(1)数据增强

    数据增强的方法比较好理解,简而言之就是你样本不是不够吗,那我就通过一些方法提高训练样本数量和增强训练样本多样性。(图一)

640?wx_fmt=png
    a.基于训练样本转换

    由于存在一些少量训练样本,所以可以通过一些无监督方法对其进行扩展,在CV领域可以简单通过平移、旋转、裁剪等方法,NLP领域可以通过同义词变换、插入、删除等方法。同样也可以通过自编码器(auto-encoders)对训练样本进行扩充

    b.基于弱标签或者无标签数据转换

    这类方法主要是通过对大量已有的无标签或者弱标签数据打上训练样本的目标标签,从而对训练样本进行扩充。比较常见的方法有:在分类任务中基于训练样本目标标签训练一个SVM二分类器,然后基于该分类器对这些数据进行预测;或者通过一些渐进策略和标签传播方法对这些无标签或者弱标签数据进行筛选以及标注上伪标签。

    c.基于相似数据集转换

        这类方法主要是指基于与训练样本相似的数据集采用一些聚合(aggregating)和适应(adapting)方法生成训练样本,比较常见就是GAN

640?wx_fmt=png

    总结:样本增强方法在FSL任务中比较直观和常见的,上述的方法具体应用起来需要具体情况具体分析,所以数据增强方法的缺点在于其缺少比较通用的解决方案,需要针对不同数据集、不同场景采用定制化的数据增强方法。目前数据增强方法比较适用在图像场景,而文本和语音场景比较依赖语法和结构,所以比较难于生成。

(2)模型训练优化

    模型的方法可以理解成通过先验知识能力缩小FSL中目标损失,按照这种思想可以,把这类方法分为以下几类:

640?wx_fmt=png

    a.多任务学习

    这类方法通常是将多个任务进行联合学习,这些任务有小样本的也有大样本的,大样本任务我们称为source task,小样本任务我们称为target task,我们目的是要学习这些任务的特定参数,而这些任务参数都是相互约束的,根据参数约束方式不同通常可以分为以下两类:

    1)参数硬共享:共享encoder层任务参数,不同任务会有特定输出层来学习不同任务参数,参数更新时候,对于source task我们既要更新encoder层参数,也要更新任务特定层参数,而对于target task我们可以只更新特定输出层参数(图二)

640?wx_fmt=png

    2)参数软共享:这类方法还是通过联合学习的方法,但是不同的是对于不同任务用不同表示层和输出层,但是这些层参数的会通过正则化等方式进行关联。(图三)

640?wx_fmt=png

    b.表示学习

    这类方法通常是指通过通用任务的先验知识学习样本的表示方法,然后将表示方法应用到特定的FSL任务中。这类方法通常可以分为以下几类:

640?wx_fmt=png

    1)任务定制化表示模型

    这类方法主要是针对特定任务进行表示学习,例如对于一个FSL任务,可以基于pairwise的方法增加样本数量,从而学习这个任务的表示方法

    2)任务统一表示模型

    这类方法通常是基于大量样本学习一个通用表示模型,然后直接将他们应用在FSL任务中,通过相似度计算等方式对测试样本进行预测。

    这类方法比较代表性的有:Match Net,ProtoNet,此处就不再赘述,详细可以参考具体论文。(图四)

640?wx_fmt=png

    3)混合表示模型

    这类方法是对上面两种方法的结合,由于通用表示模型缺乏对特定任务的表示学习,所以混合表示模型主要是将通用表示模型的表示结果作为特定任务表示模型的输入,然后再学习特定任务的表示方法,具体一些工作有:Learnnet,TADAM,DCCN等。(图五)

640?wx_fmt=png

    c.通过外部存储介质学习

    这类方法是通过提取训练集的知识信息学习表示结果,然后缓存起来,对于每一个新样本可以通过查询这个缓存,获得和这个样本相似向量的加权表示。由于测试集都是基于缓存内容的加权表示,所以对于缓存提取方法显的格外重要,整体可以分为两类1)表示提取2)参数提取,具体工作可以参考下面表格:

640?wx_fmt=png

    需要注意的是缓存这种方法成本可能很高,因为它需要额外的存储空间和计算资源,所以需要设计一个比较好的更新方式。(图六)

640?wx_fmt=png

    d.生成式模型方法

    这类方法主要是基于生成式模型思想,通过学习先验知识的联合分布P(x,y)或者每个标签的独立分布,然后计算出P(y|x),这类方法成本也比较高,适用度不高,具体一些方法可以参考论文中的介绍。(图七)

640?wx_fmt=png

    总结:模型优化类的方法前两种比较常见当存在相似的或者辅助任务时可以采用多任务学习方法,但是对于新增任务情况就需要重新训练多任务模型,这块代价成本会比较高,而且多个任务训练集最好是不可比较的,因为如果可比的话FSL任务的样本会被其他任务所淹没;当存在大量带有标签任务的数据时候可以采用表示学习方法,这种方法可以学习到除标签以为的样本表示信息,从而应用到FSL任务中,但是需要带有标签的大数据训练任务和FSL任务是相关的,否则效果会不太好。

(3)梯度下降算法优化

640?wx_fmt=png

上述公式为SGD的基本更新公式,对于普通机器学习模型我们有充足的样本来更新参数,并且通过交叉验证等方法得到合适的更新step从而避免欠拟合和过拟合。但是,对于FSL任务,我们没有充足的样本来做这件事,所以我们要通过先验知识来获取合适的参数,所以按照这个思想可以把梯度下降小样本学习方法分为以下两类:

    a.提取合适的初始化参数

    这类方法思想和迁移学习比较类似,我们可以基于预训练模型或者先验知识获取到一个初始化参数(图八),但是有时候可能找不到这样一个预训练任务获取初始化参数,这种情况主要有两种解决方法:1.通过聚合一些相似任务的参数进行初始化(图九),2.从元学习任务中获取初始化参数(图十)。最后根据根据FSL任务中的训练集来微调这个参数。

640?wx_fmt=png
640?wx_fmt=png
640?wx_fmt=png

    b.学习一个合适的优化器

    相比于a方法,这类方法思想主要在更新FSL任务参数时,通过元学习器的梯度下降方法对参数进行更新(图十一)

640?wx_fmt=png

    总结:基于预训练模型提取合适初始化参数的方法比较好理解,但是它更容易受到对应预训练任务影响,从而对FSL任务的效果有一定折损;基于元学习的方法仍在探索当中,其难点主要在于如何横跨不同粒度进行元学习,避免一些错误信息的在任务中迁移。

参考文章:

https://arxiv.org/pdf/1904.05046.pdf

0?wx_fmt=png
AINLP
一个有趣有AI的自然语言处理公众号:关注AI、NLP、机器学习、推荐系统、计算广告等相关技术。公众号可直接对话双语聊天机器人,尝试自动对联、作诗机、藏头诗生成器,调戏夸夸机器人、彩虹屁生成器,使用中英翻译,查询相似词,测试NLP相关工具包。
343篇原创内容
Official Account
进技术交流群请添加AINLP小助手微信(id: ainlper)
请备注具体方向+所用到的相关技术点
640?wx_fmt=jpeg

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。

640?wx_fmt=jpeg

阅读至此了,分享、点赞、在看三选一吧🙏


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK