深度学习应用篇-元学习[13]:元学习概念、学习期、工作原理、模型分类等

news2025/1/25 4:48:16

在这里插入图片描述
【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等

在这里插入图片描述
专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等

本专栏主要方便入门同学快速掌握相关知识。后续会持续把深度学习涉及知识原理分析给大家,让大家在项目实操的同时也能知识储备,知其然、知其所以然、知何由以知其所以然。

声明:部分项目为网络经典项目方便大家快速学习,后续会不断增添实战环节(比赛、论文、现实应用等)

专栏订阅:

  • 深度学习入门到进阶专栏
  • 深度学习应用项目实战篇

# 深度学习应用篇-元学习[13]:元学习概念、学习期、工作原理、模型分类等

1.元学习概述

1.1元学习概念

元学习 (Meta-Learning) 通常被理解为“学会学习 (Learning-to-Learn)”,
指的是在多个学习阶段改进学习算法的过程。
在基础学习过程中,
内部(或下层/基础)学习算法解决由数据集和目标定义的任务。
在元学习过程中,外部(或上层/元)算法更新内部学习算法,使其学习的模型改进外部目标。
因此,元学习的核心想法是学习一个先验知识 (prior)。

1.2 元学习含义

元学习的含义有两层,
第一层是让机器学会学习,使其具备分析和解决问题的能力,
机器通过完成任务获取经验,提高完成任务的能力;
第二层是让机器学习模型可以更好地泛化到新领域中,
从而完成差异很大的新任务。

Few-Shot Learning 是 Meta-Learning 在监督学习领域的应用。
在 Meta-training 阶段,
将数据集分解为不同的任务,去学习类别变化的情况下模型的泛化能力。
在 Meta-testing 阶段,
面对全新的类别,不需要变动已有的模型,只需要通过一部或者少数几步训练,就可以完成需求。

1.3 元学习单位

元学习的基本单元是任务,任务结构如图1所示。
元训练集 (Meta-Training Data)、元验证集 (Meta-Validation Data) 和元测试集 (Meta-Testing Data) 都是由抽样任务组成的任务集合。
元训练集和元验证集中的任务用来训练元学习模型,
元测试集中的任务用来衡量元学习模型完成任务的效果。

在元学习中,之前学习的任务称为元训练任务 (meta-train task),
遇到的新任务称为元测试任务 (meta-test task)。
每个任务都有自己的训练集和测试集,
内部的训练集和测试集一般称为支持集 (Support Set) 和查询集 (Query Set)。
支持集又是一个 N-Way K-Shot 问题,即有 N 个类别,每个类有 K 个样例。

图1 任务结构。

1.4 基学习器和元学习器

元学习本质上是层次优化问题 (双层优化问题 Bilevel Optimization Problem),
其中一个优化问题嵌套在另一个优化问题中。
外部优化问题和内部优化问题通常分别称为上层优化问题和下层优化问题,
如图2所示的MAML。

图2 双层优化元学习 MAML。

两层优化问题涉及两个参与器:

  1. 上层的参与者是元学习器,
  2. 下层的参与者是基学习器。
    元学习器的最优决策依赖于基学习器的反应,基学习器自身会优化自己内部的决策。
    这两个层次有各自不同的目标函数、约束条件和决策变量。
    基学习器和元学习器的作用对象及功能如图3所示。

图3 基学习器和元学习器。元学习器总结任务经验进行任务之间的共性学习,同时指导基学习器对新任务进行特性学习。

1.4.1 基学习器

基学习器 (Base-Learner),是基础层中的模型,
每次训练基础学习器时,考虑的是单个任务上的数据集,其基本功能如下:

  • 在单个任务上训练模型,学习任务特性,找到规律,回答任务需要解决的问题。

  • 从元学习器获取对完成单个任务有帮助的经验,包括初始模型和初始参数等。

  • 使用单个任务中的训练数据集,构建合适的目标函数,
    设计需要求解的优化问题,从初始模型和初始参数开始进行迭代更新。

  • 在单个任务上训练完成后,将训练的模型和参数都反馈给元学习器。

1.4.2 元学习器

元学习器 (Meta-Learner),是元层中的模型,对所有任务上的训练经验进行归纳总结。
每次训练基础学习器后,元学习器都会综合新的经验,更新元学习器中的参数,其基本功能如下:

  • 综合多个任务上基学习器训练的结果。

  • 对多个任务的共性进行归纳,在新任务上进行快速准确的推理,
    并且将推理输送给基学习器,作为初始模型和初始参数值,
    或者是其他可以加速基学习器训练的参数。

  • 指引基学习器的最优行为或探索某个特定的新任务。

  • 提取任务上与模型和训练相关的特征。

1.5 元学习工作原理

元学习的主要目的是寻找元学习器 F F F,
F F F 的指导下基学习器 f f f 在支持集 (support set) D t r D^{\mathrm{tr}} Dtr 的作用下经过几步微调就可以得到适应当前新任务的最优状态 f ∗ f^{*} f。而 F F F 的优化需要当前所有任务损失的累计和,
∇ ∑ n = 1 N l ( f n ∗ , D n t e ) \nabla\sum_{n=1}^{N} l \left( f_{n}^{*}, D_{n}^{\mathrm{te}} \right) n=1Nl(fn,Dnte)
元学习工作原理如图4所示。

图4 元学习工作原理。

1.5.1 元学习训练过程

以分类任务为例,元学习中 N-Way K-Shot 问题的具体训练过程:

首先提供一个 few-shot 的数据集,该数据集一般包含了很多的类别,
每个类别中又包含了很多个样本。
对训练集进行划分,随机选出若干类别作为训练集,剩余类别作为测试集。

meta-train 阶段:

  • 在训练集中随机抽取 N 个类,每个类 K 个样本,为支持集 (support set),
    剩余样本为查询集 (query set);
    support set 和 query set 构成一个 task。

  • 每次采样一个 task 进行训练,称为一个 episode;
    一次性选取若干个 task,构成一个 batch;

  • 一次 meta-train 可以训练多个 batch;

  • 遍历所有 batch 后完成训练。

meta-test 阶段:

  • 在测试集中随机抽取 N 个类别,每个类别 K 个样本,作为 train set,
    剩余样本作为 test set。

  • 用 support set 来 fine-tune 模型;

  • 用 test set 来测试模型(这里的 test set 就是真正希望模型能够用于分类的数据)。

上述训练过程中,每次训练 (episode) 都会采样得到不同 task,
所以总体来看,训练包含了不同的类别组合,
这种机制使得模型学会不同 task 中的共性部分,
比如如何提取重要特征及比较样本相似等,忘掉 task 中 task 相关部分。
通过这种学习机制学到的模型,在面对新的未见过的 task 时,也能较好地进行分类。

1.6 元学习关键

元学习的关键在于发现不同问题之间的普适规律,通过推广普适规律解决末知难题。普适规律需要达到对问题共性和特性表示力的均衡。普适规律的寻找主要依赖于以下几点:

  • 发现已经解决的问题和新问题之间联系密切的部分,提取已经解决的问题的普适规律,用于新问题的解决;

  • 将新问题分解,化繁为简,在已经解决的问题中找到与新问题各个子任务联系紧密的普适规律,以及这些规律的适用范围;

  • 在新问题中学习推理逻辑,使用推理逻辑来对新问题进行表示,在这些表示中寻找规律,通过新问题自身各个部分之间的推理逻辑,找到解决新问题的办法。

1.7 元学习分类

  • 基于优化的元学习:如 MAML, Reptile, LEO, …

  • 基于度量的元学习:如 SNAIL, RN, PN, MN, …

  • 基于模型的元学习:如 Learning to learn, Meta-learner LSTM, …

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

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

相关文章

通讯基站电源智能监控系统

通信基站又称无线基站,一般都安装在宽阔、偏远的地方,且分散,实现人工值守十分困难,成本高;另外局部内动力设备、蓄电池电源以及环境无法及时监视和控制,造成事故频发。然而蓄电池作为直流备用电源&#xf…

怎么把图片放大不改变清晰度,给大家介绍两个方法

时代的发展和进步,我们在使用手机、电脑等设备时,常常需要对图片进行放大操作。从功能上来说,图片放大可以让我们更好地观看和理解图片内容,同时也可以提高图像分辨率和清晰度,以满足不同的需求和场景首先,…

SQL-将数组打散regexp_replace/split/explode

目的:将数组(拒绝码refuse_codes)打散 原数据: 打散后数据col: – regexp_replace()替换函数 – split()函数是用于切分数据,也就是将一串字符串切割成了一个数组 – explode()函数是用于打散行的函数&am…

Ubuntu安装英伟达显卡驱动、Cuda和Cudnn

显卡驱动安装 1、下载对应型号显卡驱动 首先查看自己机器显卡型号 lspci | grep -i nvidia得到如下输出,其中GeForce GTX 1080就是型号 01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1080] (rev a1) 01:00.1 Audio device: NVIDI…

第14届蓝桥杯Scratch(中级)省赛真题解析2023.5.14

选择题 1. 已知下图角色一共有3个造型,则以下选项中,不能呈现下图中第三个造型效果的程序是(C) *选择题严禁使用程序验证,选择题不答或答错都不扣分 A. B. C. D. 2. 运行以下程序,循环执行4次后,x的值是(D)。 *选择题严禁使用程序验证,选择题不答或答错都不扣分

vue2之element-ui多个穿梭框实现 -Transfer

效果图 组件实现 -目录结构 Transfer.vue实现 <template><el-card :body-style"{ minHeight: 350px }"><el-inputv-show"filterable"v-model"filterName":placeholder"filterPlaceholder"clearableinput"han…

【Flutter】Flutter 如何切换页面

文章目录 一、简介二、Navigator 的使用三、实际示例&#xff1a;电影应用的页面切换四、完整代码五、 总结 一、简介 什么是页面切换呢&#xff1f;简单来说&#xff0c;页面切换就是在应用的不同界面之间进行跳转。例如&#xff0c;在一个电影应用中&#xff0c;从电影列表页…

java基础(多线程)-共享模型之管程

一、共享资源带来的问题 class ThreadProblem{static int counter 0;public static void testThread(){Thread t1 new Thread(()-> {for (int i 0; i < 5000; i) {counter;}},"t1");Thread t2 new Thread(()-> {for (int i 0; i < 5000; i) {count…

基于html+css的图展示126

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

苹果手机之间如何互传照片?批量传输操作指南

很多时候&#xff0c;我们用手机拍摄了好看的照片或者收藏了一些有趣的图片&#xff0c;想要分享给朋友&#xff0c;却不知道苹果手机之间如何互传照片&#xff1f;在分享大量照片的时候不清楚如何批量操作&#xff1f;别担心&#xff0c;下面小编就来分享一下苹果手机照片传输…

LeetCode279. 完全平方数 DP完全背包

https://leetcode.cn/problems/perfect-squares/ 题目描述 给你一个整数 n &#xff0c;返回 和为 n 的完全平方数的最少数量。 完全平方数 是一个整数&#xff0c;其值等于另一个整数的平方&#xff1b;换句话说&#xff0c;其值等于一个整数自乘的积。例如&#xff0c;1、4…

python类中常用的魔术方法

文章目录 构造方法__init__对象转字符__str__对象自定义大小比较First__lt__Second__le__Third__eq__ 构造方法__init__ 构造方法也是魔术方法的一种&#xff0c;此方法我在python对象与类中已经展示过了 注意&#xff1a;在方法中引用类成员变量一定要记得使用self关键字引用…

Elasticsearch:倒数排序融合 - Reciprocal rank fusion

警告&#xff1a;此功能处于技术预览阶段&#xff0c;可能会在未来版本中更改或删除。 Elastic 将尽最大努力修复任何问题&#xff0c;但技术预览中的功能不受官方 GA 功能的支持 SLA 约束。 倒数排序融合&#xff08;RRF&#xff09;是一种将具有不同相关性指标的多个结果集组…

蓝牙资讯|Canaly发布2023Q1全球可穿戴腕带设备报告

根据市场调查机构 Canalys 公布的最新报告&#xff0c;2023 年第 1 季度全球可穿戴腕带设备出货量为 4100 万台&#xff0c;同比下降 1%。 其中&#xff0c;本季度全球基础手环市场受到厂商和消费者更关注大屏设备影响&#xff0c;出货量为 750 万台&#xff0c;同比下降 24%…

Vue中如何进行拖拽与排序功能实现

Vue中如何进行拖拽与排序功能实现 在Web应用程序中&#xff0c;拖拽和排序功能是非常常见的。在Vue中&#xff0c;我们可以使用一些组件库来实现这个功能&#xff0c;例如sortablejs和vuedraggable。本文将介绍如何使用vuedraggable组件来实现Vue中的拖拽和排序功能。 什么是v…

Selenium Python教程第7章:Selenium编程其它功能

7. Selenium其它功能 7.1 Action Chains 动作链功能 WebDriver只能模拟针对特定元素的click, send_keys 操作&#xff0c;无法执行鼠标移动、悬浮、按键&#xff0c;选择菜单等操作&#xff0c;需要通过 Action Chains 类来操作 如下面操作&#xff0c;打开主菜单项后&#x…

实战:用dockerfile创建镜像实现springboot项目容器化

文章目录 前言技术积累docker基本操作命令dockerfile简介dockerfile指令说明 实战演示创建dockerfile创建挂载目录构建dockerfile启动容器完成验证 写在最后 前言 docker容器化方案是当下流行的服务部署方式&#xff0c;在软件领域举足轻重。我公司的测试、线上环境都采用dock…

选择最适合你的云服务器:腾讯云、华为云、阿里云对比

云服务器是一种基于云计算技术的服务器&#xff0c;它可以为企业提供高效、灵活、安全的运行环境。目前市场上有很多云服务器的选择&#xff0c;其中腾讯云、华为云和阿里云是最受欢迎的三个品牌&#xff0c;下面我们来看看它们各自的优势。 腾讯云的优势在于其强大的技术支持…

谷粒商城p45-自动装配-stream流-lambda表达式

软件&#xff1a;idea、postman、virtual box 服务&#xff1a;gulimall-product 请求路径&#xff1a;http://localhost:10000/product/category/list/tree 启动&#xff1a;启动idea product模块&#xff0c;启动vm&#xff0c;启动docker mysql controller代码 自动装配C…

LeetCode494. 目标和 0-1背包DP

https://leetcode.cn/problems/target-sum/ 题目描述 给你一个整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 ‘’ 或 ‘-’ &#xff0c;然后串联起所有整数&#xff0c;可以构造一个 表达式 &#xff1a; 例如&#xff0c;nums [2, 1] &#xff0c;可以在…