【Easy RL】Easy RL蘑菇书全书学习笔记

news2024/11/24 0:50:35

【Easy RL】Easy RL蘑菇书全书学习笔记

  • 第一章 强化学习基础
    • 1.1 强化学习概述
      • 监督学习
      • 强化学习与监督学习的不同之处
      • 二者的区别总结
      • 强化学习的特征
      • 强化学习的优越性
      • 预演(rollout)和 轨迹(trajectory)的概念
      • 端到端的概念
      • 深度强化学习(deep reinforcemet learning)
      • sim2real
    • 1.2序列决策
      • 基本概念
      • 状态和观测的关系
      • 环境信息完全可观测-->马尔科夫决策过程
      • 环境信息部分可观测-->部分可观测马尔可夫决策过程

  • 本文是本人学习阅读Easy RL一书中记录的学习笔记,部分内容可能有遗漏
  • 如需阅读原文请点击:EasyRL官方文档链接

第一章 强化学习基础

1.1 强化学习概述

  • 强化学习(reinforcement learning,RL)讨论的问题是智能体(agent)怎么在复杂、不确定的环境(environment)中最大化它能获得的奖励
    在这里插入图片描述

监督学习

  • 监督学习(supervised learning)假设有大量被标注的数据,比如汽车、飞机、椅子这些被标注的图片,这些图片都要满足独立同分布,即它们之间是没有关联关系的。
  • 假设我们训练一个分类器,比如神经网络。为了分辨输入的图片中是汽车还是飞机,在训练过程中,需要把正确的标签信息label传递给神经网络。 当神经网络做出错误的预测时,比如输入汽车的图片,它预测出来是飞机,我们就会直接告诉它,该预测是错误的,正确的标签应该是汽车。最后我们根据类似错误写出一个损失函数(loss function),通过反向传播(back propagation)来训练神经网络
    在这里插入图片描述
    监督学习的两个假设
  • 输入的数据(标注的数据)都应是没有关联的。因为如果输入的数据有关联,学习器(learner)是不好学习的。
  • 需要告诉学习器正确的标签是什么,这样它可以通过正确的标签来修正自己的预测。
  • 通常假设样本空间中全体样本服从一个未知分布,我们获得的每个样本都是独立地从这个分布上采样获得的,即独立同分布(independent and identically distributed,简称 i.i.d.)。

强化学习与监督学习的不同之处

  • 智能体得到的观测(observation)不是独立同分布的,上一帧与下一帧间其实有非常强的连续性。我们得到的数据是相关的时间序列数据,不满足独立同分布
  • 游戏没有告诉我们哪个动作是正确动作,我们并不会得到即时的反馈。因此,强化学习之所以困难,是因为智能体不能得到即时的反馈
  • 没有标签来说明现在这个动作是正确还是错误的,必须等到游戏结束才可能知道,这个游戏可能 10s 后才结束。现在这个动作到底对最后游戏是否能赢有无帮助,我们其实是不清楚的。这里我们就面临延迟奖励(delayed reward)的问题,延迟奖励使得训练网络非常困难
    在这里插入图片描述

二者的区别总结

  • (1)强化学习输入的样本是序列数据,不满足独立同分布,而不像监督学习里面样本都是独立的
  • (2)学习器并没有告诉我们每一步正确的动作应该是什么,学习器需要自己去发现哪些动作可以带来最多的奖励,只能通过不停地尝试来发现最有利的动作
  • (3)智能体获得自己能力的过程,其实是不断地试错探索(trial-and-error exploration)的过程。探索 (exploration)和利用(exploitation)是强化学习里面非常核心的问题。其中,探索指尝试一些新的动作, 这些新的动作有可能会使我们得到更多的奖励,也有可能使我们“一无所有”;利用指采取已知的可以获得最多奖励的动作,重复执行这个动作,因为我们知道这样做可以获得一定的奖励。因此,我们需要在探索和利用之间进行权衡,这也是在监督学习里面没有的情况。
  • (4)在强化学习过程中,没有非常强的监督者(supervisor),只有奖励信号(reward signal),并且奖励信号是延迟的,即环境会在很久以后告诉我们之前我们采取的动作到底是不是有效的。因为我们没有得 到即时反馈,所以智能体使用强化学习来学习就非常困难。当我们采取一个动作后,如果我们使用监督学习,我们就可以立刻获得一个指导,比如,我们现在采取了一个错误的动作,正确的动作应该是什么。而在强化学习里面,环境可能会告诉我们这个动作是错误的,但是它并没有告诉我们正确的动作是什么。而且更困难的是,它可能是在一两分钟过后告诉我们这个动作是错误的。所以这也是强化学习和监督学习不同的地方。

强化学习的特征

  • (1)强化学习会试错探索,强化学习通过探索环境来获取对环境的理解
  • (2)强化学习智能体会从环境里面获得延迟的奖励
  • (3)在强化学习的训练过程中,时间非常重要。因为我们得到的是有时间关联的数据(sequential data), 而不是独立同分布的数据。在机器学习中,如果观测数据有非常强的关联,会使得训练非常不稳定。这也是为什么在监督学习中,我们希望数据尽量满足独立同分布,这样就可以消除数据之间的相关性
  • (4)智能体的动作会影响它随后得到的数据,这一点是非常重要的。在训练智能体的过程中,很多时 候我们也是通过正在学习的智能体与环境交互来得到数据的。所以如果在训练过程中,智能体不能保持稳定,就会使我们采集到的数据非常糟糕。我们通过数据来训练智能体,如果数据有问题,整个训练过程就会失败。所以在强化学习里面一个非常重要的问题就是,怎么让智能体的动作一直稳定地提升。

强化学习的优越性

  • 为什么我们关注强化学习,其中非常重要的一个原因就是强化学习得到的模型可以有超人类的表现
  • 监督学习获取的监督数据,其实是人来标注的,比如 ImageNet 的图片的标签都是人类标注的。因此我们可以确定监督学习算法的上限(upper bound)就是人类的表现,标注结果决定了它的表现永远不可能超越人类
  • 但是对于强化学习,它在环境里面自己探索,有非常大的潜力,它可以获得超越人类的能力的表现,比如 DeepMind 的 AlphaGo 这样一个强化学习的算法可以把人类顶尖的棋手打败
    在这里插入图片描述

预演(rollout)和 轨迹(trajectory)的概念

  • 图 1.8 所示为预演(rollout)的一个过程。预演是指我们从当前帧对动作进行采样,生成很多局游戏。我们将当前的智能体与环境交互,会得到一系列观测。每一个观测可看成一个轨迹(trajectory)。 轨迹就是当前帧以及它采取的策略,即状态和动作的序列: τ = ( s 0 , a 0 , s 1 , a 1 , . . . ) \tau=(s_0,a_0,s_1,a_1,...) τ=(s0,a0,s1,a1,...)
    在这里插入图片描述
  • 我们可以通过观测序列以及最终奖励(eventual reward)来训练智能体,使它尽可能地采取可以获得最终奖励的动作。一场游戏称为一个回合(episode)或者试验(trial)

端到端的概念

  • 把特征提取以及分类两者合到一块儿去了,就是训练一个神经网络。这个神经网络既可以做特征提取,也可以做分类,它可以实现端到端训练
    在这里插入图片描述

深度强化学习(deep reinforcemet learning)

  • 深度强化学习 = 深度学习 + 强化学习
  • 深度强化学习:自从我们有了深度学习,有了神经网络,就可以把智能体玩游戏的过程改进成一个端到端训练(end-to-end training)的过程,如图 1.10b 所示。不需要设计特征,直接输入状态就可以输出动作。我们可以用一个神经网络来拟合价值函数或策略网络,省去特征工程(feature engineering)的过程
    在这里插入图片描述

sim2real

  • Sim2Real(Simulation to Reality),即从仿真到现实,是强化学习尤其是机器人学习领域中的一个重要概念。它涉及到将代理(agent)在仿真环境中学到的行为或策略迁移到现实世界中。这样做的好处是,仿真环境可以快速、安全且低成本地生成大量训练数据,但它也面临着一些挑战。
  • OpenAI 先在一个虚拟环境里面使用强化学习对智能体进行训练,再把它应 用到真实的机械臂上。这在强化学习里面是一种比较常用的做法,即我们先在虚拟环境里面得到一个很好 的智能体,然后把它应用到真实的机器人中
  • Sim2Real Gap:仿真环境无法完美复制现实世界的复杂性,如物理动力学、传感器噪声等,导致在仿真中表现良好的策略在现实中可能效果不佳
  • 数据分布不匹配:仿真数据与现实数据在分布上的差异可能导致模型过拟合仿真环境,从而在现实世界中泛化能力差

1.2序列决策

基本概念

  • 强化学习研究的问题是智能体与环境交互的问题

  • 智能体与环境:图 1.12 左边的智能体一直在与图 1.12 右边的环境进行交互。智能体把它的动作输出给环境,环境取得这个动作后会进行下一步,把下一步的观测与这个动作带来的奖励返还给智能体。这样的交互会产生很多观测,智能体的目的是从这些观测之中学到能最大化奖励的策略
    在这里插入图片描述

  • 奖励:奖励是由环境给的一种标量的反馈信号(scalar feedback signal),这种信号可显示智能体在某一步采取某个策略的表现如何。

  • 强化学习的目的就是最大化智能体可以获得的奖励,智能体在环境里面存在的目 的就是最大化它的期望的累积奖励(expected cumulative reward)

  • 在与环境的交互过程中,智能体会获得很多观测。针对每一个观测,智能体会采取一个动作,也会得到一个奖励。所以历史是观测、动作、奖励的序列: H t = o 1 , a 1 , r 1 , . . . . . . , o t , a t , r t H_t=o_1,a_1,r_1,......,o_t,a_t,r_t Ht=o1,a1,r1,......,ot,at,rt

  • 智能体在采取当前动作的时候会依赖于它之前得到的历史,所以我们可以把整个游戏的状态看成关于这个历史的函数: S t = f ( H t ) S_t = f(H_t) St=f(Ht)

状态和观测的关系

  • 状态是对世界的完整描述,不会隐藏世界的信息。观测是对状态的部分描述,可能会遗漏一些信息。在深度强化学习中,我们几乎总是用实值的向量、矩阵或者更高阶的张量来表示状态和观测。例如, 我们可以用 RGB 像素值的矩阵来表示一个视觉的观测,可以用机器人关节的角度和速度来表示一个机器 人的状态

环境信息完全可观测–>马尔科夫决策过程

在这里插入图片描述

环境信息部分可观测–>部分可观测马尔可夫决策过程

  • 有一种情况是智能体得到的观测并不能包含环境运作的所有状态,因为在强化学习的设定里面, 环境的状态才是真正的所有状态。比如智能体在玩 black jack 游戏,它能看到的其实是牌面上的牌。或者在 玩雅达利游戏的时候,观测到的只是当前电视上面这一帧的信息,我们并没有得到游戏内部里面所有的运 作状态。也就是当智能体只能看到部分的观测,我们就称这个环境是部分可观测的(partially observed)。 在这种情况下,强化学习通常被建模成部分可观测马尔可夫决策过程(partially observable Markov decision process, POMDP)的问题。部分可观测马尔可夫决策过程是马尔可夫决策过程的一种泛化。 部分可观测马尔可夫决策过程依然具有马尔可夫性质,但是假设智能体无法感知环境的状态,只能知道部分观测值。
    在这里插入图片描述

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

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

相关文章

BurpSuite内置浏览器打不开(实用解决法/简便)

也不知道出现了什么问题就是莫名其妙的内置浏览器打不开,有时候不想配置代理很麻烦,这里实用的解决办法. 任务一 报错情况(反正也看不懂) 任务二 我们先去尝试打开这个运行模式,然后我们再去重试,如果还是打…

【重学 MySQL】五十九、二进制字符串类型与 JSON 类型

【重学 MySQL】五十九、二进制字符串类型与 JSON 类型 二进制字符串类型JSON类型 在MySQL数据库中,二进制字符串类型与JSON类型各自具有独特的特点和用途。 二进制字符串类型 二进制字符串类型在MySQL中主要用于存储二进制数据。这类数据类型包括BINARY、VARBINAR…

使用 ChatGPT Canvas 辅助 ABAP 开发

ChatGPT Canvas 是最近 OpenAI 推出的一个新功能,它不仅仅是一个简单的聊天对话式窗口。 Canvas 旨在扩展 ChatGPT 平台的功能,超越简单的问答交互。 Canvas 可以在单独的窗口中打开专用工作区,用户能够更直观、更高效地与 ChatGPT 在复杂的写作或者编码项目进行协作。 有…

Nginx08-反向代理

零、文章目录 Nginx08-反向代理 1、概述 关于正向代理和反向代理,我们在前面已经介绍过了,简而言之就是正向代理代理的对象是客户端,反向代理代理的是服务端,这是两者之间最大的区别。 Nginx即可以实现正向代理,也可…

【Unity】版本不一致且未升级资产,导致 Unity Sprite 2D 动画播放错误

自己的 Unity版本是 2022.3.45f1。目前折腾的这插件 2D Action RPG Engine: Mythril2D ,推荐使用的 Unity 版本是 2021.3.18。 倒腾了这个 unity animation 动画半天,发现这个 animation sprite resolver 在导入动画帧的时候,一直都导入的是…

LeetCode 11 Container with Most Water 解题思路和python代码

题目: You are given an integer array height of length n. There are n vertical lines drawn such that the two endpoints of the ith line are (i, 0) and (i, height[i]). Find two lines that together with the x-axis form a container, such that the co…

【论文阅读】AUTOREGRESSIVE ACTION SEQUENCE LEARNING FOR ROBOTIC MANIPULATION

ABSTRACT 自回归模型在自然语言处理中取得了显著的成功。在这项工作中,我们为机器人操纵任务设计了一个简单而有效的自回归架构。我们提出了Chunking Causal Transformer(cct),它扩展了因果关系transformers的下一个单标记预测 n…

Nginx07-静态资源访问

零、文章目录 Nginx07-静态资源访问 1、Nginx解决跨域问题 (1)同源策略 同源策略(Same-Origin Policy)是一个关键的网络安全概念,由Netscape公司在1995年引入,现在被所有现代浏览器所采用。它限制了从一…

基于JAVA的鲜花商城管理系统(源码+定制+讲解)鲜花商城管理系统、鲜花商城管理平台、鲜花商城信息管理、鲜花商城系统开发与应用、鲜花在线商城管理系统

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

毕业设计项目 深度学习安全帽佩戴检测(源码+论文)

文章目录 0 前言1 项目运行效果2 设计概要3 最后 0 前言 🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师…

sqli-labs靶场第二关less-2

sqli-labs靶场第二关less-2 本次测试在虚拟机搭建靶场,从主机测试 1、输入?id1和?id2发现有不同的页面回显 2、判断注入类型 http://192.168.128.3/sq/Less-2/?id1’ 从回显判断多一个‘ ,预测可能是数字型注入 输入 http://192.168.128.3/sq/Less…

Sharding 分页原理分析

优质博文:IT-BLOG-CN 如果业务上需要执行如下分页查询,Sharding-JDBC如何执行分页查询的? 官方文档 select * from student_time ORDER BY create_time ASC limit 1000, 5;Sharding-JDBC分页查询时在每个分表中都查询1005条数据&#xff0c…

【树结构与栈】中等力扣练习题

二叉树中和为目标值的路径 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。 示例 1: 输入:root [5,4,8,11,null,13,4,7,2,null,null,5…

2024.10月7日- 非关系型数据库--- Redis

一、Redis介绍 Redis(Remote Dictionary Server),即远程字典服务,也被人们称之为***结构化数据库*** 功能:把周期性数据持久化还能实现主从复制 是一个开源的用C语言编写的支持网络、基于内存、可持久化的日志型Key-Value数据库提供多种语言的API Re…

Facebook 正式推出了一项专为 Z 世代设计的全新改版

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

基于Springboot海宝海鲜餐厅系统JAVA|VUE|SSM计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档(1万字以上)开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统:Window操作系统 2、开发工具:IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

图文深入理解Oracle DB Scheduler(续)-调度的创建

List item 今天是国庆假期最后一天。窗外,秋雨淅淅沥沥淅淅下个不停。继续深宅家中,闲来无事,就多写几篇博文。 本篇承接前一篇,继续图文深入介绍Oracle DB Scheduler。本篇主要介绍调度的创建。 1. 创建基于时间的作业 • 可以…

详解三种常用标准化:Batch Norm Layer Norm RMSNorm

Normalization Normalization现在已经成了神经网络中不可缺少的一个重要模块了,并且存在多种不同版本的归一化方法,其本质都是减去均值除以方差,进行线性映射后,使得数据满足某个稳定分布,如下图所示:  …

开放式耳机是什么意思?分享几款适合各类运动佩戴的蓝牙耳机

其实目前有很多热爱运动的人士常常会陷入一个纠结之中,那就是在进行爬山、骑行、步行、跑步或者健身等各类运动的时候,到底佩戴什么样的蓝牙耳机才最为合适呢?那就我个人而言,我觉得开放式耳机无疑会是运动人士的救星。因为作为一…

OJ在线评测系统 微服务高级 网关跨域权限校验 集中解决跨域问题 拓展 JWT校验和实现接口限流降级

微服务网关跨域权限校验 集中的去解决一下跨域 这段代码是用来配置跨源资源共享(CORS)过滤器的。它创建了一个 CorsConfiguration 实例,允许所有方法和头部,并支持凭证(如 Cookies)。setAllowedOriginPat…