稀疏奖励及模仿学习(DataWhale组队学习笔记)

2023-11-04

稀疏奖励

在用强化学习解决现实问题时,我们对学习目标设置相应的奖励,但在庞大的状态空间中,智能体想要通过随机试错来获取奖励的概率是极低的,不获得奖励就没办法学习,我们将这种情况称作稀疏奖励。

针对稀疏奖励问题,我们介绍以下几种解决方案。

1、Reward Shaping

Reward Shaping的意思是说,我们人为的设计一些引导性质的奖励,来为智能体设计一些学习路线,这样来丰富获得奖励的途径,从而避免奖励过于稀疏的问题。其中人为设计部分是调出来的,有些奖励设计并不能让智能体学习到最终目标,有可能是因为缺乏中间奖励,或者是奖励的设计与最终目标的相关性较低。

Curiosity是设计奖励的一种思路,我们在设计奖励的时候,希望鼓励智能体多进行探索。

为此,设计一个ICM(intrinsic curiosity module),在这个算法中,我们先训练一个预测网络net1,给网络输入状态 s_t、动作 a_t 以及状态 s_{t+1},我们训练网络对 t+1 时刻的状态进行预测 \hat{s}_{t+1}

然后对实际学习过程中的状态和动作,输出一个奖励 r_t^i ,如果 \hat{s}_{t+1} 与 s_{t+1} 差距越大,奖励越高。这样会使得智能体倾向于进行那些使未来更不确定的动作。

ICM算法中会遇到一个问题,就是在训练过程中,可能会由于环境本身不可预测,导致智能体训练出的动作不是我们需要的。例如:树叶飘动不可预测,智能体什么都不做就能得到高额的 r_t^i

为此,我们训练另一个网络net2,同样给网络输入状态 s_t、动作 a_t 以及状态 s_{t+1},我们训练网络对智能体动作的预测 a_t^i,再将结果带回到实际训练中,对预测准确的给予高额奖励,以此来过滤掉那些无关的动作。

2、Curriculum learning

Curriculum learning的意思是说,给智能体设计一些学习路线,让它从简单的学习目标逐渐的学习更难的目标,最终达到我们的需求。

Reverse Curriculum Generation的方法是说,我们从最终目标 s_g (gold state)倒推学习路线,由 s_g 设置一些临近状态 s_1s_2 等,然后让机器从这些状态开始与环境互动,看是否学习到 s_g

最后把学习过程中奖励极端的情况排除掉即可。reward很大,说明机器很容易就学会了从这一状态到达 s_g,因此这个临近状态就太简单了,没有太大意义;reward很小,说明机器很难从这一状态学会东西到达 s_g,那么这个路线就太难了。

这样我们最终就可以得到一条难度适中的学习路线。

3、分层强化学习(hierarchical reinforcement learning,HRL)

分层强化学习的原理很简单,就是说我们在学习一个大的目标时,可以将其分解为很多小目标,并且我们可以将这个规划目标的任务也同样交给一个智能体来做。

也就是说,有一些智能体 a 用来提出具有层次规划的愿景,另一些智能体 b 来学习这些大目标小目标。如果智能体 a 愿景提的好,智能体 b 能够学习成功,那么 a 和 b 就都能够获得奖励,如果 b 没学成功,那么这个愿景提的就不好,大家就得不到奖励,从而来训练 a 如何提出愿景。


模仿学习

在多数的强化学习问题中,我们都没办法真的从环境中获得奖励,例如聊天机器人的学习问题。

这时候,我们考虑能否收集到一些专家的示范,比如人类的动作数据。通过对专家智能体进行学习,从而避免奖励设置困难的问题。

1、行为克隆

行为克隆是说,智能体完全去学习专家的策略 \hat{\pi},根据对专家的决策数据进行收集,将策略 \hat{\pi} 下的状态动作对 (s_t,a_t) 当做监督学习问题的材料进行训练,让智能体直接去学习在什么状态下做出什么动作。

行为克隆方法有一些难以解决的问题:

首先对于专家策略 \hat{\pi} 下能够观测到的状态动作对是很有限的,就好比自动驾驶问题中,你难以对撞车后的状态进行学习。

这时候我们引入一个数据集聚合的方法,这个方法是说,收集数据时,给出答案动作 a 的仍然是专家,但与环境交互的是另一个演员智能体。这样,在收集到撞车后所给出的动作结果后,智能体就可以学习到这部分内容。

另一个问题是,机器会完全模仿专家的行为,一些与解决问题无关的个人习惯也有可能被学到。由于网络训练的精度不会达到100%,所以学习结果可能反而没有学到应该学习的策略。因此让机器知道哪些应该学习就变得很重要。

另一个很可能遇到的问题是,学到的策略和专家策略总会有误差,在实际情况中,由于强化学习问题通常都是连续的状态空间,很小的误差也能够造成较大的差异。

因此我们介绍另一种模仿学习的方法。

2、逆强化学习

逆强化学习的核心原理与GAN类似。

首先我们有一个专家策略 \hat{\pi} 和演员策略 \pi_0,通过与环境交互得到状态序列。根据这n条状态的轨迹去学习一个奖励函数,使得专家的奖励大于演员的奖励。

根据这个学习出来的奖励去重新训练一个演员 \pi_1,再重复上述过程。

如果我们训练的演员策略 \pi_i 最终收敛,那么就可以学习到接近专家的策略。但实际上这个训练不一定会收敛。

上述学习奖励函数的过程,实际上就类似GAN中打分的过程,通过GAN的方法来给专家打高分,给演员打低分。


注:本文参考《蘑菇书EasyRL》第十章至第十一章内容

来源:蘑菇书EasyRL (datawhalechina.github.io)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

稀疏奖励及模仿学习(DataWhale组队学习笔记) 的相关文章

随机推荐

  • Cesium 之加载倾斜摄影3d模型(解决倾斜漂移问题)

    以Cesium3DTileset方式加载服务发布的倾斜摄影静态资源Json文件 参考如下 item url 倾斜摄影的json地址 tileset json let tileset window viewer scene primitive
  • OpenAi[ChatGPT] 使用Python对接OpenAi APi 实现智能QQ机器人-学习详解篇

    文章大部分来自 https lucent blog 原文博客地址 https blog ideaopen cn 最近火热全文的ChatGPT 被很多人玩出了花 我们在Github上可以看到几个常见的逆向SDK包 这一篇我将以学习的方式来写这
  • 项目实用功能-全局loading动画

    1 为设么要使用全局loading 调用的每一个接口都要绑定一个loading真的很烦 2 实现这个需要考虑哪些要素 首先全局的loading需要一个调用任何接口都要执行的地方打开 那就肯定是axios的前置拦截函数了 loading有加载
  • mongodb导入数据库报错:command listCollections requires authentication

    今天迁移mongodb数据 需要将数据导入到一个新的mongodb中去 把环境搭建好之后 执行 mongorestore dir home backdata 想要导入数据 却报错了 错误信息如下 command listCollection
  • 第50步 深度学习图像识别:Data-efficient Image Transformers建模(Pytorch)

    基于WIN10的64位系统演示 一 写在前面 1 Data efficient Image Transformers Data efficient Image Transformers DeiT 是一种用于图像分类的新型模型 由Facebo
  • Minio(储桶bucket)上传和下载文件【Java】(图片转流、base64)

    此处先将图片下载到本地 再进行转换 MinIO是一个对象存储服务 非常轻量 Java Api 依赖
  • Springboot启动扩展点超详细总结,再也不怕面试官问了

    1 背景 Spring的核心思想就是容器 当容器refresh的时候 外部看上去风平浪静 其实内部则是一片惊涛骇浪 汪洋一片 Springboot更是封装了Spring 遵循约定大于配置 加上自动装配的机制 很多时候我们只要引用了一个依赖
  • NoSQL数据库概述

    简介 本文首先解释了NoSQL的出现的原因 介绍了NoSQL数据库所依据的理论和原则 然后分别介绍了四种NoSQL数据库的类型 以及其代表产品 并讨论了这四种类型的NoSQL的特点以及适用场景 需要NoSQL的理由 NoSQL数据库 看起来
  • Qt程序设置不重复打开该程序

    Qt程序设置不重复打开该程序 文章目录 Qt程序设置不重复打开该程序 对于已经打开的Qt桌面程序 我们希望用户再次双击桌面的快捷方式时 程序可以自动激活到其他所有程序的最前面 而不是重新打开一次程序 此时我们采用QSharedMemory方
  • 【图像处理】【去模糊】图像去模糊之初探--Single Image Motion Deblurring

    原文 原文地址 曾经很长一段时间 对图像去模糊都有一种偏见 认为这是一个灌水的领域 没有什么实用价值 要到这样的文章 不管是多高的档次 直接pass 最近在调研最近几年的关于Computational Photography的一些研究热点时
  • 莫言用 GPT 写颁奖辞,那如果他自己写会是什么效果呢?

    在 收获 杂志 65 周年庆典上 莫言在为余华颁奖时表示 余华是自己的好朋友 但给他的颁奖词写了好几天也想不出来 后来找了 ChatGPT 帮忙写 最后 莫言让 ChatGPT 写了一篇莎士比亚风格 1000 多字的颁奖词 输入了关键词 活
  • 数据仓库_缓慢渐变维_拉链表(全揭秘)

    这篇文章我们主要讲解下以下几个点 什么是拉链表 用于什么样的场景 拉链表的示例 如何获取某一天的历史状态 如何在使用维度拉链表并使用代理键的前提下 构建含维度代理键的事实表 1 什么是拉链表 用于什么样的场景 当维度数据发生变化时 将旧数据
  • Hutool:一行代码搞定数据脱敏

    1 什么是数据脱敏 1 1 数据脱敏的定义 数据脱敏百度百科中是这样定义的 数据脱敏 指对某些敏感信息通过脱敏规则进行数据的变形 实现敏感隐私数据的可靠保护 这样就可以在开发 测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集
  • 枭龙智能眼镜 XLOONG X100 Glass拆解

    这里只拆到主板过 首先需要对带Glass的可拆卸配件进行壳体加热 主机外壳有密封胶 吹风机对主机外壳的接缝处进行加热 可以从下侧的点开始用撬棒拆 拆开一个角之后沿着边慢慢打开 如果还是有阻尼感打不开 用吹风机加热再慢慢撬开 但是注意 打开幅
  • MySQL备份与恢复

    目录 数据库备份的分类 数据备份的重要性 数据库备份的分类 常见的备份方法 MySQL完全备份与恢复 MySQL完全备份介绍 MySQL完全备份的优缺点 数据库完全备份分类 完全备份操作 物理冷备份 逻辑备份 mysqldump的使用 My
  • python3.6打包成exe可执行文件,已解决方案

    将python程序打包成exe可执行文件有多种方法 这里讲一种最简单最常用的方法 只需要使用pyinstaller命令即可 一 环境 Windows 7或10 x64 Python 3 6 1 二 需要包 pyinstaller 3 3 p
  • JSON.stringify && JSON.parse

    原生JS 通过 ajax请求数据的时候控制台报500的错误 在这里记录一下 不喜勿喷哈 let submit document getElementsByClassName submit 0 submit addEventListener
  • idea突然打不开【解决方法整理总结】

    今天突发情况打不开 下面分情况讨论 欢迎大家给出不同的错误版本 狗头 一直这样 每天一遍qwq 解决方案 可以先找到idea安装根目录bin下 选中idea bat右键编辑 或者使用txt打开在idea bat最后一行添加 pause 打印
  • 解决pythoncharm中安装numpy无法调用的问题

    1 提示ImportError numpy core multiarray failed to import 可能问题 numpy的版本不合适 解决方法 1 卸载安装的numpy安装新的版本 pip uninstall numpy pip
  • 稀疏奖励及模仿学习(DataWhale组队学习笔记)

    稀疏奖励 在用强化学习解决现实问题时 我们对学习目标设置相应的奖励 但在庞大的状态空间中 智能体想要通过随机试错来获取奖励的概率是极低的 不获得奖励就没办法学习 我们将这种情况称作稀疏奖励 针对稀疏奖励问题 我们介绍以下几种解决方案 1 R