Model-Agnostic Meta-Learning (MAML) 理解
模型不可知元学习(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) 理解的更多相关文章
- 深度学习课程笔记(十七)Meta-learning (Model Agnostic Meta Learning)
深度学习课程笔记(十七)Meta-learning (Model Agnostic Meta Learning) 2018-08-09 12:21:33 The video tutorial can ...
- [转载]Meta Learning单排小教学
原文链接:Meta Learning单排小教学 虽然Meta Learning现在已经非常火了,但是还有很多小伙伴对于Meta Learning不是特别理解.考虑到我的这个AI游乐场将充斥着Meta ...
- The Rise of Meta Learning
The Rise of Meta Learning 2019-10-18 06:48:37 This blog is from: https://towardsdatascience.com/the- ...
- 论文笔记: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 ...
- (转)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 ...
- 什么是 Meta Learning / Learning to Learn ?
Learning to Learn Chelsea Finn Jul 18, 2017 A key aspect of intelligence is versatility – the cap ...
- 【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 ...
- 论文阅读之: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 ...
- 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 ...
- Django笔记八之model中Meta参数的使用
前面介绍了 model 的字段属性,字段类型,这篇笔记介绍一下 model 的 Meta 选项. 这个选项提供了一些参数,比如排序(ordering),表名(db_table)等. 但这都不是必需的, ...
随机推荐
- docker image 变小的办法
https://www.docker.com/blog/intro-guide-to-dockerfile-best-practices/ https://medium.com/sciforce/st ...
- 小tips:vue结合百度UEditor富文本编辑器实现vue-ueditor-wrap
1.下载vue-ueditor-wrap cnpm i vue-ueditor-wrap -S 下载最新的 UEditor 资源文件放入你项目的静态资源目录中(比如 static 或者 public, ...
- SpringMVC —— SpringMVC简介
SpringMVC SpringMVC技术 与 Servlet技术功能等同,均属于web层开发技术 是一种基于java实现MVC模型的轻量级Web框架 SpringMVC 入门案例 ...
- QT框架实现自定义形状截图效果
文章目录 QT框架普通截图运行效果 QT框架系统级热键的原理 注册热键 反注册热键 获取系统级唯一的整数ID 删除系统级唯一整数ID 原生事件过滤器 QT框架截图的原理 截图窗口 拉框操作 系统剪切板 ...
- Outlook无法接收发送邮件,报错超出最大空间 的解决办法
事件起因: 某客户的outlook邮箱无法接收/发送邮件,报错为:存储区已达到最大大小 解决办法: 解决思路:新建一个数据文件来接收发送邮件 具体操作: 文件-账户配置-数据文件-新建(更 ...
- 离线安装Redis
redis 直接去官网下载tar包就可以 主要是gcc 环境的安装包不太好找,我下载的还缺少 make 如果服务器比较干净,还得预装一下lrzsz-0.12.20.tar.gz 上传下载文件,unzi ...
- Nacos 开启鉴权设置
Nacos 开启鉴权设置 # 开启鉴权 nacos.core.auth.enabled=true nacos.core.auth.system.type=nacos # 开启鉴权之后,你可以自定义用于 ...
- 基于DPAPI+RDP技术实现本地打开远程程序,并映射到本地机器桌面上
本教程使用工具所使用的环境说明: 启动器开发工具:VS2022 启动器所用客户端技术:.NET 8 + WPF 启动器其他技术:DPAPI 启动器发布的可执行程序,系统要求:Windows 7以及以上 ...
- ROS基础入门——实操教程
ROS基础入门--实操教程 前言 本教程实操为主,少说书.可供参考的文档中详细的记录了ROS的实操和理论,只是过于详细繁杂了,看得脑壳疼,于是做了这个笔记. Ruby Rose,放在这里相当合理 前言 ...
- USB协议详解第9讲(USB描述符-HID描述符)
1.HID设备概述 USB设备中有一大类就是HID设备,即Human Interface Devices,人机接口设备.这类设备包括鼠标.键盘.游戏手柄等,主要用于人与计算机进行交互.HID设备可以作 ...