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

目录

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.mzph.cn/news/711093.shtml

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

相关文章

阿里Replace Anything:一键替换万物,让图像编辑更简单

最近,阿里巴巴智能研究院在AIGC领域可谓动作频频,新品发布不断,在之前的文章已经向大家介绍了关于Animate AnyOne, Outfit Anyone,AnyText, AnyDoor等相关技术,感兴趣的小伙伴可以点击下面链接阅读~ AI一键…

Laravel - API 项目适用的图片验证码

1. 安装 gregwar/captcha 图片验证码接口的流程是: 生成图片验证码 生成随机的 key,将验证码文本存入缓存。 返回随机的 key,以及验证码图片 # 不限于 laravel 普通 php 项目也可以使用额 $ composer require gregwar/captcha2. 开发接口 …

小塔RFID技术帮您解决“仓储管理危机”!

商品积压对一个企业带来的影响是久远的,仓储管理流转失衡:库存数据不准确、繁琐人工管理费时费力、商品爆仓及库存短缺等造成“仓储管理危机”,让企业自身陷入困境。 优化仓储管理,小塔RFID仓储管理方案轻松解决。利用RFID&#x…

java数据结构与算法刷题-----LeetCode538. 把二叉搜索树转换为累加树

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 解题思路 BST二叉搜索树,中序遍历结果为一个升序序列…

【C语言】三子棋

前言: 三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏规则是双方对战,双方依次在9宫格棋盘上摆放棋子,率先将自己的三个棋子走成一条线就视为胜利。但因棋盘太小,三子棋在很多时候会出现和…

Unity(第十四部)光照

原始的有默认灯光、除了默认的你还可以创建 1、定向光源(类似太阳、从无限远的地方射向地面的光,光源位置并不影响照射角度等,不同方向的旋转影响角度和明亮) 1. 颜色:调整光的颜色2. 模式:混合是实时加烘…

FCU2601嵌入式控制单元获得开普「电磁兼容检验证书」

近日,飞凌嵌入式专为锂电池储能行业设计的FCU2601嵌入式控制单元获得了开普电磁兼容检验证书,此次性能检验项目包括高频干扰检验、静电放电干扰检验、辐射电磁场干扰检验、快速瞬变脉冲群干扰检验、浪涌干扰检验、工频磁场干扰检验、阻尼振荡磁场干扰检验…

基于docker实现MySQL主从复制(全网最详细!!!)

一、 通过docker镜像搭建MySQL主从 主服务器:容器名zi-mysql-master,端口3306 从服务器:容器名zi-mysql-slave1,端口3307 从服务器:容器名zi-mysql-slave2,端口3308 二、 关闭防火墙,启动docker…

免费百度快速收录软件

在网站SEO的过程中,不断更新网站内容是提升排名和吸引流量的关键之一。而对于大多数网站管理员来说,频繁手动更新文章并进行SEO优化可能会是一项繁琐且耗时的任务。针对这一问题,百度自动更新文章SEO工具应运而生,它能够帮助网站管…

CCF-A类 IEEE VIS‘24 3月31日截稿!探索可视化技术的无限可能!

会议之眼 快讯 IEEE VIS (IEEE Visualization Conference )即可视化大会将于 2024 年 10月13日 -18日在美国佛罗里达州皮特海滩的信风岛大海滩度假举行!圣彼得海滩,以其迷人的日落和和煦的微风,作为激发创造力和促进可视化社区内合作的完美背…

工厂模式 详解 设计模式

工厂模式 其主要目的是封装对象的创建过程,使客户端代码和具体的对象实现解耦。这样子就不用每次都new对象,更换对象的话,所有new对象的地方也要修改,违背了开闭原则(对扩展开放,对修改关闭)。…

win中删除不掉的文件,火绒粉碎删除亲测有效

看网上的 win R 然后终端输入什么删除的,照做了都没有删掉 有火绒的可以试试: 拖进去就删掉了 很好使

选项 打光 试题总结

试题1 被测物体100100mm,精度要求被测物体 ,精度要求0.1mm,相机距被测物体在200~320mm之间,要求选择合适的相机和镜头? 分析如下: 通常我们用的相机靶面是4:3 的所以我们要用短边来计算视场&am…

Jmeter系列(5)线程数到底能设置多大

疑惑 一台设备的线程数到底可以设置多大? 线程数设置 经过一番搜索找到了这样的答案: Linux下,2g的 java内存,1m 的栈空间,最大启动线程数2000线程数建议不超过1000jmeter 能启动多少线程,由你的堆内存…

Tomcat 下部署若依单体应用可观测最佳实践

实现目标 采集指标信息采集链路信息采集日志信息采集 RUM 信息会话重放 即用户访问前端的一系列过程的会话录制信息,包括点击某个按钮、操作界面、停留时间等,有助于客户真是意图、操作复现 版本信息 Tomcat (9.0.81)Springboot(2.6.2)JDK (>8)DDT…

ensp路由器将不同网络连通在一起

1.拓扑结构信息如下 二层交换机:lsw2,lsw3,lsw5,lsw6 不进行ip配置,只是定义vlan,和主机标注的保持一致,向下连接pc用access,向上连接路由交换机用trunk lsw2配置信息如下图 定义vlan,设置各个连接口的方式…

tcpdump 常用用法

简要记录下tcpdump用法 监控某个ip上的某个端口的流量 tcpdump -i enp0s25 tcp port 5432 -nn -S 各个参数作用 -i enp0s25 指定抓包的网卡是enp0s25 -nn 显示ip地址和数字端口 ,如果只 -n 则显示ip,但是端口为services文件中的服务名 如果一个…

用python写一个自动化部署工具

效果 起因 现在springboot项目的自动化部署已经非常普遍,有用Jenkins的,有用git钩子函数的,有用docker的…等等。这段时间在玩python,想着用python实现自动化部署,即能锻炼下编码能力,又方便运维。于是开始…

每日学习总结20240228

每日总结 20240228 1.获取系统命令执行结果 #include <stdio.h>#define TRUE 1 #define FALSE 0int get_system_cmd_result(const char *command, char *buffer, int bufferLen) {FILE *pipe popen(command, "r");if (pipe NULL) {return FALSE;}while (f…

HTML-表格、表单和CSS初识,选择器,书写规范

&#xff11;. 表格标签 &#xff11;.&#xff11;创建表格 表格标签是一种用来处理&#xff0c;显示表格式数据的常用标签。 注意&#xff1a; &#xff11;. tr 用于定义表格中的一行&#xff0c;必须嵌套在 table标签中&#xff0c;在 table中包含几对 tr&#xff0c;就有…