点击上方,选择星标置顶,每天给你送干货

阅读大概需要10分钟

跟随小博主,每天进步一丢丢

编辑:忆臻

https://www.zhihu.com/question/291656490

本文仅作为学术分享,如果侵权,会删文处理

机器学习算法与自然语言处理报道

求问meta-learning和few-shot learning的关系是什么?

作者:hazekiah
https://www.zhihu.com/question/291656490/answer/699385301

谢邀

之前老板有提到过一次,尝试回答一下。

我们倾向于把few-shot learning理解成这样一个问题--如何训练一个模型使其基于少量的训练样本能在目标任务中获得好的性能。

显然,仅使用少量样本训练模型必然导致过拟合。因此,必须引入一些先验或者外部知识来提高模型泛化性能。而这在few-shot的问题设定里是没有进行假设的。

meta-learning虽然目的是learning to learn,但是其问题设定和few-shot的设定在我们看来是一种父类和子类的关系--他们都要求在新任务上只使用少量样本快速适应(fast adapt),而meta-learning假设更充分。

meta learning假设: 1) 存在一个任务分布,2) 你的目标新任务也服从该分布,3) 可以获得一个(从任务分布)iid采样的元训练集用来训练你的模型,4) 以及一个iid采样(且与元训练集互斥)的元测试集来估计你的模型应用于目标任务的期望性能。

因此,在问题设定上,我们倾向于把meta-learning视为few-shot的一个典型框架,它假设外部知识是以元训练集和元测试集的形式引入的,在训练过程中使得模型以某种方式捕捉到任务的共享的结构(somehow capture task structure),从而使得目标新任务基于少样本上得到的最终模型仍然具备泛化能力。

我个人觉得,few-shot和meta learning不能说存在包含关系,因为他们目的不同,前者是只允许少样本,后者是multitask下能学出某种task meta knowledge。但是因为问题设定都要求了少样本训练所得的性能,这才产生了联系。

而为什么总是看到few-shot在用meta-learning的setting呢?因为确实巧妇难为无米之炊,新任务如果真的只有一两个样本可以训练,这个问题几乎无解。而meta-learning则提供了合理的假设: 虽然我没有目标任务上的大量训练样本,但是我有大量相似任务的少量训练样本作为代偿

作者:纳米酱
https://www.zhihu.com/question/291656490/answer/709940841

我觉得,关系是,思路有共同点。

简单来说,两者共同思路或多或少包含一个重过程和一个轻过程,重过程一般是做表征和记忆,模型通常比较复杂,其需要单独数据频繁训练,轻过程用于快速执行特定任务,其一般也需要单独数据流(一般是support集)去反映新样本和重过程记住的样本的某种差异,并给根据这个差异,反馈修正信号给重过程。放到 meta learning里头,就是如何靠轻过程自动设计loss,或者梯度,就是learning to learn。放到few shot 里头,这种思路,类似transfer learning中类似domain adaption之类的。

基本上很多fancy套路,就是设计两个分支来回怼,看最终优化平衡点是不是落到你要的地方。

我这么说,学术界可别喷我呀!

作者:胡小黑
https://www.zhihu.com/question/291656490/answer/710239307

不邀自来。个人对meta-learning的了解不多,相关的论文并没有深读下去。但对针对few-shot learning还是做了一些研究的。

感觉上 few-shot learning 主要是一个应用场景,一个普遍的问题。meta-learning是一种学习策略,一种框架。

针对 few-shot 的场景,meta-learning是一种有效的方式。但近几年一些domain adaptation的方法也可以解决某些 few-shot的问题。如果假设更严格一些,假定支撑集与few-shot的数据之间同分布,那么也可以用半监督学习的方法解决。甚至在工程上,良好的特征工程也是解决 few-shot 最简单直接的方式。

总之 few-shot带来的问题是,少量的信息并不足以估计P(x, y), 也难以用其以训练好一个复杂的,表征能力良好的模型去估计x--->y的映射。个人理解,针对这个问题的思路主要有一下几个方面。

1 让训练数据更鲁棒,少量样本可以支撑一个足够简单的模型被训练好。特征工程就是干这个的。

2 让数据更多。数据增强方法 (这个在大多数问题上都不太行,除非结合物理模型,否则纯粹用数据驱动的增强算法都难以产生新信息。增强/增多后的数据分布 P_aug(x, y),和few-shot下的P_erm(x, y)没啥区别,自然也学不出啥好模型)

3 有同分布的数据集支撑。半监督学习。比如有大量无标签数据,和few-shot中数据都采样自同一边缘分布P(x)

4 有不同分布,甚至不同特征空间的数据集作迁移支撑(任务相似)。domain adaptation。

5 有多个不同任务作为迁移支撑。(读书少,不概括就举例。。) 如网络参数(卷积层)迁移,如教师-学生模型,meta-learning等

作者:匿名用户
https://www.zhihu.com/question/291656490/answer/729120606

深度网络的目标是学习构造数据变换空间的一个变换T来完成特定的任务,深度网络就是构造这个目标变换T的一个近似连续的变换过程,所以深度网络就是数据变换空间一条曲线T(t)。所以,深度学习过程可以理解为通过给定数据,确定目标变换并且找到达到目标变换的曲线(深度网络的配置)。

下面好办了, few-shot learning,本质就是要弄插值,基本是通过类似预训练啦或者是其他相近任务,将这些信息迁移到新任务上,所以这就是一个从已知的一族相近的曲线(有不同的终点但是大家相似),以及少量的 few-shot 数据来估计目标变换以及实现目标变换的网络。实现这个任务,大概一种方法是直接nonparametric的基于已知点的插值,一种是parametric的插值。当然这个插值方法肯定有多种方案,要么对多个曲线直接插值,要么先求一个平均曲线,然后针对数据进行调整,都可以。但是这里好像不会对这些曲线的形式进行建模。而这一点恰恰是meta learning想做的。

如果是meta learning,理想情况应该是给定一组任务,他们可能来自一个分布,我们需要的目标是如何能更好的找到每个任务对应的目标变换。直观的说,就是找到到达每个任务目标点的最优曲线T(t)。如果以MAML为例,这其实就是在学习整个流形上的最优曲线方程的表达式(比如一个黎曼流形上的测地线方程),或者是距离度量( 如果采用nonparametric的方式)。这样,对于新任务,直接根据数据估计目标变换并直接给出相应的最优化曲线,所以meta learning学到了最优曲线的参数化的一般表达形式。

所以,个人理解,二者的主要差异,meta learning 更加偏重学习整个流形(的一个子集,因为我们实际任务的变化范围总是有限的)上的几何特征(度量或者测地线),few shot learning 可以同样被这种方案来解决,是meta learning的一个子集。但是few shot learnging不一定需要学习这种整体信息,单纯的就看几个已知点和其对应曲线的位置形状和相互间的距离,也可以完成任务。感觉上,meta learning其实是面向任务,few shot还是更多面向数据。当然数据不同,任务也算不同,但是few shot中从任务的角度来说,基本没有变化。

小小的吐个槽,真没必要弄的那么麻烦,图像处理中的longitudinal image analysis,比如儿童大脑发育啦, 古人类演化啦,这里什么few shot,meta learning这些问题,其实以前都有,而且人家直接画图,直观又清楚,完全可以借鉴一下。可以看看Durrleman的博士论文,里面有很多很好的思想,完全可以用于理解深度学习系统。‘Statistical models of currents for measuring the variability of anatomical curves, surfaces and their evolution‘,


方便交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

推荐阅读:

【ACL 2019】腾讯AI Lab解读三大前沿方向及20篇入选论文

【一分钟论文】IJCAI2019 | Self-attentive Biaffine Dependency  Parsing

【一分钟论文】 NAACL2019-使用感知句法词表示的句法增强神经机器翻译

【一分钟论文】Semi-supervised Sequence Learning半监督序列学习

【一分钟论文】Deep Biaffine Attention for Neural Dependency Parsing

详解Transition-based Dependency parser基于转移的依存句法解析器

经验 | 初入NLP领域的一些小建议

学术 | 如何写一篇合格的NLP论文

干货 | 那些高产的学者都是怎样工作的?

一个简单有效的联合模型

近年来NLP在法律领域的相关研究工作


让更多的人知道你“在看”

【中秋快乐】求问meta-learning和few-shot learning的关系是什么?相关推荐

  1. 二零一九己亥年中秋快乐

    海上生明月,天涯何人与我共此时? 举头望一轮明月,想起小时候呼作白玉盘.沉吟低思,不禁意间想起了故乡,泪湿眼眶.再看这月--还是故乡的亮. 明月几时有?举起一杯酒,问青天.不知天上之宫阙,今夕是何年了 ...

  2. python函数def里面嵌套def,python菜鸟求问关于嵌套函数中作用域范围应该怎么理解?,python嵌套,直接上代码def l(l...

    python菜鸟求问关于嵌套函数中作用域范围应该怎么理解?,python嵌套,直接上代码def l(l 直接上代码def l(list): def d(): return list return d ...

  3. (转)Paper list of Meta Learning/ Learning to Learn/ One Shot Learning/ Lifelong Learning

    Meta Learning/ Learning to Learn/ One Shot Learning/ Lifelong Learning 2018-08-03 19:16:56 本文转自:http ...

  4. 华为:N个同学站成一排,发饼干至少每人一个,相邻分值高的可以多分一个以上饼干,求问至少需要发多少个饼干满足要求

    N个同学站成一排,发饼干至少每人一个,相邻分值高的可以多分一个以上饼干,求问至少需要发多少个饼干满足要求 华为面试被问手撕这道题. 输入分值:[1,2,3] 输出:5 解析:3+1+1 = 5. 但是 ...

  5. opencv对应python版本_【求问各位大佬python3.6怎么使用opencv,用哪个版本】python3 opencv...

    python opencv中imshow输出图像太大,如何调整输出尺寸? 通过resize重置尺寸 参图片,输出图片尺寸(一般我不用这个,None),宽例,高的比例 例子:将图片img,缩小一半显示, ...

  6. c语言switch中用ifelse,初学者求问:用if单分支选择语句替换switch语句?if.else呢...

    菜鸟求问:用if单分支选择语句替换switch语句?if...else呢? 主要是关于default情况的处理,代码如下: /* Fig. 4.7: fig04_07.c Counting lette ...

  7. 历史精华文章分类汇总,祝大家中秋快乐!

    (欢迎关注"我爱计算机视觉"公众号,一个有价值有深度的公众号~) 前几天看到某位朋友在公众号对话界面回复了好多关键字,因为他翻了一遍所有的52CV君发的文章,突然52CV君意识到从 ...

  8. 中秋快乐:数据库的全家福喜添新员

    海上生明月,天涯共此时. 距离上次整理数据库中秋图已过一载,如今,我们看看这一年来有什么新的变化?这些数据库哪些是你熟知的,哪些是你认不出的? 数据和云祝愿读者朋友多安康,中秋快乐,合家团圆. 资源下 ...

  9. 中秋快乐:数据库的全家福指尖细数识几何?

    海上生明月,天涯共此时. 在数据库的世界里,如果也能有一个大团圆的圆桌聚会,该是一个多么热闹的场面? 我整理了一个数据库中秋图,祝热爱数据技术的朋友们中秋快乐,大家也可以顺便数一下,你能找到多少个数据 ...

  10. python soup中文歌词_Python调用BeautifuSoup进行html的文本内容提取问题 [ 求问吃鸡主播beautifu1 boy...

    导航:网站首页 > Python调用BeautifuSoup进行html的文本内容提取问题 [ 求问吃鸡主播beautifu1 boy Python调用BeautifuSoup进行html的文本 ...

最新文章

  1. linux漏洞知乎_安装 Manjaro Linux 后必做的 6 件事 | Linux 中国
  2. pytorch 模型下载,郑重推荐
  3. 我在PMCAFF,感觉身体被掏空
  4. 主流微型计算机,主流微型计算机硬件系统维护
  5. Java设计模式汇总
  6. php中在网页中显示图片代码,用PHP将网页上的Canvas图像保存到服务器上的方法
  7. 在Windows XP中轻松发传真
  8. ActionBarSherlock SlidingMenu整合,解决SlidingMenu example的getSupportActionBar()方法不能用问题
  9. 字典含有重复的key不覆盖_EXCEL字典实例应用一(求首次和末次)
  10. 【MyBatis笔记】11-分步查询懒加载
  11. 安装db2 提示不是有效的win32应用程序?
  12. python模块学习---glob 文件路径查找
  13. paip.提升用户体验以及效率----编程语言趋势以及第四代语言4GL
  14. 常用连接服务器的ssh工具
  15. centos使用wget下载jdk8
  16. mysql sniffer 安装_ubunt 安装mysql-sniffer
  17. Python用win32模块让窗体闪烁!附源码
  18. 面试官:说说你对 options 请求的理解
  19. DBCO-PEG-DPPE DBCO-二棕榈酰基磷脂酰乙醇胺-聚乙二醇
  20. CIE 1931 颜色空间(来自维基百科)

热门文章

  1. 数论专题 hdu2136
  2. Atitit.uml2 api 的编程代码实现设计uml开发 使用eclipse jar java 版本
  3. thinkphp 表单令牌
  4. C#捕获控制台(console)关闭事件
  5. FastSpring.NET V2.05 final 发布[集成Spring.net NHibernate Ajax]
  6. C#+ArcEngine中com对象的释放问题
  7. Dynamics CRM2013/2015 禁止欢迎屏幕(Disable the Welcome Screen)
  8. 3dmax详细讲解全套攻略在线视频教程
  9. 做好数据分析的关键是打好组合拳
  10. JAVA基础--JAVA中的反射机制详解(转)