Lecture 15:元学习Meta Learning

news2024/12/26 23:08:43

目录

Review Machine Learning

Introduction of Meta Learning

What is Meta Learning?

Meta Learning的三个步骤

Meta Learning的framework:

ML v.s. Meta

Meta Learning的training

What is learnable in a learning algorithm?

初始化参数θ0

Optimizer

Network Structure

Data Processing

Sample Reweighting

Beyond Gradient Descent

Meta Learning的Applications

More about Meta Learning

Meta Learning v.s. Self-supervised Learning

Meta Learning v.s. Knowledge Distillation

Meta Learning v.s. Domain Adaptation

Meta Learning v.s. Life-long Learning


Meta Learning: Learn to learn

Review Machine Learning

Machine Learning = Looking for a function

Machine Learning有三个step:

Step 1: Function with unknown

Step 2: Define loss function

Step 3: Optimization

Introduction of Meta Learning

What is Meta Learning?

Meta Learning的三个步骤

Machine Learning通过三个步骤找function,Meta Learning通过三个步骤找learning algorithm:

step 1: What is learnable in a learning algorithm?

找出learning algorithm中要被machine学出来的东西,例如Net Architecture, Initial Parameters, Learning Rate。这些之前都是人自己决定的,现在我们期待它们是可以被学出来的。我们把这些在learning algorithm里面想要学出来的东西统称为Φ。

step 2: Define loss function(L(Φ)) for learning algorithm FΦ

In typical ML, we compute the loss based on training examples.

In meta, we compute the loss based on testing examples.

step 3: Find Φ that can minimize L(Φ)

Meta Learning的framework:

ML v.s. Meta

Goal:

Training Data:

Framework:

Loss:

上面介绍的是它们的差别,下面介绍它们的相同之处:

Meta Learning的training

假设在training的时候使用gradient descent,那就需要求出loss,即求出L(Φ),所以需要把每个ln求出来。要算第n个任务的ln,要进行一次episode(一次within-task training+一次within-task testing),所以要算一个ln,运算量比较大。

What is learnable in a learning algorithm?

下面用一些实例介绍在meta Learning里面,什么是可以被学的。

Review: Gradient Descent

我们一般最常用的learning algorithm就是gradient descent:

初始化参数θ0

在gradient descent的整个过程中,θ0是可以被train出来的。如何找出一个对训练特别有帮助的initial的参数θ0——MAML:

How to train MAML (train MAML也需要调参数,需要random seed):

MAML v.s. pre-training:

        在self-supervised learning还不流行的时候,pre-training比较常见的做法是把好几个任务的资料倒在一起当做一个任务进行训练,这种做法叫做multi-task learning。通常把multi-task learning的方法当做meta的baseline。

Why MAML is good? 关于MAML为什么会好有两个不同的假设,rapid learning 和feature reuse,下图中的paper得到的结论是feature reuse是MAML好的理由:

Optimizer

除了学习初始化的参数θ0,还可以学习optimizer:

Network Structure

Network Structure也可以被训练出来。训练network架构这系列的研究,叫做Network Architecture Search (NAS)。

在NAS中,Φ是network架构,不好微分,所以可以用RL硬做:

除了用RL硬做以外,用Evolution Algorithm也是可以的。

把Network Architecture改一下,让它变得可以微分,也是可以做的,有个经典的做法叫DARTS:

Data Processing

Sample Reweighting

Beyond Gradient Descent

上面的方法都是基于gradient descent去做改进,有没有可能完全舍弃gradient descent?

Meta Learning的Applications

今天做meta learning的时候,最常拿来测试Meta Learning技术的任务是Few-shot lmage Classification。

Few-shot lmage Classification: Each class only has a few images

N-ways K-shot classification: In each task, there are N classes, each has K examples.

In meta learning, you need to repare many N-ways K-shot tasks as training and testing tasks.

如何寻找一堆N-ways K-shot的任务?在文献上,最常见的做法是使用Omniglot这个corpus当做

benchmark corpus:

N-ways K-shot的任务做在Omniglot上没什么实际的作用,但是meta learning不是只能用在Omniglot上面,下表列举了meta learning在语音还有自然语言处理上的应用(纵轴是不同meta learning的方法,横轴是不同的应用):

More about Meta Learning

Meta Learning v.s. Self-supervised Learning

Self-supervised Learning (BERT and pals):

Learn to lnit (MAML family):

BERT和MAML它们有共同的目标——找初始化的参数。

BERT和MAML不是互斥的,它们可以相辅相成。MAML通过gradient descent的方法去learn一组初始化的参数,但MAML本身也需要initialize的参数Φ0,BERT可以用来寻找Φ0:

BERT和MAML各有长短,把它们结合在一起的实验结果如下:

有关meta learning用在自然语言处理上的一些work,如下图,在做MAML的时候,多数文章都使用了BERT或Word Embedding做initialization:

Meta Learning v.s. Knowledge Distillation

Knowledge Distillation:

在Knowledge Distillation中,大的model、即teacher model到底擅不擅长教学?因为在训练过程中,teacher model只是被当做一个普通的的model去训练,并没有教teacher model如何teaching。

有文献指出,在分类任务上做的特别好的teacher,不一定擅长教学:

Can the teacher-network “learn to teach”? —— meta learning

要让teacher net learn to teach,teacher net update参数的目标不是自己能够做多好,而是student可以做多好:

Meta Learning v.s. Domain Adaptation

Domain Adaptation:

Meta Learning for Domain Generalization:

Example -Text Classification:

Meta Learning可以帮助做domain adaptation,但是Meta Learning本身也可能会遇到需要做domain adaptation的状况:

Meta Learning v.s. Life-long Learning

Lifelong Learning Scenario:

在过去的笔记中,有写过一些处理Catastrophic forgetting的方法,meta learning可以强化这些方法,下面以Regularization-based的方法为例:

在之前的笔记中提过一系列Regularization-based的方法,例如EWC、SI等,这些方法是人设计的。除了让人设计Regularization以外,可以通过meta learning找一个比较好的algorithm,这个比较好的algorithm可以避免Catastrophic forgetting:

Meta Learning可以帮助learn一个比较好的algorithm,这个algorithm可以避免Catastrophic forgetting,但是Meta Learning本身也可能遇到Catastrophic forgetting的状况,如何解决参见下图中的论文:

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

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

相关文章

用 Phthon 写抽奖程序

一共 10 人参与抽奖,四人中奖,其中一人固定不变。 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单…… 地址&#xff1a…

windows 打包 inno setup

1.下载并安装 inno setup 官网下载地址 点击下载并安装inno setup 软件,安装完成后点打开软件 在上图中点击 cancel 回到inno setup 的主界面 ①在主界面点击File -> New 然后在向导界面点击 next 填写安装信息点击next 如下图 点击next e 选择exe的位置, add folder …

实战打靶集锦-019-BTRSys2.1

提示:本文记录了博主的一次普通的打靶经历 目录 1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查4.1 FTP服务探查4.2 Apache服务探查4.2.1 wpscan扫描4.2.2 Metasploit神器4.2.3 手工探查页面4.2.3.1 Appearance Editor4.2.3.2 Plugins Editor 5. 提权5.1 系统信息枚…

KVM存储池管理与磁盘格式

KVM存储池管理与磁盘格式 KVM必须配置一个目录作为存储磁盘镜像(存储卷)的目录,我们称这个目录为存储池 存储池管理 默认存储池 /var/lib/libvirt/images/ 创建基于文件夹的存储池(目录) mkdir -p /data/vmfs定义…

详解MySQL覆盖索引、索引下推

目录 1.覆盖索引 1.1.概述 1.2.聚集索引、非聚集索引 1.3.回表查询 1.4.覆盖索引 2.索引下推 1.覆盖索引 1.1.概述 覆盖索引,是为了避免“回表查询”,从而降低查询耗时的一种使用索引的方法,所以要聊覆盖索引首先我们要知道什么是&qu…

HTB-Busqueda

HTB-Busqueda 信息收集80端口 svcsvc -> root 信息收集 80端口 将ip和searcher.htb添加至/etc/hosts文件。 功能能就是你输入一个值,选择好搜索引擎后点击search,就会生成一个选择的搜索引擎里搜索你输入的值的链接。比如输入aster。 如果勾选了自动…

Github配置SSH密钥连接(附相关问题解决)

Github配置SSH密钥连接(附相关问题解决) 引言 当前,通过Git在本地仓库和远程仓库(如Github)之间进行操作,已不再支持密码验证,而是转为通过更安全的SSH密钥验证方式。 因此,本文将…

正态分布线性计算的方差推导(含协方差推导)

推导如下: 由于方差是每个数据与均值离差平方和的均值:即对Σ(每个数据-均值)再求一次均值👇 最终Var(X) E(X)-E(X) 因此👇 Var(X-Y) E(X-Y)-E(X-Y) …

mysql的主从复制和读写分离

1.mysql主从复制和读写分离的相关知识 1.1 什么是读写分离? 读写分离,基本的原理是让主数据库处理事务性增、改、删操作( INSERT、UPDATE、DELETE) ,而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 …

一个用于Allen脑图谱基因数据的工具箱|abagen

艾伦人类脑图谱(Allen Human Brain Atlas) 艾伦人类脑图谱是一个由艾伦脑科学研究所(Allen Institute for Brain Science)开发的在线基因表达图谱数据库,旨在提供人类大脑各个区域的细胞类型和基因表达信息。这个数据库包含了人类全基因组微…

【C语言】通讯录(文件版)

前言 前面我们完成了通讯录的静态版本和动态版本,虽然功能已经比较完善了,但是前面的通讯录缺少了存储联系人的能力,所以我们学习了文件的操作管理,这里我们就用上一篇文章的知识来完成这次的文章吧。 关于通讯录的前两篇文章我放…

Lecture 15:元学习Meta Learning2

目录 Meta Learning – MAML MAML Reptile Meta Learning – Gradient Descent as LSTM Meta Learning – Metric-based Meta Learning - TrainTest as RNN Meta Learning – MAML Meta Learning:让机器自动找出learning algorithm Meta Learning的三个步骤&…

Oracle的学习心得和知识总结(二十五)|Oracle数据库Real Application Testing之真实应用测试概述白皮书

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《Oracle Database SQL Language Reference》 2、参考书籍:《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Gui…

从零开始学习vue3.2项目开发

文章目录 参考B站视频:1、vue创建项目和打包1.1 安装node 版本1.2 打开vscode创建vue项目1.3 查看vite和vue版本信息1.4 运行项目1.5 打包项目1.6 安装插件自动导入vue模块1.7 其他,可忽略1.8 解决加载vue时显示的 vite vue字段(vue项目初始化…

UNIAPP实战项目笔记67 加入购物车的前端和后端交互

UNIAPP实战项目笔记67 加入购物车的前端和后端交互 思路 前端商品详情页adCart加入购物车时直接发送数据到后端 后端创建接口直接接受前端发过来的数据,更新数据库中该用户的购物车数据 案例截图 代码 后端代码 index.js var express require(express); var rou…

多个pdf怎么合并成一个pdf?教您几招快速合并的方法!

多个pdf怎么合并成一个pdf?通常来说,将多个PDF文件进行合并是非常重要的。在我们日常工作中,我们经常需要使用PDF文件,比如合同、报告等。将多个相关的PDF文件合并成一个更大的文件可以方便我们查看和管理。这样,我们就…

Notion ai进阶【找到属于Notion ai的提示词】

导语:通过一段时间的使用和实验,我发现目前Notion ai的使用带有不同方向,所展示的能力也有所不同,回顾 上篇文章,我们了解到prompt在其中扮演重要角色,而在将Notion ai带入到Discord或其它使用场景下prompt…

重要通知|Sui测试网将于5月11日重置

致Sui社区成员们: 正如之前公告所述,部分社区成员发现测试网可能会定期清除数据并重新启动。鉴于此,我们宣布计划将于2023年5月11日进行首次测试网清除。 对于想要继续读取和访问当前测试网络的社区成员,请使用由Mysten Labs在…

怎么把webp文件转换为jpg?这几种方法值得学习!

怎么把webp文件转换为jpg,我想这样的问题对于那些和图片打交道不多的人来说确实有些困难吧。在我们要处理这个问题之前,我们先来了解一下图片格式webp吧。要是知道Youtube、Gmail、Google Play 中都可以看到 WebP 的身影,而 Chrome 网上商店甚…

Games104现代游戏引擎学习笔记04

渲染管线 显卡: SIMD指令:指令级并行运算。一个指令,4次运算。处理坐标运算,矩阵运算 SIMT:一个指令在多核上,同时做同样的指令操作。 现代显卡放了无数个小小的核。 因此,在做所有的绘制算法…