元学习之如何学习

news2024/9/19 10:12:06

        首先第一个步骤(如图1所示)是我们的学习算法里要有一些要被学的东西,就像在 机器学习里面神经元的权重和偏置是要被学出来的一样。在元学习里面,我们通常会考虑要 让机器自己学习网络的架构,让机器自己学习初始化的参数,让机器自己决定学习率等等,我 们期待它们是可以通过学习算法被学出来的,而不是像机器学习一样我们人为设定的。我们 把这些在学习算法里面想要它自学的东西统称为ϕ,在机器学习里面我们是用来θ代表一个 函数里面我们要学的东西。接下来,我们都将学习算法写为Fϕ,代表这个学习算法里面有些 是未知的参数。对于不同的元学习的方法,它会想办法去学模型不同的成分,当去学不同模型 成分的时候,我们就有了不同的元学习的方法。

图1 元学习的步骤二:定义损失函数

        接下来,第二步(如图15.3所示)是设定一个损失函数,损失函数在元学习里是要决定 学习算法的好坏。L(ϕ) 代表现在用ϕ作为参数的算法的性能。如果L(ϕ)的值很小就代表它 是一个好的学习算法,反之它就是一个不好的学习算法。我们需要如何决定这个L损失函数 呢?在机器学习里面,损失函数来自于训练数据,那在元学习里面,我们收集的是训练任务。 举例来说,假设今天想要训练一个二分类的分类器,来分辩苹果和橘子(任务一),以及分别 脚踏车和车(任务二),以上每一个任务里面我们都会有分训练数据和测试数据。

        接下来我们就要分析在元学习中的损失函数L应该如何定义。我们评价一个学习算法的 好坏,是看其在某一个任务里面使用训练数据学习得到的算法的好坏。比如,任务一是分辨苹 果和橘子,我们就把任务一里的训练数据拿出来输入给这个学习算法,从而学出一个分类。我 们使用fθ1∗ 来代表这个是任务一的分类,分辨苹果和橘子。如果这个分类是好的,那就代表 我们的L的规则是好的,反之如果这个分类是不好的,就代表说这个学习算法是不好的。对 于不好的学习算法(测试数据中表现不好的),我们就会给它比较大的损失L(ϕ)。

        到目前为止,我们都只考虑了一个任务,那在元学习中我们通常不会只考虑一个任务,也 就是我们不会只用苹果和橘子的分类来看一个二分类学习算法的好坏。我们还希望拿别的二 元分类的任务来测试它,比如说区分自行车和汽车的训练数据(如图2所示),输入给这 个学习算法,让它进行分类。像这两个学习算法是一样的,但是因为输入的训练数据不一样, 所以产生的分类也不一样。θ1∗ 代表的是这个学习算法在任务一(分类苹果和橘子)上面学习 得到的参数,θ2∗ 代表的是这个学习算法在任务二(分类自行车和汽车)上面学习得到的参数。 与任务一相同,任务二它自身也有一些测试的数据,我们一样把它的测试数据输入给fθ2∗,然 后看看得到的正确率如何,就可以计算出其在任务二中的表现。所以我们现在知道这个学习 算法L(ϕ) 在任务一和任务二上的表现以后,就可以把任务一和任务二上的表现把它加起来, 得到这个整个学习算法的损失。当然如果扩展到N个任务的话,整个损失就是一个N个任务 的损失,我们把这个损失写成L(ϕ),这个损失就是我们的元学习的损失。其代表了现在这个 学习算法学习所有问题的表现有多好。

图2 元学习的步骤二中的多任务分类

        大家应该已经关注到了一件事情,元学习中在每一个任务计算损失的时候,我们是用测 试数据来进行计算。而在一般的机器学习里面,所谓的损失其实是用训练数据来进行计算的。 这个问题是因为我们的训练单位是任务,所以可以用训练的任务里面的测试数据,训练的任 务里面的测试数据是可以在元学习的训练的过程中被使用到的。我们将元学习的演算法介绍 完以后,再会把元学习和机器学习再做一次比较,届时会更加清楚。 

        最后,元学习的第三个任务就是要找一个学习算法,即找一个ϕ让损失越小越好。这件 事怎么做呢?我们已经写出了损失函数L(ϕ),是N个任务的损失的总和。我们现在要找一个 ϕ 使得L(ϕ)最小,我们将这个ϕ定义为ϕ∗。解这个优化问题的过程有很多,比如之前我们介 绍过的梯度下降;如果没有办法计算梯度,也可以用强化学习的方法来解这个优化问题,或者 使用进化算法来解这个优化问题。总之,我们就可以让机器自己找出来的一个学习算法Fϕ∗, 这个学习算法Fϕ∗ 就是我们的元学习算法。

                我们再来回顾一下元学习的三个过程,如图3所示。首先收集一批训练数据,这些训 练数据是由很多个任务组成的,并且每一个任务都有训练数据和测试数据。根据这些训练数 据通过我们刚才讲的三个步骤,可以得到一个学习算法Fϕ∗。接下来我们就可以用这个学习 算法Fϕ∗ 来进行测试。假设训练的时候,训练任务是教机器分苹果和橘子以及自行车和汽车, 测试的时候是要分猫和狗,那每一个任务里面都有训练数据,也都有测试数据。我们就需要把 测试任务里面的训练数据学出一个分类,然后再把这个分类用在测试任务里面的测试数据上。 其中我们真正关心的是测试任务里面的测试数据,因为这个测试数据是我们真正要分类的东 西。

图3 元学习的完整框架 

        很多人会觉得小样本学习和元学习非常的像,所以我们也简单区分一下元学习和小样本 学习。简单来说,小样本学习指的是期待机器只看几个样例,比如每个类别都只给他三张图 片,它就可以学会做分类。而我们想要达到小样本学习中的算法通常就是用元学习得到的学 习算法,这就是两者的关系。 

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

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

相关文章

echarts 水平柱图 科技风

var category [{ name: "管控", value: 2500 }, { name: "集中式", value: 8000 }, { name: "纳管", value: 3000 }, { name: "纳管", value: 3000 }, { name: "纳管", value: 3000 } ]; // 类别 var total 10000; // 数据…

RockyLinux8.9上yum安装redis6

我百思不得其解的一个问题 我想在RockyLinux8.9上安装redis6,通过yum list | grep redis看到的redis版本只有redis5 appstream-official仓库是我新加的,这里先不管 于是我通过浏览器访问appstream仓库https://dl.rockylinux.org/vault/rocky/8.9/AppSt…

MQTT broker搭建并用SSL加密

系统为centos,基于emqx搭建broker,流程参考官方。 安装好后,用ssl加密。 进入/etc/emqx/certs,可以看到 分别为 cacert.pem CA 文件cert.pem 服务端证书key.pem 服务端keyclient-cert.pem 客户端证书client-key.pem 客户端key 编辑emqx配…

ANSA联合abaqus的转动副创建方式

下面链接详细介绍了ANSA联合Abaqus创建转动副的过程: https://www.bilibili.com/video/BV1cb421b7z9/?spm_id_from333.880.my_history.page.clickhttps://www.bilibili.com/video/BV1cb421b7z9/?spm_id_from333.880.my_history.page.click

复盘高质量Vision Pro沉浸式视频的制作流程与工具

在探索虚拟现实(VR)和增强现实(AR)技术的过程中,高质量的沉浸式体验是至关重要的。最近,国外开发者Dreamwieber在其作品中展示了如何使用一系列工具和技术,创造出令人震撼的Vision Pro沉浸式视频。本文将详细复盘Dreamwieber的工作流,希望能为从事相关领域的开发者们提…

综合评价 | 基于熵权-变异系数-博弈组合法的综合评价模型(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 根据信息熵的定义,对于某项指标,可以用熵值来判断某个指标的离散程度,其信息熵值越小,指标的离散程度越大, 该指标对综合评价的影响(即权重&…

【JAVA入门】Day34 - Stream流

【JAVA入门】Day34 - Stream流 文章目录 【JAVA入门】Day34 - Stream流一、Stream 流的作用和使用步骤1.Stream流的创建,数据的添加2. Stream流的中间方法3. Stream流的终结方法 Stream 流有什么作用?我们看一个例子: 【练习】需求&#xff…

SQL的高级查询练习知识点下(day26)

1 学习目标 重点掌握分组查询的语法 重点掌握分页查询的语法 2 分页查询 2.1 语法 SELECT 字段|表达式,... FROM 表 [WHERE 条件] [GROUP BY 分组字段] [HAVING 条件] [ORDER BY 排序的字段] LIMIT [起始的条目索引,]条目数; 2.2 特点 起始条目索引从0开始 limit子句放在…

ARM32开发——GD32F4 DMA功能查询

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 DMA0DMA1 DMA0 DMA1

蔬菜识别数据集 蔬菜数据集 用于训练,有十种蔬菜,如图已经标注好的版本

数据集概述 该数据集包含十种常见的蔬菜:胡萝卜、包菜、水果辣椒、青瓜、南瓜、土豆、花菜和西红柿。数据集已经进行了精细的标注,适用于深度学习模型的训练,尤其是用于物体检测和分类任务。 数据集特点 种类多样:涵盖了八种蔬菜…

Github 2024-09-07Rust开源项目日报Top10

根据Github Trendings的统计,今日(2024-09-07统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10CUE项目1Python项目1Go项目1Polars: Rust中的DataFrame接口和OLAP查询引擎 创建周期:1354 天开发语言:Rust, Python协议类型:MIT …

Vue-Pinia状态管理案列Demo

上一篇文章已经介绍了pinia的基本使用,现在做一个小的案列来巩固。 数据绑定修改pinia中的状态。 在页面刷新的时候会显示pinia中的数据 import { createApp } from vue // import ./style.css import App from ./App.vueimport { createPinia } from pinia cons…

心觉:接纳父母,就是接纳自己---创富第一步

Hi,我是心觉,与你一起玩转潜意识、脑波音乐和吸引力法则,轻松搞定人生挑战,实现心中梦想! 挑战日更写作162/1000(完整记录在下面) 公门洞开纳百川 众心逐梦越千山 号召引领潜力绽 心觉潜意识无间 很多人抱怨父母&…

Linux是如何收发网络包的

Linux网 络协议栈 从上述⽹络协议栈,可以看出: 收发流程 ⽹卡是计算机⾥的⼀个硬件,专⻔负责接收和发送⽹络包,当⽹卡接收到⼀个⽹络包后,会通过 DMA 技术,将⽹络包放⼊到 Ring Buffer ,这个是…

解决 Tomcat 启动时 JAR 包 `Invalid byte tag in constant pool` 异常问题

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

未来出行:高效智能的汽车充电桩

解析高效智能的汽车充电桩的结构设计技术要求 充电桩按照充电方式分为交流充电桩与直流充电桩、交直流一体充电桩三种。直流充电桩一般安装在高速公路,充电站等地;交流充电桩一般安装在小区、停车场、道路停车位、高速公路服务区等位置。根据国网Q/GDW4…

[3.4]【机器人运动学MATLAB实战分析】PUMA560机器人正运动学MATLAB计算

PUMA560是六自由度关节型机器人,其6个关节都是转动副,属于6R型操作臂。各连杆坐标系如图1,连杆参数如表1所示。 图1 PUMA560机器人的各连杆坐标系 表1 PUMA560机器人的连杆参数 按D-H方法建立操作臂运动学方程。建立PUMA560机器人运动学方程的步骤如下࿱

【网络安全】Jenkins任意文件读取漏洞及检测工具(CVE-2024-23897)

原创文章,不得转载。 文章目录 漏洞成因影响范围检测工具更多细节漏洞成因 Jenkins CLI 接口存在任意文件读取漏洞(CVE-2024-23897)。该问题源于 args4j 库在解析文件名参数时,会将@符号后的字符串视为文件名并尝试读取文件,而且该功能默认处于启用状态。 影响范围 Jen…

部署Apache网站

简易部署自己的apache网站 写在前面:先安装好mysql,再来搭建站点 1.安装php [rootlocalhost ~]# yum install php -y ##安装了php,默认会和apache结合工作2.创建文件编写php网页代码 [rootlocalhost ~]# vim /var/www/html/index.php ##创…

1-6 图像覆盖掩膜 opencv树莓派4B 入门系列笔记

目录 一、提前准备 二、代码详解 hsv cv2.cvtColor(img, cv2.COLOR_BGR2HSV) lower_range np.array([101, 100, 100], dtypenp.uint8) upper_range np.array([121, 255, 255], dtypenp.uint8) mask cv2.inRange(hsv, lower_range, upper_range) mask2 cv2.inRange(…