前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Meta Learning元学习和Few-Shot Learning

Meta Learning元学习和Few-Shot Learning

作者头像
Minerva
发布2020-05-29 16:11:01
2.1K0
发布2020-05-29 16:11:01
举报

Meta Learning元学习和Few-Shot Learning

一、Meta Learning

Meta Learnig,元学习,就是能够让机器学习如何去学习(Learning to Learning),Meta学习算法能够依据自己表现的反馈信号及时地不断的调整其结构和参数空间, 使得模型能够在新环境中通过累计经验提升表现性能,举个例子就是,机器之前学习了100个task,之后机器学习第101个task的时候,会因为之前学习的100个task所具有的学习能力,学习到了如何更好的获取特征知识的方法,而让第101个task表现得更好。这里前面的100个学习任务可以是语音识别、图像识别等等,新的任务可以和前面的100个任务没有任何关联,机器会因为之前所学到的任务,所以在后面的任务学习得更好。

与life long learning 不同,metal learning是希望在不同任务上机器都能自己学会一个模型,而life long learning是希望学习到一个模型可以处理多个任务。为了方便理解,大家可以把Meta Learning看成倚天屠龙记里张无忌学的九阳神功,学会九阳神功之后,张无忌在学任何武功都特别快,Meta Learning就是类似的初衷。

传统的深度学习方法是首先定义一个网络结构,对模型参数进行初始化,将输入数据喂给网络模型,得到输出结果,计算模型的损失函数,通过梯度下降法优化模型参数,最终得到模型参数的最优解,也就得到了一个相对成熟的机器学习模型,简单说就是学习一个从输入到输出的映射。

红色框住的部分包括网络结构、初始化参数、更新参数方法,都是人工提前设定的。Meta Learning是希望可以自动实现这些功能。Meta Learning方法是:依旧给模型很多训练数据,我们将Learning Algorithm当作是一个F(function),我们需要F做的是生成另一个f(function)。

我们定义一个学习算法F,对于2个task而言,首先用F进行猫狗分类任务,得到损失函数,其次用F进行苹果橘子分类任务,得到损失函数,之后对每个task计算得到损失L,把所有的损失L相加得到最后的损失函数来评估F。

对于通常的机器学习和深度学习而言,学习过程是单任务的,数据集包括训练数据集、验证数据集和测试数据集。而Meta Learning是多任务的,每个小任务都有各自的训练数据和测试数据,将每个任务的训练数据称为support set,将测试数据称为query set。

传统深度学习需要对大量数据反复训练才能得到比较满意的结果,如果数据量很小时很容易导致过拟合现象。典型的方法有数据增强(2D和3D数据增强方法和Python代码)和正则化(机器学习和深度学习中的正则化方法)。为了实现“多快好省”,研究者们开始提出Few shot Learning、One-shot Learning和Zero-shot Learning系列。 Zero-shot Learning就是在训练集中没有出现该类,但在测试时仍然能通过很好的映射关系得到想要的结果。One-shot Learning和Few shot Learning差不多,都是每个类别只有少量样本(一个或几个),通过一般化的映射得到想要的结果。

二、Few shot Learning

Few shot Learnig是解决小样本问题的,我们希望机器学习模型通过学习一定类别的大量数据之后,对于新的类别,只需要很少量的样本就可以快速学习,Few shot Learning是Meta Learning在监督学习领域的应用。Few shot Learning的训练集中包含了很多的类别,每个类别又包括很多样本,在训练阶段从训练集中随机抽取C个类别,每个类别抽取K个样本,一共抽取的样本数为CxK个,构建一个meta-task,作为模型的support set支撑集,从剩余的数据中抽取一部分样本作为预测对象batch set,成为C-way K-shot问题。 在训练过程中,每次训练都会采样到不同的meta task,就是不同的类别组合,这使得模型可以学习到样本相似度和重要特征,综合不同meta task中的共性部分,在面对新的meta task时也可以表现很好。 下图为2-way 5-shot示例

Few-shot Learning模型大致可分为三类:Mode Based,Metric Based 和 Optimization Based。

其中 Model Based 方法旨在通过模型结构的设计快速在少量样本上更新参数,直接建立输入 x 和预测值 P 的映射函数;Metric Based 方法通过度量 batch 集中的样本和 support 集中样本的距离,借助最近邻的思想完成分类;Optimization Based 方法认为普通的梯度下降方法难以在 few-shot 场景下拟合,因此通过调整优化方法来完成小样本分类的任务。

参考: https://blog.csdn.net/Mlooker/article/details/80390162 https://www.jianshu.com/p/692604df9cfb https://zhuanlan.zhihu.com/p/68555964?app=zhihulite https://www.cnblogs.com/marsggbo/p/9764721.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python编程和深度学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
批量计算
批量计算(BatchCompute,Batch)是为有大数据计算业务的企业、科研单位等提供高性价比且易用的计算服务。批量计算 Batch 可以根据用户提供的批处理规模,智能地管理作业和调动其所需的最佳资源。有了 Batch 的帮助,您可以将精力集中在如何分析和处理数据结果上。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档