元学习(meta-learning)的通俗解释

news2024/9/19 10:13:26

目录

1、什么是元学习

2、元学习还可以做什么

3、元学习是如何训练的


1、什么是元学习

meta-learning 的一个很经典的英文解释是 learn to learn,即学会学习。元学习是一个很宽泛的概念,可以有很多实现的方式,下面以目标检测的例子来解释其中的思想。

在传统的目标检测任务中,我们都会为给模型海量的打了标签的数据集,本质是让模型去学习样本数据的数据分布,以期一个泛化的模型,使其可以在没有见过的图片中找到期望的目标。整个学习的过程就是相当于给模型很多某一类事物的照片,训练模型让他拥有分辨这些事物种类的能力,可以在一张没有见过的照片中找到是否有目标事物。

对于人类而言,认识一个新的种类其实并不需要看很多相关的照片,甚至只要看一眼没见过的事物就能达到在没见过的照片中准确分辨是否含有该类事物的效果,这是由于人天生的具有分辨事物异同的能力,在看到新的事物之后就能马上学习到他与已见过的事物的不同并在下次遇到时准确判断其种类。也就是人类具有学会学习的能力。

因此,相比来说,meta-learning 的目标不是让模型识别训练集里的图片并且泛化到测试集,而是让机器自己学会学习。还以目标检测为例,仍然拿一个很大的数据集来训练模型,而 meta-learning 的目标不是让模型在没见过的图片中学会分辨训练集中提到过的类别,而是让模型学会分辨事物的异同,学会分辨这两者是相同的东西还是不同的东西,当模型学会分辨异同之后再在具体的分类任务中使用极少的数据集训练很少的次数即可达到甚至超越传统目标检测训练范式的效果(这种方式也称为 Few-Shot Learning,即小样本学习)。

总的来说,当我们需要分辨的目标种类改变之后,传统的目标检测训练范式需要从头开始训练,而 meta-learning 则因为拥有了学习的(分辨异同)能力从而很快就能适应新的种类从而大大节省了从新学习的时间。下图就是对这种方法的阐述:元学习 A 通过训练任务学习到了具有分类能力的预训练网络 F_{\omega }  (F_{\omega } 是元学习的模型),使用新的类型来训练 F_{\omega } , 让他“学习”区分新的种类手机电脑得到模型  f_{\theta }  ,这个 f_{\theta } 就是可以适应新的任务的模型了。

元学习分类任务

(图片来源:火炉课堂 | 元学习(meta-learning)到底是什么鬼?_哔哩哔哩_bilibili)

这种训练方式的一种具体的实现就是孪生神经网络(Siamese Network),孪生神经网络是无监督学习的一种,下面简单介绍这种网络的原理。

孪生神经网络拥有两个输入,分别是同样大小但不是同一种类别的图片,输出是两张图片的相似度。其结构如下图

孪生神经网络

具体地,先输入含有种类1的图片1,通过网络得到一个映射的特征向量h1,然后输入含有种类2的图片2,通过同样的网络得到另外一个映射的特征向量h2,通过比较向量h1、h2(比如做差)的相似度即可确定两者是否属于同一个类别,训练过程中只需要通过大量的不同类别的图片训练网络的异同辨别能力。在具体的分类任务中,我们只需要将目标图片与已有的已知种类的图片通过预训练好的神经网络做对比,通过输出即可判断目标图片是否属于这个种类。

以上是元学习在目标检测方面的一种应用,通过元学习训练模型提取不同种类图片的特征,然后在这个预训练的模型的基础上实现快速辨别新的图片种类。“元”在中文中含有“根本、根源”的意思,在深度学习中可以理解为:知道了更深层次(更基础)的知识后更有利于以后适应新事物的能力,这也对应了其英文解释“learn to learn”的思想。

2、元学习还可以做什么

元学习是一个思想,有很广泛的应用范围。

元学习可以用来学算法。即传统的深度学习都是手工设计好的模型(比如CNN、LSTM、DNN、具体多少层、每层的size以及激活函数都是确定好的)然后我们去学习模型的参数。而元学习可以更进一步,用来学习如何设计模型、如何挑选前述的网络结构等。

另外元学习还可以学习算法的超参(比如学习率等)、模型初始化参数(直接给出一个比较好的初始化参数,然后微调,可以大大节省训练时间)等。

3、元学习是如何训练的

一般的深度学习是在数据(data)上做训练,以使模型泛化到其他数据上也有很好的效果。而元学习是在任务(task)上做训练,以使模型在没见过的任务上也做得很好。

如下图所示。首先元学习 F_{\omega } 在任务1(task1)中学习得到算法(可以是模型结构、超参、初始化参数等)f_{\theta } ,然后使用测试样本训练几次(一般一两次就可以了)F_{\omega }  得到的模型 f_{\theta } ,在测试样本中评估元学习给出的算法 f_{\theta } 好不好,进而评估元学习 F_{\omega } 好不好,因为好的算法在训练有限次时就能达到较好的效果,这样每组测试样例就可以得到一个损失,若算法不好则对应得出的损失也不好,task2 也是同样的流程。这样将每个 task 的损失加起来求平均得到最终的损失。

元学习的训练过程

(图片来源:火炉课堂 | 元学习(meta-learning)到底是什么鬼?_哔哩哔哩_bilibili)

可以看出,相比一般的深度学习过程,大部分的元学习任务在训练过程中需要计算二次导数,目前也有最新的研究表明将二次导通过一定的规则近似为一次导数更新模型不仅可以大大提升训练效率,还跟原始的二次导训练方式的性能不相上下,该部分目前仅仅了解了一下,先不做过多的学习。

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

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

相关文章

linux服务器vi文件中文乱码

服务器vi编辑中文乱码 cat 文本是中文 可以编辑 vi /etc/environment 文件修改为utf8中文字符集 LANGzh_CN.UTF-8 LANGUAGEen_US:en LC_CTYPE"zh_CN.UTF-8" LC_NUMERIC"zh_CN.UTF-8" LC_TIME"zh_CN.UTF-8" LC_COLLATE"zh_CN.UTF-8"…

ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘无密码如何解决

1.修改my.cnf配置文件 (1)找到my.cnf位置,在[mysqld]下面添加skip-grant-tables cd / vim /etc/my.cnf (2)添加完成后保存,并重启mysql服务 按下esc 输入:wq 执行 servcie mysqld restart 2.进入mysql数据…

2024年蓝牙耳机哪个好?五大口碑热门爆棚机型力荐!

​长时间的通勤或等待中,我喜欢戴着耳机静静地听音乐,享受那片刻的宁静。对我来说,耳机是生活中不可或缺的数码产品,无论是在路上还是在运动时,我都会随身携带。在这篇文章中,我将分享我对耳机的了解和使用…

【深度学习笔记】3_11 模型选择、欠拟合和过拟合

注:本文为《动手学深度学习》开源内容,做了部分个人理解标注,仅为个人学习记录,无抄袭搬运意图 3.11 模型选择、欠拟合和过拟合 在前几节基于Fashion-MNIST数据集的实验中,我们评价了机器学习模型在训练数据集和测试数…

OpenAI-Sora:最新文生视频教程-Sora怎么用(新手小白)

Sora 是什么? Open AI 宣布推出全新的生成式人工智能模型“Sora”。据了解,通过文本指令,Sora 可以直接输出长达 60 秒的视频,并且包含高度细致的背景、复杂的多角度镜头,以及富有情感的多个角色。 - 继文本、图像之后…

荣获国家高新技术企业认证,苹芯科技领航AI芯片产业发展

北京苹芯科技有限公司(以下简称“苹芯科技”)凭借在存算一体芯片领域的卓越表现,荣获国家高新技术企业认证。这一荣誉不仅是对苹芯科技多年来在科技创新、产品研发等方面所取得成果的肯定,更是对其未来发展潜力的认可。 苹芯科技…

解析OOM的三大场景,原因及实战解决方案

目录 一、什么是OOM 二、堆内存溢出(Heap OOM) 三、方法区内存溢出(Metaspace OOM) 四、栈内存溢出(Stack OOM) 一、什么是OOM OOM 是 Out Of Memory 的缩写,意思是内存耗尽。在计算机领域…

力扣思路题:丑数

此题的思路非常奇妙,可以借鉴一下 bool isUgly(int num){if(num0)return false;while(num%20)num/2;while(num%30)num/3;while(num%50)num/5;return num1; }

树-王道-复试

树 1.度: 树中孩子节点个数,所有结点的度最大值为 树的度 2.有序树: 逻辑上看,树中结点的各子树从左至右是有次序的,不能互换。 **3.**树的根节点没有前驱,其他节点只有一个前驱 **4.**所有节点可有零个或…

[Linux]文件基础-如何管理文件

回顾C语言之 - 文件如何被写入 fopen fwrite fread fclose fseek … 这一系列函数都是C语言中对文件进行的操作: int main() {FILE* fpfopen("text","w");char str[20]"write into text";fputs(str,fp);fclose(fp);return 0; }而上…

全域增长方法论:帮助品牌实现科学经营,助力长效生意增长

前两年由于疫情反复、供给需求收缩等条件制约,品牌业务均受到不同程度的影响。以双十一和618电商大促为例,就相比往年颇显“惨淡”,大多品牌营销都无法达到理想预期。 随着市场环境不断开放,2023年营销行业开始从低迷期走上了高速…

最新IE跳转Edge浏览器解决办法(2024.2.26)

最新IE跳转Edge浏览器解决办法(2024.2.26) 1. IE跳转原因1.1. 原先解决办法1.2. 最新解决办法1.3. 最后 1. IE跳转原因 关于IE跳转问题是由于在2023年2月14日,微软正式告别IE浏览器,导致很多使用Windows10系统的电脑在打开IE浏览…

【计算机科学引论 Computing Essentials 2021】【名词术语】【第7章】

Computing Essentials Chapter 7: Secondary Storage 二级存储 MATCHING Match each numbered item with the most closely related lettered item. Write your answers in the spaces provided. Choices a. DVD (Digital Versatile Disc) b. file compression c. hi-def…

pytorch -- torch.nn下的常用损失函数

1.基础 loss function损失函数:预测输出与实际输出 差距 越小越好 - 计算实际输出和目标之间的差距 - 为我们更新输出提供依据(反向传播) 1. L1 torch.nn.L1Loss(size_averageNone, reduceNone, reduction‘mean’) 2. 平方差(…

蓝桥杯-成绩分析

许久不敲代码&#xff0c;库名也忘了&#xff0c;精度设置还有求最大最小值都是常规题了。 #include <iostream> #include <iomanip> using namespace std; int main() { //一种不用开数组的方法 int n; cin>>n; int top0; int low100;//确定最大…

【MySQL面试复习】详细说下事务的特性

系列文章目录 在MySQL中&#xff0c;如何定位慢查询&#xff1f; 发现了某个SQL语句执行很慢&#xff0c;如何进行分析&#xff1f; 了解过索引吗&#xff1f;(索引的底层原理)/B 树和B树的区别是什么&#xff1f; 什么是聚簇索引&#xff08;聚集索引&#xff09;和非聚簇索引…

外贸获客必读!2个月内成交2单,EDM如何避免垃圾箱成功拓展新客户?

近期&#xff0c;不少伙伴反馈在使用EDM邮件开发时遇到了一些问题&#xff0c;例如邮件发不出去&#xff0c;或者直接进入垃圾箱。在这篇文章中&#xff0c;我们将分享某用户是如何解决这些问题&#xff0c;并通过实战案例成功成交了2个客户。 搜索&#xff1a;focussend.com &…

[云原生] 二进制安装K8S(中)部署网络插件和DNS

书接上文&#xff0c;我们继续部署剩余的插件 一、K8s的CNI网络插件模式 2.1 k8s的三种网络模式 K8S 中 Pod 网络通信&#xff1a; &#xff08;1&#xff09;Pod 内容器与容器之间的通信 在同一个 Pod 内的容器&#xff08;Pod 内的容器是不会跨宿主机的&#xff09;共享…

API保障——电子商务安全性与稳定性设计

在这次深入探讨中&#xff0c;我们将深入了解API设计&#xff0c;从基础知识开始&#xff0c;逐步进阶到定义出色API的最佳实践。 作为开发者&#xff0c;你可能对许多这些概念很熟悉&#xff0c;但我将提供详细的解释&#xff0c;以加深你的理解。 ​ API设计&#xff1a;电…

MySQL数据库应用与开发(全)

一、 MySQL数据库基本操作 1、创建表 #创建数据库 CREATE DATABASE teaching CHARSET utf8; #贴换teaching为当前数据库 USE teaching;二、数据表的创建 1、创建学生表 CREATE TABLE IF NOT EXISTS student (studentno CHAR(11) NOT NULL COMMENT 学号,sname CHAR(8) NOT N…