元学习(小样本)-基本概念

news2024/10/11 8:32:22

机器学习

概述

以分类任务为例,机器学习可以看作是找一个猫狗的分类函数。

  • step1: 设计未知函数;其中,权重和偏置都是神经元中位置参数(可学习的);
  • step2: 定义损失函数;
  • step3:训练优化参数;

Meta Learning

模型训练与优化

  原学习同样是学习一个函数,该函数的输入是图像数据,输出还是一个函数,如输出一个分类器。原学习的损失在计算时包含多个任务,每个任务都有训练集和测试集。
  对于其中的一个任务,下图是一个很清晰的例子。
在这里插入图片描述
  现在解释这张图。对于任务1(Task 1)而言,他的训练集是苹果和橘子, F θ F_\theta Fθ 就是原学习训练的目标函数,它的输入是图片,输出是分类器 f θ ∗ f_\theta^* fθ f θ ∗ f_\theta^* fθ 就是一个分类苹果和橘子的分类器,如果 f θ ∗ f_\theta^* fθ 模型精度高,则说明 F θ F_\theta Fθ 好。因此,在训练过程中,将测试数据输入 f θ ∗ f_\theta^* fθ,进行测试,并计算损失 l 1 l^1 l1。这个损失就是普通深度学习的计算方法(上图右边)。 该损失越大,说明 f θ ∗ f_\theta^* fθ 越差,即就是 F θ F_\theta Fθ越差。
对于其他多个任务,计算也是如此。因此最终的损失为:
L ( θ ) = ∑ n = 0 N l n L(\theta)=\sum_{n=0}^N l^n L(θ)=n=0Nln
  从上面的过程就能看出,元学习与机器学习的区别之一就是元学习在训练过程中同时包含训练数据集和测试数据集。
  下一步就是利用最小化损失函数来求最佳参数 θ ∗ \theta^* θ。即:
θ ∗ = a r g m i n L ( θ ) \theta^*=argminL(\theta) θ=argminL(θ)

模型测试

  在训练得到一个已经学习了的学习模型 θ ∗ \theta^* θ。该模型拥有学习能力,则进入测试阶段。
如图所示:
在这里插入图片描述
  在测试阶段,就是元学习的精髓了。在测试阶段,首先将训练数据猫和狗(训练阶段没有见过的类型)输入 f θ ∗ f_\theta^* fθ ,和训练阶段一样,输出一个分类模型 F θ F_\theta Fθ。这等于是给模型给了一丢丢他没见过的类型的数据和标签,让它简单学习一下(它有学习能力)。然后,再输入测试数据(和测试阶段的训练数据类型一样),让该模型进行预测。
  这个过程说明了一个问题,模型具有学习能力。比如说一个人生下来啥也没见过,如果给他给十张猫和狗的图片,并给他说哪张是猫,哪张是狗,并给他测试几张猫和狗的照片,这个过程就让他有一个学会分类的能力,也就是训练阶段(包含训练数据和测试数据)。在测试阶段,给他两张鸡和鸦的照片,并说明哪张是鸡和哪张是鸦,然后,给他一张(少样本few-shot)新的测试照片,让他进行分类,他就能够正确分类(也包含训练数据和测试数据,但是该数据是一个全新类别,而不是训练阶段同样的类别,这也是和监督学习的区别,监督学习是训练集给一万张猫,学会猫长什么样,完了给一张新的猫的照片,让测试)。

本文参考 李宏毅老师的B站课程。

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

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

相关文章

SpringBoot----(1)基础

目录 1 SpringBoot简介1.1 入门案例(IDEA构建)1.2 官网构建工程1.3 SpringBoot程序快速启动1.4 SpringBoot概述1.5 起步依赖1.6 程序启动1.7 切换web服务器 2 配置2.1 配置文件格式(3种)2.2 yaml格式2.3 yaml数据读取方式&#xf…

Maven-----进阶

目录 1 分模块开发1.1 分模块开发的意义1.2 分模块开发实现 2 依赖管理2.1 依赖传递2.2 依赖传递冲突问题2.3 可选依赖和排除依赖 3 继承与聚合3.1 聚合3.2 继承3.2 聚合与继承的区别 4 属性4.1 属性4.2 资源文件引用属性4.3 版本管理 5 多环境配置与使用5.1 多环境开发5.2 跳过…

【JavaSE】类和对象的封装

目录 【1】封装 【1.1】封装的概念 【1.2】访问限定符 【1.3】封装扩展之包 【1.3.1】包的概念 【1.3.2】导入包中的类 【1.3.3】自定义包 【1.3.4】包的访问权限控制举例 【1.3.5】常见的包 【2】static成员 【2.1】再谈学生类 【2.2】static修饰成员变量 【2.3】…

量子力学的应用:量子计算

亲爱的读者, 欢迎回到我们的量子力学系列文章。在前面的几篇文章中,我们已经深入探讨了量子力学的起源、基本概念、实验验证以及解释问题。今天,我们将聚焦在量子力学的一个引人注目的应用领域:量子计算。 1. 传统计算机与量子计…

【雕爷学编程】Arduino动手做(86)---4*4位 WS2812 全彩模块2

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

【图解CAN总线】-9-详述经典CAN和CANFD报文是如何收发的

目录 1 经典CAN/CANFD网络拓扑分解 2 CAN收发器“前后端的电平” 3 图解MCU芯片与CAN物理总线之间CAN报文收发过程 3.1 TX,RX和CAN H/L电平变化:ECU接收一个报文 3.2 TX,RX和CAN H/L电平变化:ECU发送一个报文 END 推荐阅读&…

【LeetCode】48.旋转图像

题目 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]…

OPC通信从入门到精通_1_OPC基础知识及简单C#程序编写(OPCDA,OPCUA简介;OPC通信数据流框架图;C#程序编写)

文章目录 1. OPC基础知识:OPCDA,OPCUA1.1 OPC基础知识1.2 OPC通信读写方式 2. OPC通信仿真2.1 上位机与PLC通过ModbusTCP直接通信2.2 OPC通信介绍及实例2.2.1 OPC通信与ModbusTCP比较2.2.2 OPC通信应用场景2.2.3 OPC DA通信仿真实例2.2.4 OPC UA通信仿真…

随手笔记——3D−3D:ICP理论

随手笔记——3D−3D:ICP理论 说明SVD 方法非线性优化方法 说明 ICP 的求解也分为两种方式:利用线性代数的求解(主要是 SVD),以及利用非线性优化方式的求解(类似于 Bundle Adjustment)。 SVD 方…

Android平台GB28181设备接入模块之按需编码和双码流编码

技术背景 我们在做执法记录仪或指挥系统的时候,会遇到这样的情况,大多场景下,我们是不需要把设备端的数据,实时传给国标平台端的,默认只需要本地录像留底,如果指挥中心需要查看前端设备实时数据的时候&…

【LeetCode热题100】打卡第44天:倒数第30~25题

文章目录 【LeetCode热题100】打卡第44天:倒数第30~25题⛅前言 移动零🔒题目🔑题解 寻找重复数🔒题目🔑题解 二叉树的序列化与反序列化🔒题目🔑题解 最长递增子序列🔒题目&#x1f5…

力扣 763. 划分字母区间

题目来源&#xff1a;https://leetcode.cn/problems/partition-labels/description/ C题解1&#xff1a; 先遍历一遍使用哈希算法找到每个小写字母的最远的索引&#xff0c;再遍历一次&#xff0c;不断更新每个片段的最远距离。 class Solution { public:vector<int> pa…

Qt Core学习日记——第八天QMetaObject(下)

QMetaObject::normalizedType 将名称规范化。 例如&#xff1a; QByteArray normType QMetaObject::normalizedType(" int const *"); // normType is now "const int*" QMetaObject::connect(const QObject *sender, int signal_index, const QObject…

redis(12):springboot使用redis注解做缓存

1 新建springboot项目 2 相关注解 EnableCaching 在启动类上加上注解启动缓存 #作用在你要缓存的数据上 Cacheable(key"#id",cacheNames"com.sxt.service.impl.MenuServiceImpl") Cacheput 解决脏读 CachEvict&#xff08;解决脏读&#xff09; Cach…

01Mybatis报错日志 BindingException

01 Mybatis报错日志 BindingException Type interface com.zhnx.demo1.mapper.UserMapper is not known to the MapperRegistry. org.apache.ibatis.binding.BindingException: Type interface com.zhnx.demo1.mapper.UserMapper is not known to the MapperRegistry.at org…

腾讯云服务器公共镜像大全_Linux和Windows操作系统

腾讯云CVM服务器的公共镜像是由腾讯云官方提供的镜像&#xff0c;公共镜像包含基础操作系统和腾讯云提供的初始化组件&#xff0c;公共镜像分为Windows和Linux两大类操作系统&#xff0c;如TencentOS Server、Windows Server、OpenCloudOS、CentOS Stream、CentOS、Ubuntu、Deb…

LeetCode116. 填充每个节点的下一个右侧节点指针

116. 填充每个节点的下一个右侧节点指针 文章目录 [116. 填充每个节点的下一个右侧节点指针](https://leetcode.cn/problems/populating-next-right-pointers-in-each-node/)一、题目二、题解方法一&#xff1a;迭代方法二&#xff1a;递归 一、题目 给定一个 完美二叉树 &…

redis的并发安全问题:redis的事务VSLua脚本

redis为什么会发生并发安全问题&#xff1f; 在redis中&#xff0c;处理的数据都在内存中&#xff0c;数据操作效率极高&#xff0c;单线程的情况下&#xff0c;qps轻松破10w。反而在使用多线程时&#xff0c;为了保证线程安全&#xff0c;采用了一些同步机制&#xff0c;以及多…

grid map学习笔记1之Ubuntu18.04+ROS-melodic编译安装grid_map栅格地图及示例运行

文章目录 0 引言1 安装依赖和编译1.1 安装依赖1.2 下载编译 2 运行示例2.1 simple_demo2.2 tutorial_demo2.3 iterators_demo2.4 image_to_gridmap_demo2.5 grid_map_to_image_demo2.6 opencv_demo2.7 resolution_change_demo2.8 filters_demo2.9 interpolation_demo 0 引言 苏…

java项目之个人交友网站(ssm+mysql+jsp)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的个人交友网站。技术交流和部署相关看文章末尾&#xff01; 开发环境&#xff1a; 后端&#xff1a; 开发语言&#xff1a;Java 框架&…