Lecture 15:元学习Meta Learning2

news2024/12/27 11:43:50

目录

Meta Learning – MAML

MAML

Reptile

Meta Learning – Gradient Descent as LSTM

Meta Learning – Metric-based

Meta Learning - Train+Test as RNN


Meta Learning – MAML

Meta Learning:让机器自动找出learning algorithm

Meta Learning的三个步骤(前面笔记有写,这里简单复习一下):

step 1: Define a set of learning algorithm

step 2: Defining the goodness of a function F

Meta Learning常常跟few-shot learning一起使用

step 3: Find the best function F*

下面介绍Meta Learning的两个technique:MAML、Reptile

MAML

评价Φ的好坏:如下图,Φ本身拿去做task1和task2没有很强,但是Φ拿去做训练以后(用task1和task2的data做训练后)变得很强,那它就是一个好的Φ

MAML v.s. Model Pre-training

MAML在实作的时候,training algorithm通常只做一次update,理由如下:

  • Fast ... Fast ... Fast ...
  • Good to truly train a model with one step.
  • When using the algorithm, still update many times.
  • Few-shot learning has limited data.

MAML - Real lmplementation: MAML走两步gradient,用第二步gradient去update参数Φ

对比下pre-training:往当前Φ在training task上算出来的gradient方向移动

把MAML实作在translation的任务上,结果如下图。MAML比pre-training效果好,尤其是在训练资料量少的时候。

Reptile

Reptile和MAML、pre-train的不同:

下图是Reptile、MAML、pre-train实作在Omniglot上的结果,可以看到meta learning的方法效果明显好于pre-train的方法:

Meta Learning – Gradient Descent as LSTM

Review Recurrent Neural Network:

Review LSTM:

LSTM和gradient descent的式子有相似之处:

LSTM for Gradient Descent:

LSTM memory cell中的值,就是network的参数

LSTM for Gradient Descent在实作上,因为LSTM的memory cell不可能开的太大(1024个memory cell就算比较多的了),而network的参数通常有几万到几十万个,所以在实作上LSTM只开一个cell,所有的network参数都通过相同的LSTM训练出来:

Meta Learning – Metric-based

Metric-based是一个比较crazy的idea,它希望输入training data和testing data,能够直接输出predicted label of testing data:

后面都以Face Verification这个task为例,它是一个few-shot learning的task:

Face Verification可以当做一个meta learning的任务做:

对于上面图片中的network,我们要训练这个network能够同时做训练和测试。实际上这个network的架构最常见的设计叫做Siamese Network(可以理解为孪生网络):

Siamese Network - Intuitive Explanation(当做一个binary classification的problem去理解)

上面都是做的Verification的任务,即可以当成binary classification的任务,下面介绍如何做identification的任务,即N-way Few/One-shot Learning的任务。

N-way Few/One-shot Learning任务举例:

这种任务的network架构如何设计?下面给出三个文献上的做法:

① Prototypical Network

② Matching Network

这个network和Prototypical Network很类似,它们最大的区别在于Prototypical Network把training data的每一张图片都分开处理,Matching Network用一个bidirectional LSTM接收所有的training data。

③ Relation Network

在few-shot learning中常常遇到的问题是训练资料很少,所以我们可以让机器去generate训练资料。generator是和network一起被learn出来的。

Meta Learning - Train+Test as RNN

在上面使用过的Metric-based approach的方法,使用的是专门设计过的network architecture。Can we use general network architecture?

用一般的LSTM train不起来,修改LSTM架构(比较知名的有MANN、SNAIL)后可以train起来:

文献上结果表明SNAIL效果比较好:

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

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

相关文章

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:一个指令在多核上,同时做同样的指令操作。 现代显卡放了无数个小小的核。 因此,在做所有的绘制算法…

PCIE设备在设备上枚举过程

根端口枚举 Root Port (RP) 在枚举过程结束时,Root Port (RP)必须设置以下寄存器: Primary Bus, Secondary Bus和Subordinate Bus numbers Memory Base和Limit IO Base和IO Limit Max Payload Size Memory Space Enable bit Endpoint (EP) Endpoint …

Oxygen Feedback Crack

Oxygen Feedback Crack Oxygen Integration为您的社区提供了一种简单有效的互动和提供反馈的方式。它易于配置和集成,并且包括用户友好的界面和许多对评论员和管理员都有用的功能。Oxygen Feedback Enterprise允许您在自己的服务器上安装软件,以便更好地…

【数据结构】线性表之顺序表

目录 一、线性表的定义二、顺序表1. 顺序表的定义2. 顺序表的结构2.1 静态顺序表2.2 动态顺序表 3. 动态顺序表的接口实现3.1 顺序表的接口3.2 接口的实现 三、顺序表总结1. 动态顺序表的优点2. 动态顺序表的缺点 结尾 一、线性表的定义 线性表是 n (n > 0) 个具有相同特性…

日志服务器的搭建

日志服务器 在centos7系统中,默认的日志系统是rsyslog,它是一类unix系统上使用的开源工具,用于在ip网络中转发日志信息,rsyslog采用模块化设计,是syslog的替代品。 rsyslog特点 实现了基本的syslog协议 直接兼容syslo…

linkindList源码分析

前言 LinkedList ,基于节点实现的双向链表的 List ,每个节点都指向前一个和后一个节点从而形成链表。 LinkedList集合同时具有List集合和Queue集合的基本特征 类图 如下 1 个接口是少于 ArrayList 的: java.util.RandomAccess 接口&#xff…

Sui正式推出学术研究奖计划

欢迎研究人员和学者提交第一轮Sui学术研究奖的资金申请。 Sui基金会诚邀来自世界各地机构的研究人员和学者申请第一轮Sui学术研究奖。申请按提交顺序排序,每个季度公布一次。 跨学科研究对于深入理解Web3及其改变世界的潜力起着关键性的作用。Sui基金会推出的学术…

【定义函数与常用函数】------- PYTHON基础7

内容目录 一、 定义函数二、Python常用函数介绍min() ; max()sum() ; sum(x, start 0)type()str()sorted()help() 一、 定义函数 定义了一个计算三角形面积的函数,然后调用 def triangle_area(w, h):area w * h/2print(底边长为: , w, ,高为&#xff…

Redis-2.1-架构综述

1 Redis组件模型 Redis 组件的系统架构如图所示,主要包括事件处理、数据存储及管理、用于系统扩展的主从复制/集群管理,以及为插件化功能扩展的 Module System 模块。 Redis的客户端与服务端的交互过程如下所示: 1.1 事件处理机制 Redis 中的…

linux中wait与waitpid函数使用场景及扩展

一般运用这两个函数,是在父进程等待子进程退出的过程中 区别:wait使调用者阻塞,waitpid有一个选项,可以使调用者不阻塞 status参数是一个整型数指针 非空:子进程退出状态放在它所指向的地址中。 空:不关心退出状态 …

计算机视觉的深度学习 Lecture2 笔记 EECS 498.008

Lecture2 498_FA2019_lecture02 KNN可视化 没有测试集、只有测试集都是很糟糕的。要有验证集,验证集只使用一次、且在训练了足够时间之后。 不过这样可能会导致最后才发现算法的效果不好。 更好的解决思路: [外链图片转存失败,源站可能有防盗链机制,建…

算法(一)—— 回溯

文章目录 前言1 77 组合2 77 组合优化 前言 1、回溯法解决的问题都可以抽象为树形结构(N叉树),使用树形结构来理解回溯。 2、回溯法解决的都是在集合中递归查找子集,集合的大小就构成了树的宽度,递归的深度&#xff…

【分支与循环】------- PYTHON基础6

内容目录 一、分支结构分支结构 – 条件语句 if分支结构 – 条件语句 if…else分支结构 – 条件语句 if…elif…else 二、循环结构循环结构 – 初识 while 循环循环结构 – while 无限循环 一、分支结构 分支结构 – 条件语句 if score input(请输入成绩:) #inpu…