模型不可知元学习(Model-Agnostic Meta-Learning, MAML)的目标是使模型每次的梯度更新更有效、提升模型的学习效率、泛化能力等,它可以被看做一种对模型进行预训练的方法,适用于小样本学习。

  原文:http://proceedings.mlr.press/v70/finn17a/finn17a.pdf

  其它理解可以看:https://zhuanlan.zhihu.com/p/57864886

主旨

  论文的主旨主要就概括为以下损失函数(元目标)。其中$f_\theta$表示某个参数为$\theta$的模型;$p(\mathcal{T})$表示适用于模型$f_\theta$的各种任务的分布,它的一个抽样$\mathcal{T}_i$就表示模型的某个任务,任务包含数据集和损失函数;模型在任务$\mathcal{T}_i$上进行一次训练后所得到的模型为$f_{\theta_i'}$ 。

$\min\limits_\theta\sum\limits_{\mathcal{T}_i\sim p(\mathcal{T})}\mathcal{L}_{\mathcal{T}_i}(f_{\theta_i'})=\sum\limits_{\mathcal{T}_i\sim p(\mathcal{T})}\mathcal{L}_{\mathcal{T}_i}(f_{\theta-\alpha\nabla_\theta\mathcal{L}_{\mathcal{T}_i}(f_{\theta})})$

  以上目标表示,优化模型参数$\theta$,使得模型在某个任务上进行一次梯度更新之后,在这个任务上的表现就要好。惩罚的是模型对数据参数的不敏感性:我不要通过多次训练才能达到比较好的效果,我只要一次训练,就达到!

  当然,其中的一次梯度更新也可以修改为多次更新。解释就是:让模型能在某个任务的数次梯度更新内,达到好的效果。当然,由于这个目标的元更新需要计算二阶梯度,每次元更新所需的显存会因前面梯度更新次数增加而过大。感觉一次就够了,多次没有意义。

思考

  根据以上目标,我们可以在此基础上思考各种用法的可能性。

  1、小样本学习,文中介绍的就是这个。目标函数就是上面的式子,梯度更新和元更新阶段用的同一个任务数据集的不同数据抽样。具体做法看算法2。

  2、任务分布$p(\mathcal{T})$中的任务类型不一定是要接近的。比如有的模型的通过替换输出层,既可以适应分类任务,又可以适用于缺陷检测任务。那么同时用这些任务进行MAML训练,能让模型对多种类型任务的适用性更强。也就是通过MAML的参数初始化,模型能同时在多类任务上实现快速学习。

  3、前后梯度更新与元更新用不同的任务类型,前一次用数据充足的,后一次用数据不充足的。比如让模型经过一次的缺陷检测任务训练,能解决分类任务问题。暂时还没想到什么好的应用。

$\min_\theta\sum\limits_{\mathcal{T}_i\sim p_1(\mathcal{T}),\mathcal{T}_j\sim p_2(\mathcal{T})}\mathcal{L}_{\mathcal{T}_j}(f_{\theta_i'})=\sum\limits_{\mathcal{T}_i\sim p_1(\mathcal{T}),\mathcal{T}_j\sim p_2(\mathcal{T})}\mathcal{L}_{\mathcal{T}_j}(f_{\theta-\alpha\nabla_\theta\mathcal{L}_{\mathcal{T}_i}(f_{\theta})})$

实验部分

优势

  图2展示了MAML相较于预训练的优势:

  1、左边2张图可以看出,用MAML在类似的正弦函数上进行元训练后,在未见过的正弦函数上,用5个抽样进行一次梯度更新就能回归出比较好的结果,而用10个抽样则几乎拟合出了整个曲线。而且可以看出梯度更新的次数对结果影响很小,说明一次更新就能得到比较理想的结果。

  2、右边2张图看出,用普通预训练模型微调,在小样本数据上作用很小。

二阶梯度的省略

  文章做了实验忽略元更新中的二阶导数(Hessian矩阵),仅保留元更新中的一阶部分。发现性能几乎没有损失,表明MAML的大部分改进来自更新后参数值处目标的梯度,而不是二阶梯度。过去的工作已经观察到ReLU神经网络的局部几乎线性的(ReLU的二阶导数为0),也就是大多数情况下二阶导数接近于零,部分解释了一阶近似的良好性能。这种近似使模型训练加速33%。

Model-Agnostic Meta-Learning (MAML) 理解的更多相关文章

  1. 深度学习课程笔记(十七)Meta-learning (Model Agnostic Meta Learning)

    深度学习课程笔记(十七)Meta-learning (Model Agnostic Meta Learning) 2018-08-09 12:21:33 The video tutorial can ...

  2. [转载]Meta Learning单排小教学

    原文链接:Meta Learning单排小教学 虽然Meta Learning现在已经非常火了,但是还有很多小伙伴对于Meta Learning不是特别理解.考虑到我的这个AI游乐场将充斥着Meta ...

  3. The Rise of Meta Learning

    The Rise of Meta Learning 2019-10-18 06:48:37 This blog is from: https://towardsdatascience.com/the- ...

  4. 论文笔记:Visual Question Answering as a Meta Learning Task

    Visual Question Answering as a Meta Learning Task ECCV 2018 2018-09-13 19:58:08 Paper: http://openac ...

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

  6. 什么是 Meta Learning / Learning to Learn ?

    Learning to Learn Chelsea Finn    Jul 18, 2017 A key aspect of intelligence is versatility – the cap ...

  7. 【MetaPruning】2019-ICCV-MetaPruning Meta Learning for Automatic Neural Network Channel Pruning-论文阅读

    MetaPruning 2019-ICCV-MetaPruning Meta Learning for Automatic Neural Network Channel Pruning Zechun ...

  8. 论文阅读之:Deep Meta Learning for Real-Time Visual Tracking based on Target-Specific Feature Space

    Deep Meta Learning for Real-Time Visual Tracking based on Target-Specific Feature Space  2018-01-04  ...

  9. MetaPruning: Meta Learning for Automatic Neural Network Channel Pruning

    MetaPruning: Meta Learning for Automatic Neural Network Channel Pruning 2019-08-11 19:48:17 Paper: h ...

  10. Django笔记八之model中Meta参数的使用

    前面介绍了 model 的字段属性,字段类型,这篇笔记介绍一下 model 的 Meta 选项. 这个选项提供了一些参数,比如排序(ordering),表名(db_table)等. 但这都不是必需的, ...

随机推荐

  1. man 切换颜色配置

    man 命令显示的命令手册默认是没有颜色的.为了使 man 命令的输出更为生动,可以使用如下两种方法修改 man 命令的颜色配置. 方法一:设置环境变量 在你的 .zshrc / .bashrc 中添 ...

  2. 网络安全公开数据集Maple-IDS,恶意流量检测数据集开放使用!

    Maple Dataset 枫叶数据集Maple Dataset枫叶数据集由东北林业大学网络安全实验室(https://maple.nefu.edu.cn/lab/)公开发布,是用于入侵检测评估的数据 ...

  3. 淘宝开放平台接口出租,top平台接口出租,订单R2权限出租,淘宝开放平台R2权限,淘宝开放平台进存销应用出租,淘宝开放平台API出租,TOP平台API出租,淘宝API出租

    淘宝开放平台  open.taobao.com 早在 2016年4月已经关闭erp标签的应用申请了,订单管理标签也关闭了. 这会儿目前肯定是申请不到带有R2权限的订单应用了,要做类似打单软件.订单同步 ...

  4. 详解JVM 内存结构与实战调优总结

    详解JVM 内存结构与实战调优总结 GC优化案例做个总结: 1在进行GC优化之前,需要确认项目的架构和代码等已经没有优化空间.我们不能指望一个系统架构有缺陷或者代码层次优化没有穷尽的应用,通过GC优化 ...

  5. 中文关键字检索分析-导出到csv或者excel-多文件或文件夹-使用python和asyncio和pandas的dataframe

    1.02版本 把原来的tab一个个拼接成文件输出,改成pandas的dataframe 使用asyncio库来使用协程,但是测试下来速度好像是差不多的.可能速度太快了,没能很好的测出来差异. 原来的最 ...

  6. DNN、CNN、RNN的区别

    参考1:CNN.RNN.DNN区别 参考2:一文读懂 CNN.DNN.RNN 内部网络结构区别 一张图解释所有: 感知机(输入层.输出层.一个隐藏层)-->不能解决复杂的函数-->神经网络 ...

  7. JavaScript – XMLHttpRequest

    前言 XMLHttpRequest 是 JavaScript built-in 的一个 class,用于发送 HTTP 请求,俗称 AJAX. 这几年 XMLHttpRequest 已经逐渐被 Fet ...

  8. MDC – Text field

    前言 Angular Material 只有 Form field, 但 Material Design 有份 Text field 和 Form field, Form field 是给 check ...

  9. ASP.NET Core C# 反射 & 表达式树 (第二篇)

    前言 上一篇讲到了各种反射的操作方式, 这一篇主要说说如何找到类型. Type Information 在找类型的时候, 除了依据简单的 string 以外, 还会用到很多类型属性来做判断. 比如它是 ...

  10. LeetCode题集-4 - 寻找两个有序数组的中位数,图文并茂,六种解法,万字讲解

    题目:给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出并返回这两个正序数组的 中位数 . 算法的时间复杂度应该为 O(log (m+n)) . 作为目前遇到 ...