Meta-learning

news2024/10/6 12:30:48

基本理解

meta learning翻译为元学习,也可以被认为为learn to learn

元学习与传统机器学习的不同在哪里?

元学习与传统机器学习, 这里举个通俗的例子,拿来给大家分享?

  • 把训练算法类比成学生在学校学习,传统的机器学习任务对应的是每个科目上分别训练一个模型,而元学习是提高学生的整体学习能力,学会学习。

  • 学校中,有的学科各科成绩都很好,有的学生却普遍存在偏科的现象。

  • 各科成绩都很好,说明各科的元学习能力强,学会了如何学习,可以迅速使用不同科目的学习任务

  • 偏科学生元学习能力较弱,只能某一科学习成绩较好,换门科就不行了,不会举一反三,触类旁通。

现在经常使用的深度学习网络是偏科生分类和回归对应的网络模型完全不同,即使同样是分类任务,把人脸识别的网络架构用在分类ImageNet数据上**,也未必能达到很高的准确率**。

还有一个不同点:

  • 传统的深度学习方法都是从头开始学习(训练),即learning for scratch。对算力和时间都是更大的消耗和考验。
  • 元学习强调的是从不同的若干小任务和小样本来学习一个对未知样本未知类别都有好的判别和泛化能力的模型

基本思想

写在前面,图片均来自对李宏毅老师的教学视频。
在这里插入图片描述
对图1的解释:
Meta learning 有称为learn to learn。是说让机器学习学会学习,拥有学习的能力。

元学习的训练样本和测试样本都是基于任务的,通过不同类型的任务训练模型,更新模型参数,掌握学习技巧。然后举一反三,更好地学习其他任务。比如:任务1是语音识别、任务2是图像识别 ⋯ \cdots 任务100是文本分类。任务101与前面的100个任务模型均不同,训练任务即为这100个不相同的任务,测试任务为第101个
在这里插入图片描述
对图2的解释:
在机器学习中,训练样本的训练集称为train set 测试集称为test set。 元学习广泛应用于小样本学习中,在元学习中,训练样本的训练集称为$support set , 训 练 样 本 的 测 试 集 叫 做 ,训练样本的测试集叫做 ,query set$.

注意:在机器学习中,只有一个大样本数据集,将这个一个大数据集分成两部分,称为train set test set

但是在元学习中,不只有一个数据集,有多少个不同的任务,就有多少个数据集,然后每个数据集又分成两个部分:分别称为:
s u p p o r t s e t 和 q u e r y s e t support set和query set supportsetqueryset.
这里没有考虑验证集:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i3ZaLzEw-1669718326587)(https://img-加粗样式blog.csdnimg.cn/img_convert/19d51bbe90254071612ea8ac627eb2bb.webp?x-oss-process=image/format,png#pic_center)]
图3 为传统深度学习操作方式:即:

  • 定义一个网络结构
  • 初始化参数
  • 通过自己选择优化器来更新参数
  • 通过两次epoch进行参数更新》
  • 得到网络的最终输出。

元学习与传统深度学习联系在哪里?

图3中红色方框的东西是认为设计的,即我们常说的超参数
而元学习的目标都是去自动学习或者说代替放宽中的东西,不同的代替方式就发明出不同的元学习算法

在这里插入图片描述
对图4的解释:

  • 图4简单介绍了元学习的原理:
    • 在神经网络算法,都需定义一个损失函数来评价模型的好坏,元学习的损失都是通过 N N N个任务的测试损失相加的,定义在第 N N N个任务的测试损失相加是 l n l^n ln.对于 N N N个任务来说,
  • 总的损失为: L ( F ) = ∑ n = 0 n l n L(F) = \sum^n_{n = 0}l^n L(F)=n=0nln,这就元学习的优化目标。

假设两个任务 T a s k 1 Task1 Task1 T a s k 2 Task2 Task2,通过训练任务1,得到任务1的损失函数 l 1 l_1 l1,通过训练任务2,得到任务2损失为 l 2 l_2 l2,然后将这两个任务损失函数相加,得到整个训练任务的损失函数,即图4右上角的公式。

如前文对元学习的了解不够,后面还有更加详细的解释。
Meta learning的算法有很多,有的高大上的算法可以i针对不同的训练任务,输出不同的神经网络结构和超参数。例如:
$ Neural Architecture Search (NAS) 和 AutoML 。 这 些 算 法 大 多 都 相 当 复 杂 , 我 们 普 通 人 难 以 实 现 , 另 外 一 种 比 较 容 易 实 现 M e t a l e a r n i n g 算 法 , 就 是 本 文 要 介 绍 的 。这些算法大多都相当复杂,我们普通人难以实现,另外一种比较容易实现Meta learning算法,就是本文要介绍的 MetalearningMAML 和 Reptile$。不改变深度神经网络结构,只改变网络的初始化参数

MAML

理解MAML算法的损失函数的含义和推导过程。首先的与pre-trainiing区分开来。

对图5的解释:
我们定义初始化参数为 ϕ \phi ϕ,其初始化参数为 ϕ 0 \phi_0 ϕ0,定义在第 n n n个测试任务上,训练之后的模型参数为 θ n ^ \hat{\theta^n} θn^,于是MAML的总损失函数为: L ( ϕ ) = ∑ n = 1 n l n ( θ n ^ ) L(\phi) = \sum^n_{n = 1}l^n(\hat{\theta^n}) L(ϕ)=n=1nln(θn^)

maml损失算法图解

在这里插入图片描述

MAL与pre-training有什么影响?

损失函数不同

MAML的损失函数为: L ( ϕ ) = ∑ n = 1 n l n ( θ n ^ ) L(\phi) = \sum^n_{n = 1}l^n(\hat{\theta^n}) L(ϕ)=n=1nln(θn^)
预训练的损失函数为: L ( ϕ ) = ∑ n = 1 n l n ( ϕ ) L(\phi) = \sum^n_{n = 1}l^n(\phi) L(ϕ)=n=1nln(ϕ)
直观上理解是MAML所测评的损失是在任务训练之后测试loss。而预训练直接在原有基础上球损失没有经过的训练。如图6所示:
在这里插入图片描述

优化思想不同

这里先分享以下,我们看到对损失函数的生动描述。
损失函数奥妙:初始化参数掌控全场,分任务参数各自为营

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
李宏毅老师在这里举了个很生动比喻:
他把MAML比作选择读博,即更在意的是学生的以后的发展潜力;而model pre-training就相当于选择毕业直接去大厂工作,马上就把所学技能兑现金钱,在意的是当下表现如何。如图9所示。

在这里插入图片描述
MAML的优点级特点:

  • 计算速度快
  • 所有更新参数步骤都被限制在了一次:级one -step。
  • 在用这个算法时,即测试新任务的表现可以更新更多次。
  • 适用于数据有限的情况。
    在这里插入图片描述
    MAML的工作机理
    在这里插入图片描述
  • Require1:task的分布,即随机抽取若干个task组成任务池
  • Require2:step size是学习率,MAML基于二重梯度,每次迭代包括两次参数更新的过程,所以有两个学习率可以调整。
  • 随机初始化模型的参数
    循环,可以理解为一轮迭代过程或一个epoch
  • 随机对若干个task采样,形成一个batch。
  • 对batch中的每一个task进行循环
  • 对利用batch中的某一个task中的support set,计算每个参数的梯度。在N-way K-shot的设置下,这里的support set应该有NK个。(N-way K-shot意思是有N种不同的任务,每个任务有K个不同的样本)。
  • 第一次梯度的更新。
    结束第一次梯度更新
  • 第二次梯度更新。这里用的样本是query set。步骤8结束后,模型结束在该batch中的训练,开始回到步骤3,继续采样下一个batch。

有一个对MAML更直观的图:
在这里插入图片描述
在这里插入图片描述

MAML的应用: Toy Example

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
针对前面MAML,提出一个问题:
在这里插入图片描述

Reptile 其算法图如下:

在这里插入图片描述
在这里插入图片描述
其伪代码如下:
在这里插入图片描述
在这里插入图片描述
在Reptile中:

  • 训练任务的网络可以更新多次。
  • reptile不再项MAML一样计算梯度,而是直接用一个参数 ∈ \in 乘以meta 网络,与训练任务网络参数的差来更新meta 网络参数
  • 从效果看Reptile与,MAML基本持平。
    以上为对元学习的深入理解,后续可能出MAML数学公式推导,感兴趣请点赞留言。

总结

慢慢的将各种元学习进一步的搞定,都行啦的样子与打算。
先大致了解一波,然后开始慢慢的研究元学习,并将其研究透彻。
全部都将其搞定都行啦的样子与打算。

总结

可以类比集成学习的方式来进行元学习的学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/45963.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Macleod中的偏振

我们用偏振来描述光波电场的方向。虽然是很复杂,但它的影响是完全明确和可计算的。图1显示了一个简单的长波通滤波器在斜入射时的计算性能,其曲线标记为p-偏振、s-偏振和平均极化。这些名称是什么意思? 图1. 在45条件下计算的600nm长波通滤…

华清远见(上海中心)22071

platform总线&#xff0c;三种匹配方式 一、设备名字匹配 设备文件代码>>> #include <linux/init.h> #include <linux/module.h> #include <linux/platform_device.h>//对设备信息进行填充 struct resource res[]{[0]{.start0x12345678,.end0x12…

服务网关之Spring Cloud Gateway

目录一、网关简介二、Gateway简介三、Gateway快速入门1、基础版2、增强版3、简写版四、Gateway核心架构1、基本概念2、执行流程五、断言1、内置路由断言工厂2、自定义路由断言工厂一、网关简介 大家都知道在微服务架构中&#xff0c;一个系统会被拆分为很多个微服务。那么作为客…

Linux Docker基础学习

Linux Docker基础学习Linux指令Linux安装Docker检查是否安装成功容器容器的创建删除运行停止容器端口转发查看容器提供的端口号Docker交互模式镜像镜像的拉取删除镜像的导入导出Dockerfile制作镜像上传镜像到DockerhubDockerfile文件详解FROMRUN指令镜像中添加文件&#xff08;…

运维监控系统PIGOSS BSM 对“实时数据复制”系统的监控管理

前言 随着应用信息化程度的不断深入&#xff0c;长期积累的业务数据变得价值连城。业务数据备份安全是业务连续性的重要保障&#xff1b; 而同时&#xff0c;业务数据也指导成为企业进行业务分析最有价值的科学依据。 所以&#xff0c;人们纷纷为业务系统建设容灾备份系统&…

【性能|优化】TB级flink任务报错分析:Could not compute the container Resource

文章目录一. 问题引入1. 场景描述2. 日志简析二. 初级问题分析与解决1. 问题分析1.1. yarn的调度器设置1.2. 程序设置2. 问题解决三. &#xff08;性能&#xff09;新的问题1. 问题描述2. 理想化的最优方案3. "PlanB"的解决方案四. 反思与迭代一. 问题引入 1. 场景描…

2022年工业与电力物联网技术现状分析

主要内容22年工业与电力物联网技术现状分析10大科技趋势达摩院 2022 十大科技趋势腾讯 融合2022年十大数字科技前沿应用趋势艾瑞咨询 2022年中国科技与IT十大趋势物联网技术物联网架构体系结构简介应用层2022年整体情况物联网平台及相关能力平台2022年整体情况物联网网络2022年…

Python学习:json对象与string相互转换教程

首先要明确&#xff0c;python里有json这个库&#xff0c;但并没有json这个类&#xff0c;所以所谓的json对象本质上就是一个dict&#xff1b;而json这个库&#xff0c;用于实现dict到string、string到dict的互转。 更具体一点&#xff0c;json对象&#xff08;dict&#xff0…

鼠标监视 | 拖拽方块 | Vue

title: 拖拽功能 tags: Vue categories: JavaScript abbrlink: 18a433ce date: 2022-11-26 21:14:19 效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" co…

使用 KubeSphere 部署高可用 RocketMQ 集群

作者&#xff1a;老Z&#xff0c;云原生爱好者&#xff0c;目前专注于云原生运维&#xff0c;KubeSphere Ambassador。 Spring Cloud Alibaba 全家桶之 RocketMQ 是一款典型的分布式架构下的消息中间件产品&#xff0c;使用异步通信方式和发布订阅的消息传输模型。 很多基于 S…

红色荧光染料AF 594活性酯,Alexa Fluor 594 NHS ester,CAS:295348-87-7

一&#xff1a;产品描述 1、名称 英文&#xff1a; AF 594 NHS Ester AF 594 Succinimidyl Ester Alexa Fluor 594 NHS Ester 中文&#xff1a;AF 594活性酯 2、CAS编号&#xff1a;295348-87-7 3、分子式&#xff1a;C39H37N3O13S2 4、分子量&#xff1a;819.85 5、…

【人工智能 机器学习 深度学习】基础选择题1~30题 练习

目录 一、1~10题1.1 题目1.2 答案二、11~20题2.1 题目2.2 答案三、21~30题3.1 题目3.2 答案写在前面:适用于对 人工智能&机器学习&深度学习 进行复习的同学,同时,也可以通过基础题目的练习,加深理解。 一、1~10题 均是先给出10道题目,而后给出 10道题目的答案。 …

(十二)Java算法:桶排序(详细图解)

目录一、前言1.1、概念1.2、算法步骤二、maven依赖三、流程解析3.1、桶编号计算3.2、桶元素排序四、编码实现一、前言 1.1、概念 计数排序&#xff1a;的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序&#xff0c;计数排序要求输入…

SpringCloud全系列知识(2)—— Nacos配置和集群

Nacos配置和集群 一 统一配置管理 Nacos官方文档 1.配置热更新 1.新建配置文件 在Nacos的配置列表中新建一个配置文件。 注意事项&#xff1a; Data ID 命名规则&#xff1a;一般情况下使用使用 “微服务名称运行环境” 作为DataID&#xff0c;后缀名建议使用文件后缀全…

集成一个以官网(微信,QQ,微博)为标准的登录分享功能

Hello&#xff0c;各位老铁&#xff0c;今天要分享的是一个老生常谈的一个功能&#xff0c;也是网上一搜一大片的技术点&#xff0c;没什么技术含量&#xff0c;就是整合一下&#xff0c;提供一下方便&#xff0c;相对于友盟&#xff0c;ShareSdk中夹杂着一些别的功能&#xff…

Python编程 集合

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.集合 1.集合介绍(掌握) 2.集合创建(掌握) 3.添加元素(熟悉) 4.集合…

区域治理杂志区域治理杂志社区域治理编辑部2022年第40期目录

政策 乡村振兴人才发展战略分析 (1) 高庸江 声音《区域治理》投稿&#xff1a;cnqikantg126.com 迈向智能党建&#xff1a;智能媒体在党建工作中的创新运用 (5) 申娟 经验 北京市昌平区节水问题及水资源利用对策研究 (9) 彭聪 重庆市低碳创新政策优化研究 (13) 林芳 …

怎么把Word翻译成中文?建议收藏这些方法

相信不少小伙伴在撰写论文的时候&#xff0c;都有查阅大量的国内外文献吧。有时由于国外文献里面会含有大量的深奥词汇&#xff0c;我们一时半会儿没法马上理解文献的内容。其实我们可以使用软件直接翻译Word文档&#xff0c;那你们知道Word文档怎么翻译吗&#xff1f;有需要对…

【Android App】实战项目之仿抖音的短视频分享App(附源码和演示视频 超详细必看)

需要全部代码请点赞关注收藏后评论区留言私信~~~ 与传统的影视行业相比&#xff0c;诞生于移动互联网时代的短视频是个全新行业&#xff0c;它制作方便又容易传播&#xff0c;一出现就成为大街小巷的时髦潮流。 各行各业的人们均可通过短视频展示自己&#xff0c;短小精悍的视频…

网络面试-0x12 UDP和TCP的区别以及应用场景

一、 UDP &#xff08;user datagram protocol&#xff09;用户数据报协议 ①&#xff1a; 一种简单的面向数据报的通讯协议&#xff0c;即&#xff1a;应用层传下来的报文&#xff0c;不合并&#xff0c;不拆分&#xff0c;只是在其上面加上首部后就交给了下面的网络层。无论应…