Meta-learning:Learn to learn

2023-05-16

【基于李宏毅教授的ML课程做的笔记,主要供自己复习,所以就留下了一些自己想多看的东西,b站有全面的课程视频】

  • 引言:为什么few-shot任务常常提及元学习meta-learning?在后续分析中能体会到meta-learning可能有不少的train task、test task,要训这么多任务,自然数据量小一点好,和few-shot任务就很接近了。

一、理解Learn to learn

  1. 整体考虑下面的图,我们熟悉的学习是不断地用梯度更新网络参数,但其实 in terms of 网络结构、初始参数的设置、参数的更新策略(SGD的learning rate)、甚至整个learning algorithm F,也许都可以让机器学习,而不用人来设计。

在这里插入图片描述

  1. Meta learning是想从上面说的几个方面下手,改变learning algorithm的某些方面;像下面的图所示,有一个training task中要分辨猫、狗的图片,我用meta-learning假如来学习F中的网络初始化参数,学的好的结果应该是这个初始化参数能够使得网络最后的训练结果好
    相应的,meta-learning运用到test task中(假如是分辨人脸),这个初始化参数应该也能导致网络最后的性能不错,神奇哈!!!

在这里插入图片描述

  1. 回到meta-learning的learn to learn概念,从大的来看是找到learning algorithm F,使得F能在不同任务中 learn 出优秀的模型 f ;从小的来看,可以举例为从具体的training task的数据中,学习F中的网络初始化参数,目的是通过此初始化参数能够 learn 出优秀的模型。

二、两篇meta-learning的论文

  1. MAML【Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks】2017年发布于ICML。它的任务就是我们在一中提到的例子——学习网络的初始化参数,首先的限制就是不同的task都要有相同的网络结构。
    那么对于一系列的training task,meta-learning怎么学习到网络的初始化参数 Φ ?最终还是用梯度下降,也就是所有traning task各自从Φ开始训,在query set(就是这个task上的测试集)上的loss相加,就是此时针对 Φ 的loss。
    在这里插入图片描述
  2. 那这不是跟预训练模型一样么???
    看图说话,要明确的是元学习始终是learn to learn,回到一中反复提的learning algorithm F,MAML只是关注于初始化参数 Φ 的设置,改变 Φ 的依据是各training task训练得到的最终参数表现出来的loss,也就是潜能好。
    在这里插入图片描述
    不同的是,预训练模型在task 1 、task 2上训练得到网络参数Φ,这个Φ就要在两个任务上的loss都比较低,也就是现在的表现好,却不一定能在某一个任务上达到最低。
    在这里插入图片描述
  3. Reptile【On First-Order Meta-Learning Algorithms】
    MAML在提出的时候还有一个限制是只在traning task上训练one step,李教授说了一些猜测我先略了。然后在实际计算Φ 的梯度的时候也做了梯度的近似,可以总结为:网络训练one step后的参数,loss对其求导,相应的梯度来更新Φ,我也略了。
    对于Reptile,来看图说话:
    在这里插入图片描述虽然这里更像预训练模型了,又有一个图来比较一下(g1,g2是两个task的loss梯度):pre-train的话网络的Φ更新方向应该是g1(我理解的是两个task中第一个是预训练task,第二个就是正常评估性能的task了);MAML用了上述提到的梯度近似后,更新方向应该是g2(不理解);Reptile就是g1 g2两个方向都会走(见上图)!
    在这里插入图片描述

三、few-shot任务的一些思路

下面的网络解决的问题请自动带入N-way, K-shot(N分类,每个类别support set只有K个样本)的语境中~

  1. Siamese Network
    下图中的network典型的就是CNN,理想情况是提取到图片内分辨same,different的最关键特征,而像auto-encoder就可能提取到图片的全部特征,效果可能差些。
    在这里插入图片描述
  2. prototypical network、matching network
    (1)如图所示,核心思想依然是“匹配”,要理解的是下图的逻辑是support set的图片通过CNN提特征,如5-shot任务就把5个样本的特征mean作为此类的prototypes向量,到这里算是完成了learning algrithm F从数据中学到模型 f 的过程(个人理解:即F是CNN网络,模型 f 则是简单的通过prototypes向量分辨data是哪一类)。
    (2)接下来的query set的图片提取特征后,和prototypes向量计算相似度,进而判断类别(具体如计算特征向量之间的欧拉距离)。
    (3)matching network不同的是,会把下图中的support set经过的CNN网络换成双向LSTM。(要大概理解他的意思就是觉得要挖掘样本间的上下文关系)。
    在这里插入图片描述
  3. Relation Network
    其实还没看论文实现,先猜测就是两手抓:提取特征、判断类别的模型中用了两个网络,而不像2在判断类别上用的手段更intuitive。
    在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Meta-learning:Learn to learn 的相关文章

  • 深度学习(Deep Learning)

    知识关键点 1 人工智能 深度学习的发展历程 2 深度学习框架 3 神经网络训练方法 4 卷积神经网络 xff0c 卷积核 池化 通道 激活函数 5 循环神经网络 xff0c 长短时记忆 LSTM 门控循环单元 GRU 6 参数初始化方法
  • [论文解读]Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey

    Threat of Adversarial Attacks on Deep Learning in Computer Vision A Survey 文章目录 Threat of Adversarial Attacks on Deep Le
  • 浅谈联邦学习Federated Learning

    最近人工智能 大数据领域的公众号疯狂给我推送 联邦学习 相关的文章 xff0c 使得本来并不好奇的我 xff0c 有了一丝丝揭开它神秘面纱的冲动 公众号的每篇推文写得都很好 xff0c 但同时也十分学术 xff0c 作为刚上路的我 xff0
  • Django接收自定义http header(转)--- request.META.get('HTTP_REGIONID')

    https www cnblogs com ajianbeyourself p 4104504 html With the exception of CONTENT LENGTH and CONTENT TYPE as given abov
  • Deep Learning 最优化方法之Momentum(动量)

    本文是Deep Learning 之 最优化方法系列文章的Momentum xff08 动量 xff09 方法 主要参考Deep Learning 一书 整个优化系列文章列表 xff1a Deep Learning 之 最优化方法 Deep
  • (Deep Learning)交叉验证(Cross Validation)

    交叉验证 xff08 Cross Validation xff09 交叉验证 xff08 Cross Validation xff09 是一种评估模型泛化性能的统计学方法 xff0c 它比单次划分训练集和测试集的方法更加稳定 全面 交叉验证
  • An Introduction on Deep Learning for the Physical Layer

    An Introduction on Deep Learning for the Physical Layer 代码实现 xff1a https github com shengjian3476077 DLforPhy 一 文章的主要工作
  • open-embeded meta-ros

    open embeded meta ros 准备工作 ROS Robot Operating System xff09 是一个机器人软件平台 xff0c 它能为异质计算机集群提供类似操作系统的功能 ROS的前身是斯坦福人工智能实验室为了支持
  • Generalized Focal Loss: Learning Qualified and Distributed BBoxes for Dense Object Detection论文翻译阅读

    Generalized Focal Loss Learning Qualified and Distributed Bounding Boxes for Dense Object Detection论文翻译阅读 论文下载地址 xff1a 点
  • softwares

    视频切帧 变换分辨率 VLC 文件对比 Beyond Compare 远程控制 向日葵 TeamViewer
  • 从零开始学web开发之html5-h5概述

    前言 为了掌握多一门技术 于是开始了学习前端技术的脚步 虽然安卓还是没有深入地学习一些比较高端的知识 比如view绘制原理 事件分发机制 属性动画的绘制 没有深入地研究一些流行框架 最遗憾的是没有将rxjava应用到自己的工作中 更加没有学
  • 一键分块,轻松拼图!使用Segment Anything让你的设计更加高效!

    目录 第一步 第二步 第三步 第四步 如果你是一名设计师或者摄影爱好者 那么你一定经常需要将图片分割成不同的块 以便在不同的场合下使用 例如 在网页设计中 你可能需要将图片分割成不同的块 以便在不同的区域中使用 而分块的难度不小 需要一定的
  • 输入IP使用JDBC读取数据库信息并返回具体地址

    思路分析 定义连接类 连接数据库 定义properties 存放mysql信息 读取properties 注册驱动 获取连接 定义测试类 运行主程序 定义输入类 检测控制台输入 定义正则表达式 对输入的ip进行判断 判断通过则调用核心逻辑
  • 从 YouTube 网址获取持续时间

    我正在寻找一个函数 可以从 url 中提取视频的 YouTube 持续时间 我读了一些教程但不明白 我使用网址在我的网站上嵌入视频 并且我有一个提取缩略图的功能 我只想要类似的东西来获取持续时间 这是我如何获得拇指 function get
  • 关键词元标签:有用还是浪费时间?

    我总是在我的网站页面上放置元关键字 但我听说有传言说你不必这样做 我应该继续在我的页面上添加关键字还是只是浪费时间 This article说 谷歌多年前就不再使用 META 关键字 因为它们很容易被滥用 Quote 我们的网络搜索 Goo
  • 根据 URL / 锚点更改 Facebook 元数据

    我在输入问题时发现对此进行了小型交流将 URL 哈希添加到 Facebook 和 Twitter 共享卡的元数据中 https stackoverflow com questions 16014439 adding a url hash i
  • 标题和元标签未在服务器中的角度 SSR 中呈现

    我在前端使用 Angular 6 开发了一个网站 默认情况下 Angular 对 SEO 不友好 因此为了做到这一点 我以 Angular Universal 或 Angular SSR 服务器端渲染 的方式实现它 我更新了代码并比较了之前
  • 将 google 字体 (fonts.googleapis.com) 添加到 CSP 标头

    我在 gitHub 页面上托管一个个人项目 并使用 cloudflare 强制执行 https 现在我想实施 CSP 政策 我尝试将元标记添加到页面的头部 但我收到以下错误 拒绝加载样式表 https fonts googleapis co
  • Angular 5 中的页眉和页脚

    我正在用 Angular 5 创建我的网站 我的网站中有主页 商店和类别页面 最初 我决定在整个网站上保持页眉和页脚全局 我的意思是创建页眉和页脚组件并将它们用作指令
  • Zurb Foundation _global.scss js 元样式?

    我当时正在开发一个 Foundation 5 项目 结果发现该项目有一个过时的 global scss 组件 我试图得到范围滑块 http foundation zurb com docs components range slider h

随机推荐