点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

AI编辑:我是小将

本文作者:谢杨易

1 什么是meta learning

优化目标和loss     一般的机器学习任务是,通过训练数据得到一个模型,然后在测试数据上进行验证。一般来说我们仅关注模型在该任务上的表现。而meta learning则探讨解决另一个问题,就是我们能否通过学习不同的任务,从而让机器学会如何去学习呢?也就是learn to learn。我们关注的不再是模型在某个任务上的表现,而是模型在多个任务上学习的能力。

试想一下机器学习了100个任务,他在第101个任务上一般就可以学的更好。比如机器学习了图像分类、语音识别、推荐排序等任务后,在文本分类上,它就可以因为之前学到的东西,而学的更好。meta learning就是解决这个问题,如何让机器去学习。

一般的机器学习任务,我们是需要学习一个模型f,由输入x得到输出y。而meta learning,则是要学习一个F,用它来学习各种任务的f。如下图

2 为什么需要meta learning

m5 优化目标和loss5 优化目标和losseta learning的优势主要有

  • 让学习更加有效率。我们通过多个task的学习,使得模型学习其他task时更加容易。

  • 样本数量比较少的任务上,更加需要有效率的学习,从而提升准确率和收敛速度。meta learning是few shot learning的一个比较好的解决方案

3 meta learning可以学到什么

通过meta learning,我们可以学到

  • 模型参数 model parameters。包括模型的初始化参数,embedding,特征表达等

  • 模型架构。可以通过network architecture search(NAS)得到模型的架构,比如几层网络,每层内部如何设计等

  • 模型超参数。比如learning rate,drop out rate,optimizer等。这个是AutoML的范畴

  • 算法本身,因为不一定是一个网络模型。

4 常用数据集

meta learning需要训练多个task,故一般每个task样本不会很多,其数据集本身也是few shot。常用的数据集datasets如下。

Omniglot

它由很多种不同语言构成,包括1623种字符,每个字符20个样本。所以也算是few shot learning了。

miniImageNet

ImageNet的few shot版本

CUB

Caltech-UCSD Birds。各种鸟类的图片,也是few shot。

5 优化目标和loss

如何评价meta learning的好坏呢,也就是我们的优化目标是什么呢。一般来说,meta learning需要多个机器学习task作为数据集,其中一部分task作为training task,另一部分作为testing task。training task和testing task中都包括训练数据和测试数据。

我们先通过task1学习到模型f1,并得到损失函数l1。然后再task2上学习模型f2,并得到l2。以此类推,得到所有task上的损失函数之和,即为meta learning的损失函数。如下

我们的目标就是降低这个损失函数 L(F)。

6 MAML

ICML 2017

Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks。

6.1 用来解决什么问题

MAML focus在学习模型初始化参数上,这和pretrain models的目标是相同的。pretrain models通过有监督或自监督方式,先在数据集充足的任务A上训练模型,然后利用该模型的参数来初始化数据量比较少的任务B。通过迁移学习的方式,让数据量比较少的任务,也能够train起来。meta learning和pretrain models虽然都可以帮助模型参数初始化,但二者差别还是很大的

  • pretrain model的任务A,一般来说数据量比较充足,否则自己都没法train起来,也就无法得到一个不错的初始化参数

  • pretrain model的初始化参数,重在当前任务A上表现好,可能在任务B上不一定好。meta learning则利用初始化参数,在各任务上继续训练后,效果都不错。它重在模型的潜力

6.2 loss和优化目标

MAML loss function如下

所有task的testing set上的loss之和,即为MAML的Loss,我们需要最小化这个loss。通过gradient descent的方法就可以实现。

6.3 创新点

MAML的创新点在于,训练模型时,在单个任务task中,模型参数只更新一次。李宏毅老师认为主要原因是

  • MAML希望模型具有单个task上,参数只更新一次,就可以得到不错初始化参数的能力

  • meta learning的数据集一般都是few shot的,否则很多task,训练耗时会很高。而few shot场景下,一般模型参数也更新不了几次

  • 虽然在训练模型时只更新一次初始化参数,但在task test时,是可以更新多次参数,让模型充分训练的

  • meta learning一般会包括很多个task,单个task上只更新一次,可以保证学习效率。

6.4 如何更新参数

MAML更新参数的过程如下所示

  • 初始化meta learning参数φ0

  • 由φ0梯度下降一次,更新得到θm

  • 在task m上更新一次参数

  • 通过第二次θ的方向,确定φ的更新方向,得到φ1。

而对于model pretrain,其φ和θ的更新始终保持一致。

7 Reptile

openAI,2018,On First-Order Meta-Learning Algorithms

7.1 模型特点

Reptile和MAML一样,也是focus在模型参数初始化上。故loss function也基本相同。不同之处是,它结合了pretrain model和MAML的特点,在模型参数更新上有所不同。Reptile也是先初始化参数φ0,然后采样出任务m,更新多次(而不是MAML的单次),得到一个不错的参数θm。利用θm的方向来更新φ0到φ1。同样的方法更新到φ2

好消息,小白学视觉团队的知识星球开通啦,为了感谢大家的支持与厚爱,团队决定将价值149元的知识星球现时免费加入。各位小伙伴们要抓住机会哦!

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

理解Meta Learning 元学习,这篇文章就够了!相关推荐

  1. 8.7 Meta learning元学习全面理解、MAML、Reptile

    文章目录 1.介绍 为什么需要元学习? few-shot learning reinforcement learning 2.概念 3. Meta learning 三个步骤 定义一组learning ...

  2. Meta Learning 元学习

    来源:火炉课堂 | 元学习(meta-learning)到底是什么鬼?bilibili 文章目录 1. 元学习概述 Meta 的含义 从 Machine Learning 到 Meta-Learnin ...

  3. Meta Learning(元学习)详解

    元学习 概述 基本概念 基本分类 基本流程 模型结构 概述 元学习(Meta Learing)的提出是针对传统神经网络 模型的泛化性能不足.对信种类任务适应性较差的特点.主要表现为通过少量的计算和新训 ...

  4. 机器学习15 -- Meta Learning 元学习

    1 什么是meta learning 一般的机器学习任务是,通过训练数据得到一个模型,然后在测试数据上进行验证.一般来说我们仅关注模型在该任务上的表现.而meta learning则探讨解决另一个问题 ...

  5. 彻底理解 SpringIOC、DI,这篇文章就够了

    前言 你可能会有如下问题: 1.想看Spring源码,但是不知道应当如何入手去看,对整个Bean的流程没有概念,碰到相关问题也没有头绪如何下手 2.看过几遍源码,没办法彻底理解,没什么感觉,没过一阵子 ...

  6. 理解激活函数作用,看这篇文章就够了!

    转自微信公众号: 机器学习算法与自然语言处理 查阅资料和学习,大家对神经网络中激活函数的作用主要集中下面这个观点: 激活函数作用 激活函数是用来加入非线性因素的,解决线性模型所不能解决的问题. 下面我 ...

  7. 持续学习+元学习+无监督学习文章调研(七)

    持续学习+元学习+无监督学习文章调研(七) LEARNING TO LEARN WITHOUT FORGETTING BY MAXIMIZING TRANSFER AND MINIMIZING INT ...

  8. 万字心得,PMP学习考试那些事儿,看这篇文章就够了

    声明:文章为原创,首发于知乎,链接:万字长文!PMP考试那些事儿,看这篇文章就够了 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/524966002 以下内 ...

  9. Python-Excel 零基础学习xlwings,看这篇文章就够了

    零基础学习xlwings,看这篇文章就够了 | 一起大数据-技术文章心得 (17bigdata.com) 1.xlwings是什么 2.xlwings安装更新与卸载 3.xlwings详细使用 4.案 ...

最新文章

  1. 石英晶体振荡器的结构
  2. 英雄联盟如何指挥团战?AI帮你做决策(附资源)
  3. C#与java可以共用的DES加密解密
  4. 高校c语言程序设计比赛,分秒必争,力争上游,计算机学院举办第八届C语言程序设计挑战杯...
  5. NDK 开发实战 - 封装 java 层 sdk 模型
  6. python购物程序_Python学习:购物程序
  7. 智慧城管管理平台和监控系统建设方案
  8. 大数据Saprk----Spark基础-scala的隐式转换
  9. 贝壳CVR转化率预估模型实践
  10. GOF23式——Prototype
  11. 32位系统无法运行64位系统安装文件
  12. JPEG2000图像压缩算法学习
  13. 架构衍变过程----58同城沈剑:好的架构源于不停地衍变,而非设计
  14. 爱普生 RS330 打印机墨水连供装置墨盒吸墨复位方法
  15. ThinkPad适不适合计算机专业,thinkpad适合什么人用
  16. 6000分“无聊大师”——张小龙
  17. 收集 QQ旋风离线下载帐号
  18. 炫酷的展示画册制作神器,你确定不心动吗 | 万彩动画大师
  19. tinyriscv-csr和clint
  20. 基于Java+Derby实现(PC)驾考试题管理系统【100010349】

热门文章

  1. 亚马逊首席科学家李沐「实训营」国内独家直播,马上报名 !
  2. 谷歌、阿里们的杀手锏:三大领域,十大深度学习CTR模型演化图谱
  3. 科大讯飞市值腰斩背后,AI产业集体思考如何落地?
  4. 2018最后一个月的Python热文Top10!赶紧学起来~
  5. 百度王海峰:多模态深度语义理解将让AI更深地理解真实世界
  6. SpringBoot 线程池,也太好用了叭!
  7. 阿里发布新工具,直接帮你改代码!网友:工作量又减轻了~
  8. 一步步实现 Redis 搜索引擎
  9. 明明程序员很累,为什么还有这么多人想入行?
  10. 盘点开发中那些常用的MySQL优化