元强化学习系列(1)之:元学习入门基础

2023-10-29

元强化学习三境界

统计学是人工智能开始发展的一个基础,古老的人们从大量的数据中发现七所存在的规律,在以统计学为基础的 机器学习(machine learning)时代,复杂一点的分类问题效果就不好了, 深度学习(Deep Learning)的出现基本上解决了一对一映射的问题,比如说图像分类,一个输入对一个输出,因此出现了AlexNet这样的里程碑式的成果。但如果输出对下一个输入还有影响呢?也就是序列决策(sequential decision making) 的问题,单一的深度学习就解决不了了。强化学习(Reinforcement Learning)的出现让该问题得到了新的发展,深度强化学习(Deep Learning + Reinforcement Learning = Deep Reinforcement Learning)通过使用神经网络对强化学习的学习数据利用神经网络进行逼近得到了快速的发展,让序列决策初步取得成效,最典型的例子就是Google DeepMind公司的AlphaGo。

但是,新的问题又出来了,深度强化学习 过度依赖于巨量的训练,并且需要精确的Reward,对于现实世界的很多问题,比如机器人学习,没有好的reward,也没办法无限量训练,怎么办?这就需要能够快速学习。


相比之下,人类能够更快、更有效地学习新的概念和技能。只看过几次猫和鸟的孩子可以很快分辨出来。知道如何骑自行车的人可能很快就会发现骑摩托车的方式。那么是否有可能设计出具有类似属性的机器学习模型 ,答案是“有的”,这也是本文即将讨论的 元学习(Meta-Learning)

第一部分:元学习


我们期望一个良好的模型能够很好地适应或推广到在训练期间从未遇到过的新任务和新环境。适应过程,实质上是一个小型学习会话,在测试期间发生,但对新任务配置的接触有限。最终,改编的模型可以完成新任务。这就是为什么元学习也被称为学习学习(Learning to learn)的原因。

元学习最初由Donald B. Maudsley(1979)描述为“学习者意识到并且越来越多地控制他们已经内化的感知,探究、学习和成长习惯的过程(the process by which learners become aware of and increasingly in control of habits of perception, inquiry, learning, and growth that they have internalized)”。 Maudsely将他的理论的概念基础设定为在假设、结构、变革过程下的解释。阐述了五个原则以促进元学习。学习者一般满足:

  • 有一个理论,无论多么原始;
  • 在安全的支持性社会和物质环境中工作;
  • 发现其规则和假设;
  • 重新与环境中的现实信息联系起来;
  • 通过改变其规则/假设来重组自己。

John Biggs(1985)后来使用元学习的概念来描述“意识到并控制自己的学习”的状,可以将元学习定义为对学习本身现象的认识和理解,而不是学科知识。这个定义隐含着学习者对学习环境的看法,包括了解学科的期望是什么,更简单地说,是对特定学习任务的要求。在这种背景下,元学习取决于学习者的学习观念,认识论信念,学习过程和学术技能,在此总结为一种学习方法。具有高水平元学习意识的学生能够评估自身的学习方法的有效性,并根据学习任务的要求对其进行管理。相反,元学习意识低的学生将无法反思自身的学习方法或学习任务集的性质。因此,当学习变得更加困难和苛刻时,自身将无法成功适应。

1. Meta-Learning理论方法

元学习系统的定义一般需要考虑以下三个要求:

  • The system must include a learning subsystem.(系统必须包括学习子系统。)
  • Experience is gained by exploiting meta knowledge extracted(通过利用提取的元知识获得经验)

    (1). in a previous learning episode on a single dataset(在单个数据集的先前学习情节中)

    (2). from different domains.(来自不同的领域)
  • Learning bias must be chosen dynamically.(必须动态选择学习偏差)

偏差是指影响解释性假设选择的假设[6],而不是偏差 - 方差困境中所表示的偏见概念。 元学习涉及学习偏见的两个方面。

  • 声明性偏差指定假设空间的表示,并且影响搜索空间的大小(例如,仅表示使用线性函数的假设)。
  • 程序性偏差对归纳假设的排序施加约束(即,更喜欢较小的假设)。

2. Meta-Learning核心要素

3. Meta-Learning的tensorflow代码实现

第二部分:高级元学习方法


MAML(Model-Agnostic Meta-Learning)

Meta Networks


目前Meta-learning的分类

1、基于记忆Memory的方法。
基本思路:因为要通过以往的经验来学习,那就可以通过在神经网络中添加Memory来实验。

2、基于预测梯度的方法。
基本思路:Meta Learning的目的是实现快速学习,而实现快速学习的关键点是神经网络的梯度下降要准和快,那么就可以让神经网络利用以往的任务学习如何预测梯度,这样面对新的任务,只要梯度预测的准,那么学习就会快。

3、利用Attention注意力机制
基本思路:训练一个Attention模型,在面对新任务时,能够直接的关注最重要部分。

4、借鉴LSTM的方法
基本思路:LSTM内部的更新非常类似于梯度下降的更新,那么能否利用LSTM的结构训练处一个神经网络的更新机制,输入当前网络参数,直接输出新的更新参数

5、面向RL的Meta Learning方法
基本思路:既然Meta Learning可以用在监督学习,那么增强学习上又可以怎么做呢?能否通过增加一些外部信息的输入比如reward,和之前的action来实验。

6、通过训练一个base model的方法,能同时应用到监督学习和增强学习上
基本思路:之前的方法只能局限在监督学习或增强学习上,能否做出一个更通用的模型。

7、利用WaveNet的方法
基本思路:WaveNet的网络每次都利用了之前的数据,那么能否照搬WaveNet的方式来实现Meta Learning呢?就是充分利用以往的数据。

8、预测Loss的方法
基本思路:要让学习的速度更快,除了更好的梯度,如果有更好的Loss,那么学习的速度也会更快,因此,可以构建一个模型利用以往的任务来学习如何预测Loss

继续更新中…

参考文献:

  • [1]. https://zhuanlan.zhihu.com/p/27696130
  • [2]. https://www.jiqizhixin.com/articles/meta-learning-intro
  • [3]. https://medium.com/huggingface/from-zero-to-research-an-introduction-to-meta-learning-8e16e677f78a
  • [4].https://lilianweng.github.io/lil-log/2018/11/30/meta-learning.html
  • [5]. https://blog.csdn.net/langb2014/article/details/84953307
  • [6]. https://coladrill.github.io/2018/10/24/%E5%85%83%E5%AD%A6%E4%B9%A0%E6%80%BB%E8%A7%88/
  • [7]. https://my.oschina.net/taogang/blog/3011686
  • [8]. https://huangwang.github.io/2019/01/27/%E5%85%83%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E7%A0%94%E7%A9%B6%E7%AC%94%E8%AE%B0/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

元强化学习系列(1)之:元学习入门基础 的相关文章

  • Open3D (C++) 计算矩阵的广义逆

    目录 一 算法原理 1 广义逆 2 计算过程 二 代码实现 三 结果展示 四 参考链接 本文由CSDN点云侠原创 原文链接 爬虫网站自重 把自己当个人 爬些不完整的误导别人有意思吗 一 算法原理 1 广义逆 非方阵不存在逆 但是存在广义逆
  • 学机器人编程要学什么知识

    学机器人编程要学什么知识 孩子的学习一直以来都是让家长们非常关心和重视的一件事情 家长在培养孩子的学习方面也可以说相当的耐心的 他们会给孩子选择一些能够有利于孩子成长的课程 就拿现在很多的家长想要孩子去学习机器人编程的课程来说 有的家长对于
  • 微信小程序如何创建npm(超详细)

    微信小程序如何创建npm 超详细 大家好 今天我们来学习一下小程序如何创建npm 好好看 好好学 超详细的 第一步 1 Windows下安装Node js及环境配置 2 下载小程序开发工具 第二步 打开小程序开发工具 创建一个新的小程序 如
  • Python 在logging.config.dictConfig()日志配置方式下,使用自定义的Handler处理程序

    文章目录 一 基于 RotatingFileHandler 的自定义处理程序 二 基于 TimedRotatingFileHandler 的自定义处理程序 Python logging模块的基本使用 进阶使用详解 Python loggin
  • vue3中的对象时为proxy对象,如何获取值

    vue3中的对象时为proxy对象 如何获取值 使用vue3 0时 因为底层是使用proxy进行代理的所以当我们打印一些值得时候是proxy代理之后的是Proxy 对象 Proxy对象里边的 Target 才是真实的对象 第一种获取targ
  • SpringBoot常用注解使用

    1 https blog csdn net u010502101 article details 78702093
  • Xilinx_FIFO_IP核的使用

    VIVADO FIFO IP核的使用 此处直达 异步FIFO Verilog实现 概述 FIFO本质上还是RAM 是一种先进先出的数据缓存器 先存入的数据先取出 它与普通存储器的区别 没有外部读写地址线 只能顺序写入数据 顺序的读出数据 其
  • coursera北京大学生物信息学(第三-第四周课程笔记)

    如果觉得有用 谢谢点赞鼓励 课程笔记 如果觉得有用 谢谢点赞鼓励 第三周 第一课 第二课 课后答案100分 第四周 第一课 第二课 马尔可夫模型 第三课 隐马尔可夫模型预测 测试 第三周 第一课 通过上周的动态规划算法引入了blast算法
  • ROS:ubuntu-Ros使用OrbSLAM

    一般无误的官方连接 https github com raulmur ORB SLAM ubuntu16 04没有多少改变 还是使用kinetic老代替indigo Related Publications Artical 1 Ra l M
  • Java 多线程更新_Java程序员升级必备:一文详解多线程之线程同步,从基础到进阶...

    欢迎关注专栏 Java架构筑基 专注于Java技术的研究与分享 Java架构筑基 zhuanlan zhihu comJava架构筑基 专注于Java技术的研究与分享 后续文章将首发此专栏 欢迎各位Java工程师朋友投稿和关注 Java 里
  • 《More Effective C++》 笔记

    条款1 仔细区分 pointers 和 references pointers 是一个变量 其本身存放实际内容的地址 references 是一个引用 其就是实际内容的别名 两者都支持多态但是还是有一定区别的 pointer 在进行创建的时
  • Tomcat本地和在idea目录中详解

    这里写目录标题 tomcat本地目录结构 tomcat本地目录结构 bin目录 主要存放tomcat的常用命令 startup shutdown 用来关闭tomcat conf目录 放置配置文件 web xml 配置servlet filt
  • 正交变换不改变矩阵F-范数、2-范数的证明

    一 两种范数的定义 1 1 F 范数 A F
  • python中logger_python中的logger

    2 logging模块使用 2 1 基本使用 配置logging基本的设置 然后在控制台输出日志 import logging logging basicConfig level logging INFO format asctime s
  • mysql中MVCC原理

    MVCC 是啥 MVCC 的英文全称是 Multiversion Concurrency Control 中文意思是多版本并发控制技术 原理是 通过数据行的多个版本管理来实现数据库的并发控制 简单来说就是保存数据的历史版本 可以通过比较版本
  • 接口文档生成工具JAPiDocs

    效果如下 相比Swagger要写一堆注解 Spring RestDocs需要写测试用例 才能生成API文档 要使得JApiDcos正确工作 代码应该是像下面的样子的 用户接口 RequestMapping api user RestCont
  • boxModel

    boxModel boxModel 盒模型 浏览器默认样式表 常见的块盒 容器元素 div header article section aside footer h1 h6 p 常见的行盒 与内容相关的元素 span a img audi

随机推荐

  • jmeter的JDK路径配置,jmeter启动成功

    修改jmeter的bin目录下的三个文件 查看jdk路径 echo JAVA HOME 1 jmeter 添加JAVA HOME D haiersoftware software java jdk1 7 2 jmeter bat 添加set
  • Facebook商城号最全解析,Facebook Marketplace运营技巧

    相信许多做跨境的小伙伴都听说过Facebook商城号 其实所谓的商城并不是Facebook Shop 而是指Facebook Marketplace 它不像前者需要各类入驻条件 只要拥有facebook账号而且所在地区有能够使用market
  • JAVA基础之String与Integer的转换

    我刷Leetcode题目的时候 经常会遇到变量类型转化的问题 方法也有很多种 经常容易混淆 所以特地总结以下内容 1 String转换为Integer 1 Integer类的静态方法valueof String str 123 Intege
  • ubuntu安装软件更新器和附加驱动

    问题背景 ubuntu在安装各种软件包时 可能会把ubuntu自带的软件更新器和附加驱动一不小心给弄没了 如果需要可以安装下面方式手动安装 解决办法 安装软件更新器 sudo apt get update sudo apt get inst
  • gitlab+jenkins自动化部署

    1 安装gitlab 拉取gitlab镜像 docker search gitlab docker pull gitlab gitlab ce 查看镜像是否拉取成功 docker images 安装gitlab docker run d p
  • 无线通信发展历程分析

    摘要 当前 移动 无线技术领域正处在一个高速发展的时期 各种创新移动 无线技术不断涌现并快速步入商用 移动 无线应用市场异常活跃 移动 无线技术自身也在快速演进中不断革新 无线通信未来的发展趋势表现为 从大范围公众移动通信来看 3G或超3G
  • linux usb状态监测,linux下 USB动态监测 hotplug事件监测

    总体规划 使用netlink接口向内核注册hotplug事件通知 获取事件通知后进行相关动作如 Action add 挂载或 action remove 卸载 使用Socket IPC机制向需要响应USB热拔插事件的应用程序报告 功能包括
  • Sourcegraph部署安装和使用

    Sourcegraph是什么 方便的搜索代码 方便的跳转和查看函数 最简单的安装方式 然后你的github就会变成如此 点击小按钮后 你的项目去到了这么个地方 然后你就能尽情的使用其强大的查看代码的功能了 不过事情并没有那么简单 有的人会有
  • Nginx配置文件

    Nginx 服务器安装及配置文件详解 Nginx 服务器安装及配置文件详解 菜鸟教程 Nginx配置文件主要分成四部分 main 全局设置 server 主机设置 upstream 上游服务器设置 主要为反向代理 负载均衡相关配置 设定负载
  • 好用的截图工具Snipaste使用教程

    在日常使用电脑的过程中经常会用到截图操作 今天要跟大家分享的是好用的截图工具Snipaste使用教程 下载安装 到官网下载软件 下载完成后无需安装 直接打开 Snipaste exe 文件就可以使用了 截图 截图默认快捷键是 F1 按下后界
  • 电脑文件怎么复制到服务器,电脑上文件怎样粘贴复制到云服务器

    电脑上文件怎样粘贴复制到云服务器 内容精选 换一换 本方式建议用于非生产系统 本方式通过使用云硬盘备份服务或云服务器备份服务 对SAP HANA的一个或多个卷执行快照 再将卷快照创建成备份 自动上传到华为云OBS 具体方案如图1所示 本方式
  • c++ functor用处!!!

    某些特殊场景 函数中包含一些要赋的值 但是函数只能传入一个参数 例如使用count if 来得到长度大于len的字符的个数 class ShorterThan public explicit ShorterThan int maxLengt
  • Cadence 17.2 Padstack Editor入门指南(2)

    Cadence 17 2 Pad Editor入门指南 2 创建自定义焊盘及封装 Pad Editor与Allegro PCB Designer相互配合 可以做出各种类型的封装 当我们需要制作相对简单的封装时 可以用Pad Editor图形
  • faiss简介及示例

    faiss简介及示例 原文 https blog csdn net kanbuqinghuanyizhang article details 80774609 版权声明 本文为博主原创文章 未经博主允许不得转载 https blog csd
  • LLC和MAC子层的应用

    计算机局域网标准IEEE802 由于局域网只是一个计算机通信网 而且局域网不存在路由选择问题 因此它不需要网络层 而只有最低的两个层次 然而局域网的种类繁多 其媒体接入控制的方法也各不相同 为了使局域网中的数据链路层不致过于复杂 就应当将局
  • 多线程:线程内局部变量

    ThreadLocal类 该类提供了线程内局部 thread local 变量 好比有两个窗口 两个线程 一个窗口可以拿饮料 一个窗口可以拿食物 现在有多个人要来拿东西 如果在饮料窗口有的人拿到了饮料 有的人拿到了不该拿的食物 就说明线程之
  • 【性能测试】第一篇 性能测试概述

    性能测试的介绍 性能测试 通常意义上都是说的服务器性能 性能 内存 cpu 电量 流量 流畅度 为什么要进行性能测试 1 业务需求 例 电商双11活动 微信春晚抢红包 12306春运订票 当前服务器配置是否支持20000人同时使用 技术选型
  • 数据标注对新零售的意义及人工智能在新零售领域的应用?

    数据标签对于新零售至关重要 因为它构成了训练和部署人工智能 AI 和机器学习 ML 模型的基础 在新零售的背景下 数据标签涉及对数据进行分类 标记或注释以使其能够被机器理解的过程 然后 这些标记数据用于训练人工智能算法来识别模式 做出预测并
  • 深入浅出!十三张图带你从源码了解SpringBoot启动流程!实战篇

    前言 一位小伙伴准备了许久的阿里Java面试 原以为能够顺利拿下offer 但在第三面还是被摁在地上反复摩擦 丧气一段时间后 小伙伴调整了心态重新尝试了一下 最终拿下了offer 今天小编把这位小伙伴遇到的面试题分享出来 希望能对即将面试的
  • 元强化学习系列(1)之:元学习入门基础

    元强化学习三境界 统计学是人工智能开始发展的一个基础 古老的人们从大量的数据中发现七所存在的规律 在以统计学为基础的 机器学习 machine learning 时代 复杂一点的分类问题效果就不好了 深度学习 Deep Learning 的