在看MAML这篇论文的时候,因为是初学者,很多都不懂,网上查了许多资料也没看明白,最后来来回回找了很多资料结合原文才看懂一些,在这简单分享一下。

什么是元学习?

元学习(meta-learning)已经有很多定义了,最常见的就是学习学习,即learning to learn。这里从其他方向说一个可能不是很好但是有助于理解的定义,就是把常规的训练模型的某一个过程替换成一个可学习的模块。比如:

  1. MAML就是把模型初始化的过程拿出来换成了一个可以学习的过程。

MAML原文

  1. MetaReg是把正则项换成了一个可以学习的部分。

MetaReg原文

  1. 还有将梯度下降过程替代为单独的神经网络模型的。

Optimization as a Model for Few Shot Learning 原文

要解决什么问题?

MAML提出来时是为了解决少样本学习问题,即few-shot learning。后续MLDG将该方法拓展到域泛化(Domain Generalization)的问题,其他方法也有将MAML类似的学习过程用于解决其他问题,不过后续我就不是很了解了。

那什么是少样本学习呢?顾名思义,就是样本比较少的学习。。。。。比如对小孩子来说,给他看几张长颈鹿的图片他就能认识长颈鹿,但是对于机器学习来说,需要大量的数据进行训练,如果学习样本比较少的话,模型就很难work起来,少样本学习要解决的就是这个问题。

概念定义

MAML将原来普通的训练集和测试集更改为了训练任务和测试任务,每种任务都有相应的训练集和测试集,为了便于区分,也叫做支持集support set和查询集query set。其中训练任务的支持集和查询集用于训练,测试任务的支持集用于微调,为了区别于预训练,也可以叫快速学习,最后测试任务的查询集是模型要表现良好的目标,这也是MAML的一个重点,即不关心在训练任务上的效果,只希望在测试任务的查询集上有较好的表现。

MAML算法

这是MAML原文的伪代码,为了理解这篇文章,我在YouTube找到一个视频,其中有一个示意图画得很好。

视频链接

就是这张图帮我理解了MAML的学习过程。可大致分为以下五步:

  1. 先把模型的参数copy很多份;

  1. 在copy出来的副本上使用训练任务的support set进行训练,将参数更新一次(或多次);

  1. 使用更新后的参数,在训练任务的query set上计算损失;

  1. 将所有损失结合,计算一个总的损失;

  1. 使用这个损失更新原始参数θ,这也是第一步copy模型的目的,就是计算两次梯度,但是更新是对于原始参数而言的。

有兴趣的可以看下原视频,讲的比我写的要好很多。

由于我不太了解强化学习的内容,所以就拿MAML原文的前一部分即监督学习的部分讲解一下有关的定义。如图所示,红色框是外循环outer loop,使用的数据是query set,蓝色框是内循环inner loop,使用support set。

MAML原作者代码

其他论文的实验细节问题就不再赘述了,大家可以阅读原文,同时有一些比较相关的文章列举如下:

Probabilistic Model-Agnostic Meta-Learning (原作者工作)

HOW TO TRAIN YOUR MAML (对MAML的问题进行了改进)

MAML刚开始理解起来很困难,希望这篇能有帮助,因为看MAML的时候已经是很久之前了,所以写的比较简单,下边列举一些博文可以一起阅读帮助理解。

Meta-Learning: Learning to Learn Fast (这篇写得很好也很详细,很全面)

元学习: 学习如何学习【译】(这是上一篇博客的中文版)

李宏毅老师讲的元学习(B站)

李宏毅老师讲的MAML(YouTube)

Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks(MAML)简析相关推荐

  1. Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks阅读笔记

    Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks-阅读笔记 Abstract MAML算法 问题设置 MAML算法 M ...

  2. Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks(MAML)研读笔记

    这里是引用 MAML全文目录 论文地址 摘要 介绍 相关概念 model-agnostic N-way K-shot Task 5-way 5-shot的实验设置 算法流程 fine-tune算法流程 ...

  3. MAML:Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks论文精读及详解

    由于论文写得比较抽象,偏向于数学,因此,在开篇首先谈谈我自己对MAML的理解,在后面再简要的抽取一下论文的核心部分 元学习解决的问题 首先,对于深度学习领域,模型初始化的权重参数尤为重要,模型参数初始 ...

  4. 深度学习材料:从感知机到深度网络A Deep Learning Tutorial: From Perceptrons to Deep Networks

    In recent years, there's been a resurgence in the field of Artificial Intelligence. It's spread beyo ...

  5. 理解Meta Learning 元学习,这篇文章就够了!

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 AI编辑:我是小将 本文作者:谢杨易 1 什么是meta lear ...

  6. (转)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 ...

  7. Meta Learning在NLP领域的应用

    Hi,这里是哈林,今天来跟大家聊一聊Meta Learning在NLP领域的一些应用. 哈林之前在学校科研的方向是NLP,个人对如何将先进的机器学习算法应用到NLP场景很感兴趣(因为好水paper), ...

  8. 强化学习-把元学习(Meta Learning)一点一点讲给你听

    目录 0 Write on the front 1 What is meta learning? 2 Meta Learning 2.1 Define a set of learning algori ...

  9. 有关meta learning 要读的论文清单

    参考博客:https://blog.csdn.net/weixin_37589575/article/details/92801610 论文链接 <Optimization as a Model ...

最新文章

  1. 以下用于数据存储领域的python第三方库是-Python数据存储及表示
  2. CentOS下的账户管理
  3. Java负数的位运算
  4. 别人家的公司!Facebook向每位员工发放1000美元,鼓励远程办公
  5. 基于JAVA+SpringMVC+Mybatis+MYSQL的公司人事档案管理系统
  6. 小学计算机课评价方案,小学信息技术课堂评价方法的研究
  7. NSNotification 消息通知的3种方式
  8. qt UI design tips
  9. HTML学习笔记——DOCTYPE和DTD,标准模式和兼容模式
  10. 《挑战程序设计竞赛》 读后感
  11. matlib 多种方法实现图像旋转不使用imrotate函数
  12. Teambition X 2019 校招
  13. 查找SCI期刊的JCR缩写
  14. 项目案列:银行ATM存款机系统(笔记经典案列)
  15. Java 近期新闻:Classfile API 草案、Spring Boot、GlassFish、Reactor 项目、Micronaut
  16. Eclipse时区出问题,与北京时间相差八小时
  17. 【Spring】Spring面试题
  18. Spring事务传播特性实例解析(以及如何使用注解形式事务)
  19. windows如何查看剪贴板历史
  20. Oracle按时间分组查询

热门文章

  1. 打开工控机电源而计算机没有反应,工控机开机后无反应如何解决
  2. 云计算系统测试之技术概念
  3. 解决 fatal: unable to access ‘https://github.com/qweertu/git-demo.git/‘: error setting certificate...
  4. Can‘t resolve symbol ‘Depart‘解决方法
  5. [vue3] 菜单动态折叠效果
  6. google 广告条代码
  7. Swing制作高仿QQ界面包含主界面、聊天窗口、系统设置窗口|圆角界面|透明|颜色|渲染|换肤
  8. Invalid bound statement (not found)错误的可能原因
  9. Java Class类的简单用法
  10. ❤️一起谈一谈js中的宏任务和微任务!